程序员这个行业,是一个区隔度特别高的行业。不少人短短几年就可以成长为高级工程师、资深架构师、首席架构师,而另外一部分人很可能工作10年还是初中级工程师。
优秀的程序员能达到百万年薪,而入门级或者初中级程序员可能只能拿10万年薪。很多时候,遇见复杂系统问题,派多少个初中级工程师都于事无补,而一个资深架构师就可以轻松搞定。
那么相较于普通程序员,一个优秀的资深程序员一般具有哪几种隐性能力呢?
01
强大的思维逻辑
对于一个程序员来说,你的思维逻辑有些地方其实需要异于常人的。
最经典的笑话就是:女朋友让程序员买包子,如果遇到卖西瓜的,就买一个。结果就是,程序员买了一个包子回家。为什么?因为他遇到了卖西瓜的。
这个虽然是一个笑话,但是在代码层面,业务流程图上,确实可能需要这样来理解的。所以,一个程序员首先需要培养属于程序员自身的思维逻辑,不然,你对于设计文档的理解就可能有问题。
02
良好的编码习惯
什么是编码习惯?简单点说就是,注释,命名规范,编码规范。
为什么我们必须写注释?因为一个月以后,你可能看不懂你的代码了。为什么要遵守命名规范?因为一个月以后,你可能看不懂你的代码了。为什么要遵守编码规范?因为一个月以后,你可能看不懂你的代码了。你都看不懂你的代码了,其他人还能看懂?更不可能了。
所以,一定要习惯写注释,按照命名规范和编码规范来严格完成。
细节体现了对工作的认真程度!
03
学习能力
IT行业是技术快速更迭的行业,整个环境进化的非常快,你不学习,就等于落后了。学习要有针对性。首先要认清自己的目标,自己短期目标是什么,1年后,3年后,5年后的目标是什么。结合这些目标,确定自己的学习计划,人的精力毕竟是有限的。当然,多掌握几门编程语言也是好的,可以扩充自己的知识面,重要的是为自己的目标服务。
要想系统的学习一门技术或工具,参加培训是最好的方法,有专业老师指导,有与企业对接的项目,实现高效学习;或者你可以选择看书,看完后,然后上网找相关资料,进行深入学习。学习要抓紧一切可以利用的时间,比如电脑启动要花1分多钟,旁边放一本书,可以看上几页了。公交车上,地铁上也可以看。
当然,不能只学习技术,要经常练习自己的软技能,比如沟通能力,表达能力。你可以把自己学到的东西,解释给自己的同事听,既加深了理解,又增进了同事之间的交流。学习的最高境界就是你能够把学到的东西解释给别人听,这才说明你理解了。在学习心理学上,称之为构成主义。
04
重视沟通能力的培养
沟通包括程序员团队内部的沟通,与其他团队的沟通,与Manager的沟通等等。可以先学会和你的Manager沟通,让他来教你其余的部分。许多公司都会设置Manager与组员的1:1,一个有效率的1:1应该大部分时间有组员来主导。这需要你在1:1之前花足够多的时间来考虑要问的问题,并且最好提前1天发给Manager,让他有机会思考答案。
许多人对此不太重视,或者只问非常具体的问题而不是一些开放性问题,这样你很难在你的Manager身上学到东西。如果你渐渐懂得如何利用1:1的时间,它会成为你在工作中单位时间投资回报率最高的活动。
人生机遇、专业技能、个人能力,每一个要素都能让自己走得更远。