我们都希望招聘到优秀的程序员。
因为他们能解决棘手的问题。
还能缩短工期。
但是,我们总是找不到想象中那样的。
千军万马之中取上将首级,如探囊取物一般。
优秀的程序员在哪里呀?
其实,他们就在你我身边。
他们是那些运气好,遇不到困难的事情的人。
有些人好像真是如此。
他们上班时仿佛一直在偷懒,不务正业。
一会看看手机,一会浏览一些似乎不相关的网页。
好不容易开始写代码了,似乎也在写一些不关痛痒的东西。
这哪像程序员呀?
程序员应该键盘声不断,持续的输出代码。
要知道对于软件来说,代码就是产品,不是吗?
我们总是按捺不住火气想批评他们。
尤其是等到他们做完以后,才发现这么简单的问题还做了那么久。
误区
不理解专业程序员的人们,通常会存在一些误区。
首先,
问题是否棘手,这与我们认为是否困难有关。
我们认为困难的问题,有人解决了,才会觉得这个人很强。
简单的解决方案,会误导我们对问题难易的判断。
能否缩短工期,这与我们认为的工期长短有关。
我们认为工期缩短了,是因为有人在更短时间内完成了它。
简单的解决方案,会误导我们认为工期理应很短。
其次,
软件问题并不像行军打仗一样,能一眼看出问题的难易程度。
所以,别人是否在“千军万马之中取上将首级,如探囊取物一般”,是很难看出来的。
再次,
对于软件来说,代码不是产品。
代码提供的软件服务才是产品,代码只是服务的载体罢了。
因此,更多的代码,并不意味着更快的进度,也不意味着更好的软件。
最后,
有些人总是被分配到简单的任务,并不是因为运气好。
而是因为,对于复杂的问题,他们总是能想到简单的方法去解决它。
最后的解决方案简单,并不意味着问题本身也是简单的。
灵光一闪
世有伯乐,然后有千里马。——韩愈
我们只有理解了优秀的程序员,才能找到他们。
识别不出优秀所在,身边只会留下平庸之辈。
肥沃的土壤,才能长出鲜花。
宽容的工作环境,才能吸引人才。
优秀的程序员之所以优秀,是因为他们有独立思考的习惯。
他们有解决问题的独特方式。
他们不像别人那样工作,因此才能达到别人不能达到的水平。
他们在玩手机,可能是在圈子里回答别人提出的编程难题。
他们在浏览无聊的网页,也可能是在了解国内外软件架构的发展趋势。
可是这些都与工作无关呀。
是呀,一遍一遍的写垃圾代码,确实才是与工作有关的。
但只不过是,还要加班把他们删掉罢了。
而且,我们认为的与工作无关,也只是我们认为的而已。
编程是一项设计过程,好的设计思想一直坐着是想不出来的。
总要做点别的,无论什么。去寻找一些灵感。
一个的好的主意,可以节省大量编码和维护的时间。
很多问题之所以麻烦,实际上是程序员自己制造的困难。
结语
区分一个人是在娱乐,还是在思考,是一件困难的事情。
否则,为什么我们是老板,别人是员工呢?
一个人可以把牛拉到水边,但是十个人都没有办法让它喝水。
同样,我们可以不费力的要求程序员去写代码,但是却很难要求他们去思考。
多一份理解,才能多一份拥有。