优秀的程序员在哪里

我们都希望招聘到优秀的程序员。

因为他们能解决棘手的问题。

还能缩短工期。


但是,我们总是找不到想象中那样的。

千军万马之中取上将首级,如探囊取物一般。


优秀的程序员在哪里呀?


其实,他们就在你我身边。

他们是那些运气好,遇不到困难的事情的人。


有些人好像真是如此。

他们上班时仿佛一直在偷懒,不务正业。

一会看看手机,一会浏览一些似乎不相关的网页。


好不容易开始写代码了,似乎也在写一些不关痛痒的东西。


这哪像程序员呀?

程序员应该键盘声不断,持续的输出代码。

要知道对于软件来说,代码就是产品,不是吗?


我们总是按捺不住火气想批评他们。

尤其是等到他们做完以后,才发现这么简单的问题还做了那么久。


误区

不理解专业程序员的人们,通常会存在一些误区。


首先,

问题是否棘手,这与我们认为是否困难有关。

我们认为困难的问题,有人解决了,才会觉得这个人很强。

简单的解决方案,会误导我们对问题难易的判断。


能否缩短工期,这与我们认为的工期长短有关。

我们认为工期缩短了,是因为有人在更短时间内完成了它。

简单的解决方案,会误导我们认为工期理应很短。


其次,

软件问题并不像行军打仗一样,能一眼看出问题的难易程度。

所以,别人是否在“千军万马之中取上将首级,如探囊取物一般”,是很难看出来的。


再次,

对于软件来说,代码不是产品。

代码提供的软件服务才是产品,代码只是服务的载体罢了。

因此,更多的代码,并不意味着更快的进度,也不意味着更好的软件。


最后,

有些人总是被分配到简单的任务,并不是因为运气好。

而是因为,对于复杂的问题,他们总是能想到简单的方法去解决它。

最后的解决方案简单,并不意味着问题本身也是简单的。


灵光一闪

世有伯乐,然后有千里马。——韩愈


我们只有理解了优秀的程序员,才能找到他们。

识别不出优秀所在,身边只会留下平庸之辈。


肥沃的土壤,才能长出鲜花。

宽容的工作环境,才能吸引人才。


优秀的程序员之所以优秀,是因为他们有独立思考的习惯。

他们有解决问题的独特方式。

他们不像别人那样工作,因此才能达到别人不能达到的水平。


他们在玩手机,可能是在圈子里回答别人提出的编程难题。

他们在浏览无聊的网页,也可能是在了解国内外软件架构的发展趋势。


可是这些都与工作无关呀。

是呀,一遍一遍的写垃圾代码,确实才是与工作有关的。

但只不过是,还要加班把他们删掉罢了。


而且,我们认为的与工作无关,也只是我们认为的而已。

编程是一项设计过程,好的设计思想一直坐着是想不出来的。

总要做点别的,无论什么。去寻找一些灵感。


一个的好的主意,可以节省大量编码和维护的时间。

很多问题之所以麻烦,实际上是程序员自己制造的困难。


结语

区分一个人是在娱乐,还是在思考,是一件困难的事情。

否则,为什么我们是老板,别人是员工呢?


一个人可以把牛拉到水边,但是十个人都没有办法让它喝水。

同样,我们可以不费力的要求程序员去写代码,但是却很难要求他们去思考。


多一份理解,才能多一份拥有。