我所走过的四年编程之路
2012年7月毕业,至今已过4年有余。从最初的测控技术专业到第一份编程工作,从华北到华南,再到华东,工作,随着地域的辗转,工作内容也是不断变化着。现如今,再过几天,吾也将投身于伟大的前端领域中去了,想想也是自己醉了自己了。趁着在新工作来临之前,现有公司巨大福利结束之前,赶紧装逼一下,缅怀过去,展望未来。
2011年(大三),怀揣着对Linux无尽的热情投身于学习中,当时可算是大学时光最为勤奋的一段。光记笔记就写了三本,从Linux的最初内核学习,到Linux驱动,直至折腾友善之臂ARM S3C2440开发板
(想想都好笑,板子折腾了一年后来竟然还能以8折的价格卖给了别人),无不体现着哥是好学的人。。。。
终于赶在大四找工作那年找到了一份深圳的工作和一份北京的实习。2011年下半年基本是在找工作与偶尔学习的过程中度过。2012年过完春节之后便去了帝都,在一家做视频监控的公司里干起了实习生的工作。
三个月的实习体验了一把办公室上班的感觉,遇到了一个比较好的老大(每次都是好老大),做了一个opencv开源库的小demo,潦潦草草地就过完了,而后想着不再北京待下去,所以就实习结束后就没答应毕业后回来。
2012年7月,终于等到毕业,成了我们班第一个离开学校的孩子,感觉自己好着急地离开,走的时候没跟宿舍的兄弟们道个别,匆匆坐上公交,有时候真的怕自己一下子动情。之后来到我人生中的第一个真正意义上班的地方。既然那会找的是嵌入式软件开发,本来要去从事底层的工作,结果事与愿违,把我分配到了交换机组。人生总是祸福相依,正是这种机缘,让我认识了现在的老婆以及至今仍保持紧密联系的老大(也就是说关系超好的那种)。
在交换机组的两年内,第一次看到裁剪的Linux系统做出来的交换机,第一次见到了 完整的项目开发过程,第一次看到了那些高大上的芯片,总之,来的几个月内处于兴奋的状态,估计大家刚毕业都是这样的吧。兴奋归兴奋,工作上有了linux的基本基础,自然上手也比别人快。因为是交换机,所以自然就有交换机的那些标准,自然有的协议就要实现到交换机里面,来的时候公司的交换机产品也算是基本完备,所以参与不了系统的搭建,那就只能做做协议开发。
在交换机行业中,公司的产品大部分算是低端的,比不过思科、华三,客户大部分都是家用或者小型企业,在产品的开发过程中,很多功能都是参考别家公司的产品,然后自己实现,那会公司的产品经理都是哗啦啦地看别家公司的某款产品卖得很好,然后就立项让我们去把这款产品做出来,国内大部分企业都是这么做出来的,除了那些行业中的领头羊。所以模仿成了公司那会的主题。
搞了一年多的交换机之后,公司组织架构剧变,人员动荡,产品线调整等等,之后引进新的交换芯片,老大有意锻炼我,就让我负责了一款傻瓜式交换机的开发。老实说那个项目还真的学到了很多,虽然说是傻瓜式交换机,也就是那种一个main函数走进死循环的类似于单片机效果的程序,里面也蕴含了很多嵌入式的知识。只有这种项目才能够真正地深入到交换芯片原理中去学习。
之后的一段时间,做过AC(无线控制器),玩过路由器,各种乱学一通,嵌入式领域没有得到多大的提高,见识倒是长进不少。所以慢慢地把linux的一些重要的知识都忘掉了,取而代之的是数据通信的基础学了很多。现在你要是问我交换机原理、三层交换、路由、VLAN等等数据通信的知识,或多或少都是知道的。
如此在第一家公司待了两年后就开始考虑换工作了,也不是说不喜欢现在的公司,而是不想要待在深圳。在这家公司有几点感悟:
- 遇到一个能够知人善用的老大很不容易;
- 公司业务的变化往往会影响到个人的职业发展,如何在变化中取其自己的坚持是一个很重要的问题
- 往往刚毕业时的一群屌丝得来的友谊比别的时候还要坚固
- 公司在不断发展的时候必定会不断完善制度和流程,实施制度和推广流程往往是做大做强的一个拦路虎
2014年9月,过完中秋后就奔赴了江南,来到了以西湖著称的杭州,因为换工作找到了杭州。就职的企业是一家外企,从事的岗位从数据通信转变为了移动通信,理论基础也蹭蹭地往上拉。两年在第一家公司积累的那些交换机基础就完全没用了,尚有用的只是linux的命令基础、C语言编程基础,其他的都统统扔掉。那会公司的巨大用人需求,我才成为漏网之鱼溜进了这家外企。面试的时候还记得后来的直线经理这么问的“看你的简历上写的是敢于挑战新事物学习新知识,你敢不敢来(意思这是全新的职位,一切从头来)?”,那会凭着毕业时的那种自信狂狂地答应,不过后来的3个月的试用期的表现也确实对得起自己的那份信心了。在后来的一次吃饭中才得知我们的老大是抱着试试看的态度,不行就试用期结束后辞退。想想都有点后怕,那会要是搞不定估计还真的是不知道去哪里了?(在杭州找过华三,结果人家不要我)
所以一入职之后,自己就每天加班,学习通信理论。为了学习,傻乎乎地让还在上研究生的大学同学把那些高数、线性代数以及数字信号处理的书本寄给我,然后为了适应外企文化,每天练习英文。3个月真的是卯足了劲补短,每天打了鸡血似的。
可是仍然没用呀,通信的理论基础太深了,自己完全不是这块料啊。学了很多但是很快又全忘了,英语也是如此。最后放弃了。。。。在工作过程中发现不需要那么多的通信理论,你只需要搞懂3GPP协议的DLPHY模块就行了,那些什么傅里叶变换、FFTC、拉普拉斯变换通通不需要,因为这些都是现成的。至今整个组内完全彻底地明白这些的只有我们组的TL(Technical Leader)。至于英语,只要你能够读写就行了,除非你升了岗位需要和外国人交流。不过期间还真的有机会和一个法国美女交流了一下,然后口语不行,两次之后人家就要求你还是用打字的吧。。。。无语了。。。
意识到这个之后,自己一下子就蔫了下来,不再去碰那些高数书了。搞懂协议这方面还是很有经验的,交换机带过的嘛,所以很快就把下行的几个信道的基本过程搞懂了,结合着代码,大致清楚了下行整个系统的基本工作机制。而后机缘巧合,参加到导师参加的一个项目中,见证了另一款DSP芯片的协议开发、以及全新的Event Machine机制,还能够看到IDE模拟调试,有点大学时候学习嵌入式的感觉。
这家外企的软件开发流程不像以前深圳的那种,深圳那家公司走的是学习华为那套IPD流程,这家外企使用的是敏捷开发流程,从最初的方案设计CFAM到Feature开发,再到SCT测试、ET测试、QT包,无不体现企业对质量的严格管控。因为系统复杂,所以涉及的开发团队就可能在全球各地,平台组的一个接口变化就会让其他的开发团队适配,然后就有新的版本发包测试,每一个软件包都有严格的版本定义,每一个修复的bug都有一个对应的编号,在这种流程中,每个人按部就班,管好自己的那个单元模块就可以了。自己组内的开发工作每个月结束之前布置下个月的任务,只需要你完成任务即可,完成之后你自己做啥就没人会去care了。
所以在外企的工作氛围是很轻松的,但是情感方面的互动却是少了很多。办公时候没有以前深圳公司那种闲暇之余的开开玩笑,更多的是大家埋头工作,即使得空也是刷刷网页,聊聊QQ。外企的福利是真的毋庸置疑的,光光年假就够大家羡慕了,不用打卡,带薪病假30天、完备的保险系统等等,真的是和深圳那家公司有着天壤之别。
但是福利好这种事对于天朝也许是另外一种危机,因为自然就萌生了很多那种每天指向偷懒不干活混日子的人。在我待的一年多,见到的很多。当然了,各有各的追求,这种行为也是无可厚非的。慢慢地,受环境的影响自己也变得开始不喜欢加班,没事刷刷网页、聊聊QQ、迟到早退,完全过起了比国企还滋润的工作状态,直到去年夏天开始思考我的人生:“不行啊,再这样混下去虽然也是不错,加薪奖金也还好,但是以后咋办?想要做到TL的那种水平估计不大可能了,因为通信真的不感兴趣。要不另谋职业吧?”
说了就开始干啥好呢?看到杭州电子商务的发达,加上自己对于web开发有那么大的浓厚兴趣,就果断以后找个前端开发的岗位得了。于是从那会起,稍有空闲就学习前端的,大部分时间都是下班后回家学习个三四小时。
我的人生充满了巧合,刚好看到论坛上有人发布公司内部开源系统需要人员,而且这个开源系统使用的是基于nodejs的一款web框架--sailsjs,于是果断报名,自己深知在项目中磨练才能学到东西。而后的三个月,每天晚上回来就学习sailsjs,包括翻译官方文档。很快就基本掌握了如何在sailjs上面开发东西,之后就频繁贡献属于自己的代码。
刚开始使用JavaScript的时候,真的很不适应,很多语法依然按照C语言的习惯来使用,HTML和CSS那么多的属性也是记不住,但老话说得好“熟能生巧”,不断地使用就会有不断地收获。慢慢地,开始入门了web开发。因为开源系统的前后端无法分离,所以就开发一个feature都是搞定前后台,既需要定义新的model,也需要自己实现controller,然后写写views部分,简单测试一下就提交了。(这里勿喷哈,毕竟大家都是业余的没有想去写测试用例,所以一般都是自己测试ok就提交代码)
而后的一年之内,除了完成工作中feature的开发,写写协议代码,下班之后就搞搞web开发。一年了,很享受这种过程。任何事都没有人催你,完全是靠着自己的兴趣去完成每一个目标。恰逢2015年12月需要筹备婚礼,想着要不搭建一个结婚纪念网站来练练手,心动不如行动,自己就哗哗地用了两个多月的时间使用了sailsjs搭建了一个属于自己的网站,因为没有美工设计UI设计,所以整体页面略显得粗糙。不过这种项目完成的成就感激励了自己,让自己对这个web开发或者叫做全栈开发越来越有兴趣。
其实从大学时候就喜欢linux的开源,只可惜后面从事的工作很少开源的,如今互联网中的web开发全部是开源的,自己便不胜欣喜。看到大牛们都有自己的博客网站,心里一激灵,就想着我也得有属于自己的博客。于是乎,从4月份开始搭建,8月份上线,整个博客网站就大功告成,除了些许页面还没写好。所以,怎么说好呢?一年以来、兴趣一直驱使着自己完成这个、完成那个。每一个完成之后的那份喜悦也许只有自己知道了。
如今,下个星期就即将奔赴我的新战场--前端开发,暂且不知道自己是否依然能够用当时到外企上班的那份拼劲,但我知道有着对web开发的兴趣,一切就够了,你们说呢?
公众号关注一波~
网站源码:linxiaowu66 · 豆米的博客
Follow:linxiaowu66 · Github
关于评论和留言
如果对本文 我所走过的四年编程之路 的内容有疑问,请在下面的评论系统中留言,谢谢。