即便不是伟大的程序员,你也可以走的更远
每个程序员应该具备2种能力,即编程能力和个人的职业技能。
编程能力意味着你写的代码是可靠,高性能,易维护的。这跟程序员花费的时间,他的思维,以及广泛的阅读有关。
职业技能让你成为一个好的员工,好的同事。这需要反应敏捷,有良好的沟通,明白期限,及时公开的反馈,能清楚解释复杂的事物等能力。
一个极端的例子。
想象有2个人。
Rodrigo是麻省理工的毕业生,在他的空闲时间里面他在编写一个编译器。他是Haskell核心的贡献者,并且开发了一些著名的Python 包。一般情况下,他的代码具有很强的可读性,并且完美的处理边界问题。不过,他需要几天的时间才会回复一封邮件,很少拿起电话,不明白最后期限的重要性。 他做事情有自己的方式,看上去很散漫,你不能明确他的思想。
Gabriella不是一个很好的程序员,她的代码像一个业余的人写的。她用30行的代码完成一个仅用15行就可以搞定的事情,QA需要把大量时间 花在她的bug上。然而,她的反应令人难以置信 – 她在几分钟之内回答电子邮件,从不错过一个电话,她是一个伟大的沟通者,能够很清楚地向客户解释复杂的技术问题,她从未错过最后期限,她不断的通过反馈来 提高她的工作效率,并且跟她很容易沟通。
所以,你会在工作中跟谁搭档?
什么是真正重要的?
以我的经验来看,一个程序员想跟Rodrigo做同事,而一个经理想要Gabriella做同事。
这是有道理的,毕竟程序员碰到的都是让人烦心的技术问题,而经理面对的是项目期限和沟通问题。
但关键是,如果经理想要给某人升职的时候,Gabriella就走在了前进的道路了。我已经看到很多次,那些并不伟大的程序员走到了顶端,而很多优秀的程序员却因为沟通问题一直留在底层。
做为一名程序员,是不是应该想想,良好的编程能力是不是决定事业成功的关键,还是有时候更需要具备职业技能呢?