经常有人问我:程序员在工作中最需要的是什么?公司可以做些什么来留住有能力的程序员。基于这两点,下面我谈谈我的观点。对于开发高级系统/优秀软件和在公司工作的内容,我希望自己做的是主营业务项目。最好的是我负责内容的中心部分。越是重要的部分,我就越能做。像以前那样只做一些剩菜是不好的。如果才华横溢的同事身边都是有实力、有能力的同事,他们工作时就会充满激情。而且,与这些人讨论的解决方案总是令人满意和愉快的,他们可以学到很多东西。我们怎么知道对方好不好,要看对方是否每天都在学习新的知识来增长自己的本领,但也不是绝对的。另一个重点是物以类聚。如果公司有很多优秀的程序员,那么你的公司就会吸引更多的人才。新的挑战机会新的挑战可以激发人的激情,所以程序员喜欢不断地对产品进行新的改进,但是很多软件并不难,所以觉得没有挑战。不要总想着找一些难题来解决,让别人看到你的能力。将一些枯燥的代码以简单明了的方式组织起来也是一个很好的挑战。满足程序员需求的各种技术,主要是使用一些有趣的编程语言(如Clojure、Erlang、Go语言等),还有框架和应用(如Hadoop、Cassandra等)。但是很多公司不能让我们满意。主要是因为一旦一个公司为其程序选择了某种语言(如C++),它就不会轻易改变它。如果要换编程语言,只能换工作。有固定的用户群。程序员编写程序的最大动力是是否有很多人在使用它们。如果没有人愿意使用你辛勤劳动的成果,那实在是太悲哀了。如果你的结果正在被使用,并且还能反馈一下就好了,那么公司要做的就是尽快把大家的结果发布给用户。薪水满意吗?有些公司根本不知道如何留住人才。当员工的生产力远远大于公司给的薪水时,他们的选择就是放弃公司,有的公司不给相应的薪水。压榨程序员的激励,这样的公司只会很快把人赶走。好技巧硬件/软件没有人会拒绝配备多显示器的高速计算机来提高我们的工作效率。但总有一些短视的老板认为这么高的投入不值得。每周工作时间合理。如果总是加班倒班,那只能说明不合理。并不是说加班时间越长,工作效率就越高。如果员工没有足够的休息时间和空闲空间,反而会降低效率。自由的工作环境偶尔可以让员工在家办公。虽然我个人比较喜欢在办公室工作,但是因为和同事面对面的讨论和发展更有激情,有时候也是调节员工情绪的好方法。上下班需要短时间的通勤。如果每天通勤时间太长,你总会感到不开心。偶尔堵在路上就迟到了,心情更不好。这也会影响你的工作。
