我于2007年参加高考,顺利考入一所男女比例严重失调的师范大学,主修计算机科学与技术。其实高中的时候本来想选生物的,可惜报生物的人太少,就没有开班,后面选修了化学。原计划是想学高分子材料相关专业的,怎奈高考分数太低,没有考上相关的大学。第二志愿填写的是计算机相关的学校,当初并不知道这个专业是编程,以为是修理电脑的。因为自家电脑老是这个那个的问题,所以就义无反顾的报考了计算机专业。填志愿的时候没有什么伟大的理想,也没有什么周密的计划,就是随意的这么一填,没想到现在就靠这个吃饭了。
一、课程
1)疑惑
本校的这门计算机科学与技术是偏向综合的,既要学软件相关的知识,又要学硬件相关的知识。刚进入大一的时候,对一些课程感到疑惑,例如数学、物理、英语、模拟电路等课程,修电脑怎么要学这些课程,后来才知道,其实我们学的不是修电脑,而是编程。
2)为分数而学习
由于对编程并不热爱,因此上课其实也不是很上心,刚开始就是为了分数而学习,完全领会不到这些课程的意义。比较上心的就是C语言了,谭浩强出的那本。一开始完全没有基础,写代码很吃力,而且那时候笔记本电脑还没普及,也很少有机会上机调试。虽然学校有机房,但离的比较远,基本是不会去的。后面练习的多了,慢慢也就会了,应付考试是没问题的,但写的代码不够有灵性。大二学了数据结构,比较难理解,也是靠课后练习,当时纯粹是应试,所以过段时间就都忘了。包括后面的网络、离散数学、排列组合等等,都是为了考个好成绩才学的。
3)学习氛围
大一和大二被安排在远离繁华都市的偏僻海边的新校区,在这里没有量贩KTV、没有大型超市、没有巨型商场。此处虽然资源有限,但是却非常适合学习。不过,大家高中时候都学累了,进入大学后就都很放松。很多人喜欢去网络文化交流中心包夜,最夸张的是隔壁班的一个同学,居然一去就是几个月。在这种环境中,想要心无杂念的深入学习计算机真的蛮难的,况且自己也不热爱,所以经常告诉自己学这个只是为了以后能有个混口饭吃的技能。
后面大三回到老校区,遇到了专升本的那帮人,他们的学习热情与我们正好相反。他们真的是热爱这个专业,有次放学路过,发现他们把任课老师围了起来,正在向老师咨询这个那个的问题,他们肯定是已经明白了学习的意义,所以才能这么投入。
4)教授
我们文科学院的教授讲课都非常有趣,可以用引人入胜来形容,上他们的课相对会有劲很多,尤其是历史课,可以听到很多故事。反观我们理科院的教授,就不那么有趣了,很多时候都是蛮枯燥的,上课很容易走神。他们的水平都很高,就是讲课的时候很难让我们理解,当时有一门离散数学,让我印象深刻,大部分人都不会。课堂氛围比较好的是操作系统课的那位老师,他讲的蛮通俗的,有时候上课还能互动互动。
5)操作课
大二有一门网页设计课,授课老师让我们用Dreamwever制作一张静态网页,模板就是他的博客首页,他博客的访问量一度飙升。这门课提起了大家的兴趣,都在宿舍开笔记本制作,还会对比,看谁做的相似度最高,有的人做的很不错。看来大家还是喜欢这种能看到效果的操作课,像数据库、数据结构那种理论课,都提不起大家的兴趣。
大三的时候,还有一门多媒体,这门课会教点PS的内容,让我们整天P一个胖子,抠图啥的,大家有时候还是会有点兴趣。
6)ACM
ACM是一项编程竞赛,大一的时候,有学长过来做宣讲,说拿到好名次能为以后找工作提供很大的便利,一下子就勾起了一大批人的兴趣,大家争相报名参加。因为名次的含金量高,所以这项编程竞赛难度也很大。ACM考的是算法,并且他的题目都是英文的,有专门的刷题网站,很多人一看要做题目,兴致就降低了很多,后面又看到题目难度很大,有些题目有点奥数的味道,渐渐的越来越多的人选择退出。我当时也坚持了一段时间,不过自己的数学建模能力实在太弱,最终也还是放弃了。隔壁班有个同学坚持了,还能拿到名次,毕业的时候直接进了腾讯。
二、实习
1)ERP系统
大三下半年辅导员给了我一个机会,让我和一个学长一起做个校外的项目,虽然这个项目做到一半终止了,但对我的影响是很大的。当时是用的软件编辑器是VS2005,打算做个ERP系统,学长是在英特尔上班的,他把那套成熟的软件开发模式带了过来。第一次使用项目管理系统readmine,第一次使用版本控制系统SVN,第一次使用C#开发系统,第一次制作一个完整的项目,第一次采集需求等各种第一次,让我感觉自己好像已经进入了职场。每个月还能有500块的收入,我用第一个月的收入买了块500G的移动硬盘。不得不说,这次实习经历,直接改变了我未来的职业规划,促使我踏上了程序员这条道路。
2)商城系统
时间很快到了大四,那一年我的一个初中同学联系到了我,和我说他同学搞了个软件项目,正好缺人,想让我也加入。当时学长的那个ERP项目已经被腰斩,正好没事,马上就答应了。抽了一天时间,坐了很久的公交,到了他们租的一套公寓里,了解到他们想搞个商城系统,正好也是用C#开发,模仿当时的一套开源系统来做。这次的经历让我接触到了前端,确切的说是JavaScript,因为CSS和HTML由团队的另外一个成员做。与此同时,我也迷上了前端,因为在完成某个效果时,能带给我巨大的成就感和满足感。不过,一直到6年后,才有机会转型成全职前端。
3)户外旅游网
商城系统团队后面由于种种客观原因无奈解散了,当时正好有一家户外旅游网在我们大学里招实习生维护公司的网站。我就报名了,学校在徐汇区,而这家公司在虹口区,两者相距蛮远的,地铁都要坐一个多小时,然后下地铁再走到公司。这家公司还有另外一个同事管网站这块,不过他只能算半个,因为他主要管旅游产品那块。旧网站是用ASP开发的,我过来后老板让我先做点边边角角的事情,然后让我开发一个和开心网类似的社交网站。这次是独立完成了这个项目,包括数据库设计、页面制作、产品规划等,我的另一篇文章《忆2011年的秋天:一个人的项目》就详细记录了其中的开发过程。实习期间,还拿了公司传单在学校里发,中午的时候,在人流量最多的地方发,对自己也是一种挑战。
三、2012年
转眼四年过去了,我也毕业了。但一直到毕业的时候,还没意识到大学四年是用来打基础的,导致刚毕业那会儿软件基础很薄弱。
实习的那家旅游公司也和我签约了,但由于个人原因,我辞掉了这份工作。经一个朋友推荐,我回到了家附近,位于上海郊区,在那里找到了一家软件外包公司。这家公司主要给政府做PPT和网站,规模很小,全公司只有8个人,我从那离职7年多了,另外那7人还在。
这里我建议刚毕业的学生有机会去规模大点的公司,还是要把握中,因为上规模的公司在组织架构、技术沉淀、规章制度等各方面都比较成熟,并且还有比较好的人脉网,社会终归是由人组成的,你的人脉越广,好的机会也会越多。
四、新的开始
1)面试
2011年9月我来到了这家小外包公司面试,我记得那天是周末,过去的时候公司里一个人都没的。公司老板面的我,没涉及多少技术,就说了当前开发用的是我比较熟悉的C#语言,还介绍了一下公司的业务,主要做些和政府相关的项目,然后就让我第二天来上班了。这里说个很巧的事情,公司周五有个同事离职,而我过来就是替代此人的,我结婚那天才发现这个同事就是我老婆关系很近的表姐,真是无巧不成书。
这家公司很少加班,朝八晚五,基本到点就走,包中饭,老财务早上会去菜场买菜,然后在公司烧。活挺轻松的,不过就是工资太低,公积金也不交,试用期是2000一个月,转正后也只有3500,就这样我干了一年半。
其实当时还有另外一次面试,另一个朋友推荐的,一家大公司,在上海市中心南京西路上。我面试后感觉自己能力还不够,并且离家太远,当时不怎么想太折腾,于是就婉拒了他们的复试。安心的在这家小公司锻炼,希望能快速的成长。
2)上手
说个题外话,刚进入这家公司的时候,我开通了个人博客,不过对自己不够自信,怕被别人嘲讽,一直到3年后的2014年才撰写了自己的第一篇博文。其实现在想想,平时写点技术和项目的总结,对自己的成长会有很大的帮助。
刚开始给我安排的都是些遗留项目,就是简单的改改页面中的细节,难度不大。有一次,老板问我压力大不大,我很爽快的回答不大。后面让我独立的完成一些项目,总体来说没有什么大难度。政府项目都比较有规律,后台的模块大部分都能套用,前台的页面只是换个皮肤,大框架也比较类似。不过,这段时间对CSS、HTML和JavaScript有了新的认识,公司真正意义上的开发除了我就是另外一个同事,因此很多时候做特效都得自己想办法解决。这段时间搜索引擎发挥了巨大的作用,公司有段时间不能上百度,google又上不去,就改用了Bing,搜索质量感觉比百度要好一点。
3)挑战
要说这段时间比较有挑战的项目应该就是一个重阳节登高的报名活动,就是个表单页面,然后填手机号、姓名等信息,最后返回一个报名号给用户。这个页面的并发量比较高,5000个报名量基本在两三个小时内就能全部抢完,对于我这个菜鸟来说,要处理这并不算高的并发还是有点挑战的。我清晰的记得上线前的一天晚上辗转反侧,很担心会出大事故,像页面打不开、报错等等,因为这边没有专业的测试,全凭自己测试,这就很难保证质量。还好,没出大事故,但还是出现了两个或多个领到了同一个报名号的问题,最后另外两个同事一个个的打电话通知他们,换了新号码给他们,这件事就算这么过去了。
活动上线后的第二天,和别人聊天的时候,他正好提到了这个活动,我跟他说这个活动我做的,还是蛮自豪的。
4)跑客户
外包公司免不了要跑到客户那边去,了解需求或修改BUG。有些客户就在附近,走过去就行,有些就比较远了,不仅如此,遇到刮风下雨烈日的天气,还得跑出去,日晒雨淋的还是蛮苦的。
有一次蛮坑的,跑到长宁区,基本一个下午就没了,背个电脑过去,然后发现是他们Excel模板用的不对,只能呵呵了,再跑回来,基本已经快到五点下班时间了,一天就没了。还有一次跑到太仓去,老板想开发新客户,然后当天开车来回,有时候回公司已经六七点了。我运气比较好,遇到的客户都是蛮客气的,也很配合,听说太仓那个客户,后面有个老头总是***难我们。
5)离职
我离职的主要原因还是工资的问题,实在太低,后面有个朋友找我,他那边在创业,有个很好的项目,让我过去帮忙,工资还开双倍,我马上就答应了。这个时候是2012年的12月份,马上要过年了,虽然有点年终奖,但很少,所以也就不在意了。
与公司同事相处的还是很融洽的,他们也都很理解我,我在离职前特地请大家去吃了顿小肥羊火锅,算是散伙饭。今年技术有所提升,人际关系的处理上也愈加成熟。
五、兼职
这家公司的活蛮轻松的,上家实习的旅游公司又不想再去外面招人,就找到了我,让我兼职干着,每个月给个固定的2000元。
1)职能
主要就是维护网站,其中最忙的是两次改版。尤其是2011年的12月份,我晚上下班后改页面,周末去虹口和公司的人对需求,对页面,那段时间非常的辛苦。当时很年轻,也不觉得,只感觉自己的生活很充实。但有时候,我白天上班的时候旅游网出了问题,就只能远程修改一下了。有一次最严重,周五的时候,页面打不开了,下午就请假,直接打了200多的车过去,然后周末就一直在那边改代码。现在让我做兼职我肯定是不愿意的。