优秀的程序员和普通的程序员差别在哪里?
这几年项目管理的事情做了不少,管理过不少程序员,有一些程序员确实会比其他人突出一些,他们在升职加薪方面确实会快很多,如果你也想成为优秀的程序员,个人提几点小建议:程序员的本职工作,还是把代码写好,所以先说说代码的事儿,主要讲两个方面:关注实现,也要关注效率和性能:我见过的程序员,大部分都可以把功能实现,只有部分程序员会关注性能问题,并且肯为提高代码执行效率投入大量的时间;因为很多项目组在开发过程中,测试环境和生产环境的数据量差别很大,测试中没有问题的代码,一上线就会出问题。
关注代码的可复用性和扩展性:代码写的好不好,可复用性和扩展性很重要,这个关系到项目后期的迭代,有些项目换了几波开发人员之后,就留有很多谁也不敢动的“祖传代码”了。
以上两点,可以说是对项目的责任心:有些额外的付出,可能并不会在短期内得到回报,比如两个人实现相同的需求,外表上看实现的功能都是一样的,但是你写的代码,后期扩展起来很简单,不过也有可能几个月、几年后才需要扩展,才能见识到“你代码的好”;在这方面,我希望大家能够“笨一些”,多花些时间在这些事情上;首先,大家一定要认清:“我做好工作,不是为了公司,而是为了自己”;千万不要抱着“给多少工资,出多少力”的想法;代码的复用性、扩展性,不是看几本书就能提高的,需要长期的实战积累;你做的这些工作,领导会看在眼里的;如果真遇到了忽视代码、轻视开发的领导,把东西学会了,跳槽就好了。
除了一门心思敲代码,还有很多重要的事情要注意:沟通能力、表达能力、演讲能力,总之就是要“会说话”;PPT能力,很多程序员对年中、年终述职嗤之以鼻,建议大家千万要重视起来,有时候大领导不一定知道你的工作内容和成果,这真的是一个很好的机会展示自己。
多和直属领导交流,千万不要等着领导找你;可以定期主动汇报一下最近的工作,不用很正式,时不时地找领导聊几句:最近做了什么,有什么成果,遇到什么问题...如果遇到问题,要拿着解决方案去找领导,方案A or 方案B,让领导做选择题;如果没有解决方案,要说自己的思路;总之,要证明自己思考过;进一个从0到1的项目,更容易出成绩,如果有机会进新项目的话,一定要把握住机会。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。