|
说起程序员人们的第一印象就是工资高、加班凶、话少钱多、头发少。再加上现在科技互联网公司太吃香,BAT、华为、小米等公司程序员加班情况被广泛传播,程序员用生命在敲代码的印象刻在了很多人的心里。
也许你对阿里的加班水平早有耳闻
但你是否见过他们疯狂加班的样子呢?
阿里巴巴
19:55-00:00的阿里巴巴蜂巢
灯火通明,光彩耀人
19:56,阿里大门前只有寥寥几人
20:53,你看得出变化?
22:33,一个丁香般撑着红伞的女孩子在等快车
更多人是提前叫好了车
出门直接上车,马不停蹄肥家
与其它行业一样,凡事都有高级和普通,虽然都是敲代码但也有大牛和普通之分,大牛程序员,一个人比一个团队做项目都做得快,最为出名的当属十几年前求伯君在做wps时,一个人完成了微软二十人团队没有完成的项目需求,也让wps在与微软的竞争中站稳了脚跟。程序员的能力差距真的比贫富的差距还要大,除了能力当然还有一些其他的影响因素。
从工作的方面来说,普通程序员和高级程序员一般有下面几个区别:
普通程序员
1、知识体系零散,没有系统性的思维,在写代码、改bug的时候没有工程素养,往往是拆了东墙补西墙。
其实在面对一个未知的问题时,如何定位复杂条件下的核心问题、如何抽丝剥茧地分析问题的潜在原因、如何排除干扰还原一个最小的可验证场景、如何抓住关键数据验证自己的猜测与实验,都是体现程序员思考力的最好场景。
2、对某种语言的依赖性太强,知识无法很好的迁移,一旦换了语言,或者领域不同就会不知所措。
程序员是一个非常残忍的职业。你所学所用的语言、框架、模式,很可能在数年内就成昨日黄花了;你现在嘲笑的另一群程序员,可能马上就能转身来嘲笑你了。
3、经验不足却自认为自己经验丰富,只对自己做过的比较顺手,但是碰到未知的问题,就束手无策。
4、毫无必要的拖延,这是很多程序员的通病。
5、心猿意马。
见过太多心猿意马的程序员,不得不把“专注眼下”专门提出来。
他们往往有各式各样的小梦想,比如做个小茶农、做个小鹅贩、做产品、做销售、做投资,却被程序员的高薪或是没有转行的魄力“耽误”了,而因为不专注,他们不在意做好自己的本分,不在意锤炼自己的技能,不在意学习新兴的技术。
高级程序员
1、知识体系完整,有系统性的思维,即使没有到架构师的级别,在写代码和改bug的时候也能从整体上去思考和把握。
2、学习能力强有了自己的心智模型,知识可以自由迁移,并可以高效地切入不同的领域和语言。
3、拥有真正的经验,不只是做够那些项目,而是面向未知的解决问题的能力。
而高级程序员更擅长抓住问题的本质,将看似复杂的需求化繁为简为一系列简单逻辑的堆叠,写代码步步为营,逻辑简单清晰,所有条件分支都被仔细覆盖,磨刀不误砍柴工。
如何从普通程序员进阶到高级程序员?
1、提高代码优化的能力
打铁还需自身硬,“代码可运行”对一个优秀的程序员来说绝不是结束,而是开始。优秀的程序员一定熟知各种算法和数据结构,会灵活运用,致力于写出更简单、效率更高的程序。
2、先考虑、多思考
编程思路,是系统的计划和设想,是程序员写程序时的条理和线索,可以思考但不要长时间延时性的思考。
3、突破程序员思维只有突破程序员思维,才不会沦为码农!
4、时间管理,很多人都没有时间管理意识,觉得时间最不值钱。
这就像是你到了一个十字路口,也不管自己想去哪里,抬脚就努力地奔跑,一路上被自己的努力所感动,但你跑的方向是北边,而你内心真实想去的方向是南边,方向跑偏了,始终到不了目的地,能不迷茫吗?
5、拓展知识的深度和广度
大家可以多看看 BAT 的招聘要求,看看自己还有哪些方面根本没接触过。建议大家多关注热点和优秀的开源项目、找到自己的兴趣点就多花点时间去学习研究,知识的广度很大程度上会影响开发人员的职业发展。 |
|