今天最后一天下班,意味着我这一份工作的结束,也意味着下一份工作即将开始。不知不觉中,我已经毕业四年多了!
这次换工作直接换了城市,对我而言,很多东西都会是一个新的开始。也趁着这新的生活还没有到来之际,对自己过去的四年简单的总结一下。
并且对下一个五年生活做一个新的调整和规划。
总的来说,过去四年多的工作中我算是比较顺利的,也算比较幸运的。
这里先从第一份工作说起,第一份工作一般对后面的职业生涯都有不小的影响。
毕业后进入B公司做笔记本电脑BIOS(BIOS即每台电脑启动时最前面的引导程序,一般固话在主板芯片中) 。
对于这份工作我个人也不知道是该说不幸还是幸运,BIOS在我工作前再往前推几年,应该是非常吃香的职业,听前辈们讲,曾经NB的BIOS工程师,在那个年代都可以拿到年薪百万的高薪。但其实到我工作的那个时候,随着笔记本电脑的饱和,需求的下降,BIOS工程的不断增多,这个职业已经不那么有优势了。而且由于行业过于狭窄,会导致后续的发展很受限制,从这个角度来看,是不太幸运的。
另外也是幸运的,原因是我仅仅在做了几个月后就转到了Linux底层开发团队,当时公司开案了一个Android平板项目,严重缺人,我就申请转到了平板团队。也就是那个时候接触到了Android。而在那个时间点我进入Android这个行业应该是很幸运的。我记得非常清楚,那个时候,Lenovo的第一代乐Phone做的稀烂,却仍然能够卖出吓人的价格。
正是因为在那个时间点接触到Android,奠定了我所工作行业的基础,促使了我在后续工作中平稳的发展和进步。
而我在第一个公司呆了一年左右时间后,我选择了跳槽,主要原因是当时所在的公司,老板真心没有想好好做好嵌入式部分,只是想试试水而已,所以完全没有什么投入,自然也不谈有多大的发展前景了。其实回想起来真为之前的公司可惜的,那个时间点如果和瑞芯微合作做好了低端平板,也许现在的状况会完全不一样。
那个时候的Android不可抑制的增长,让很多大公司有了非常多的人力需求,我也就有了进入我第二家公司的机会,著名的芯片制造公司Mxx公司。正是在Mxx公司差不多三年的工作,让我的个人能力和职业技能都有一个不小的飞跃。衷心的感恩M公司给了我这个很好的工作机会,让我不断的成长。
当然,好的公司只是一个好的平台,但是的积累和学习还是主要靠自己。所以,虽然这几年的我自己的进步不小,但是其中所付出的努力和汗水也就只有我和我老婆知道。
我老婆应该是最深有感触了,因为当她某天半夜醒来的时候,一看手机,发现已经超过凌晨1点了,然后我就会被她一顿暴揍。
绝大部分人都是普通人,我更是普通人中的一个更普通的人。所以,技术的学习和积累都需要消耗很多的时间和精力,程序员熬夜是再正常不过的事情了。
在这里我必须要澄清一个事情,就是我真不是有意要搞到那么晚的,只是很多时候我没有办法停下来。
有些时候,我是知道已经一点了,但是我发现还有一个想法没有验证的时候,我就想验证完了再睡觉。
而另外一些时候,是当我再抬头看时间的时候,已经超过一点了。
对于这个事情,我真诚的向老婆道歉,因为我知道她很担心我,也很心疼我!
上述一堆废话,切到正题:毕业后第一个五年的收获和遗憾。
先说收获:
1. 进入Android这个行业。
2. 较为深入的研究/理解 Linux内核的文件系统部分,对存储模块从上到下都有一个不错的理解。
3. 对Linux内核的部分也稍有涉猎,对内存管理有初步研究。
4. 广泛的了解过各种技术,hadoop/openstack/cocos2d/javascript framework/jvm/游戏外挂/黑客技术/科学计算。对眼界的扩展非常有好处。
5. 职业发展较为不错,能够有一份收入不错的工作。
再谈遗憾:
1. 一直想深入细致的研究Linux内存管理,但是到目前为止还非常不够。
2. 工作后没有太多时间研究安全方面的技术,黑客技术是我从小到大的一个梦想。
3. 由于工作的性质限制,工作后写代码太少。
4. 运动太少,身体素质下降很多。
5. 也许还有很多,但是已经忘记了,就不重要了......
对于未来下一个五年,甚至是十年。我希望跟过的是能够沉下心来做一到两件事:
1. 深入的研究内存管理及系统性能优化。当然这个本身也是我的工作,但是我希望做的更深入细致。
1.1 文件系统方面能够细致到Device/Driver/Block/FS 及调度算法等各个层面。
1.2 程序方面能够细致到Java/Framework 和 Native程序的读写方式及读写逻辑 及 Cache等方面
1.3 内存管理方面能够深入学习各种情况下的内存布局,各种内存管理机制的细节及与FS配合的一些方面。
2. 在Github上开源一款自己的软件,争取点赞超过300.
3. 深入研究一款Javascript 开源框架。使用Cocos2d的Js版本开发一款小游戏,支持IOS/Android/Win Phone多平台。
4. 熟练的使用Python来进行开发。Cocos2d的Python版本也许是一个不错的学习材料。
5. 坚持向Github提交代码,至少平均一周两次。
6. 争取走上管理岗位。