程序之路上的一些感悟

好久没有写东西了,转眼工作近7年了,趁着有激情,写一写这些年的工作感悟吧。

中心思想,还是围绕着如何走好程序之路,如何积累,如何提高,总结总结,少走弯路,站在前人的肩膀上,越走越远。

一项工作做的越久,就越能感受到工作的平凡。这话是什么意思呢,就是说,刚开始工作靠的是激情、速度,但越到后面,靠的越是方向、耐力。还在坚持的、剩下的人越来越少了。很多人上了年纪就转行了,剩下的人中,一部分也会因为成家了,有小孩了,很多心思和重心会放在孩子身上,追求工作和生活的平衡。所以也是“剩”者为王。就算是工作进取心较强的人,也会由于没有同龄的对手,只剩下自己和自己较劲了,所以,从主客观因素来看,工作是寂寞的,是平凡。

工作的越久,会发现技能、技巧的成分越少。刚毕业时,总能感受到某项新技术的震撼,特别牛。但久了会发现,真正牛逼的是深度,而不是某项技术。技术日新月异,XML之后又有JSON,Java之后又有grovvy, go, nodejs, swift,VMware之后又有docker。HTML5, Java8, Java9,等等。总之,新技术从来没停止过出现。如果只着眼于学习一种牛逼的技术,那么很可能会失望,等技术过气之后发现很无奈。相反,技术深度却永远不会过气,比如高并发架构,高可用,灾备,性能调优,等等,是每个技术都离开的话题。不同技术的差别,只不过不同场景的差别,简单来说就是适合干的事情不同,有牺牲性能提高可扩展性的,有牺牲性能提高开发速度的,但也有只注重性能的场景,根据业务需要,选择不同的技术,有条件可以做搭配,发挥各种技术的长处,扬长避短。

什么都会,其实就是什么也不会,精力被分摊了,或者说,如果你真有一样拿手的,你很难做到,也没必要做到什么都会。在差一个数量级的人的眼里才可能觉得有些人什么都会,其实不是的,人总要从自己身边的事情,工作需要,缘分,先接触到技术做起,而且先要有一门看家本领,所以掌握程度总会有较大差异。

其实就算是开发,也会有分化。有项目做的多的,客户需求,行业知识掌握的多的专家。有专攻通用技术框架,对时间复杂度、算法敏感的技术大牛。个人感觉,程序写多了,其实就是思维习惯的改变,越来越懂如何用程序将现实表达起来,也就是常说的业务建模。不管是行业专家,还是技术大牛,其实也有很多共性,就是持续学习。搞开发就像搞建筑,偏实践,动手能力。所以所谓的牛逼的技术,也许核心就是科研人员的一篇论文,懂实践的人用程序实现了。将精力花在自己擅长的环节,是一种聪明。

设计比编程重要,方向比设计重要,一切目的都是积累。如果谁能用技术将人类的智慧管理起来,每个人都干不同的事,最后大家又能无冲突的汇集起来,那人类就无敌了。其实编程没有难事,一切觉的难都是因为没有想明白,等想明白了也就不急着去做了,反而觉得浪费时间,想明白就是设计。然而技术之路能走多远,兴趣、身体健康状况、寿命长短、心态、正义等等都起决定作用,资源调配的合理才能走的远,有时有必要可以牺牲速度,这就是方向。最后看毕生成就的高度,或者技术的伟大程度就是看积累的总量,所以,哪怕一点点进步,但是坚实的,方向是向前的,都应该为自己庆贺!

洋洋洒洒,又写了这么多。也是最近1、2年来的所见、所思、所想。既然想走的远,总要迈出第一步。希望我的文字,能帮助到别人,值了。