上周我收到了一封来自哈尔姆斯塔德大学的三名学生的电子邮件,内容涉及他们进行的为期三个月的项目,名为“程序员想要什么,以及企业如何吸引人才程序员”。以下是我自己对问题的回答,按重要性排序。显然,人们有不同的意见,所以听听您同意或不同意哪些观点,或者您认为哪些观点落后会很有趣。在核心部门工作我喜欢我从事的项目是公司的主要业务。从事信息技术工作的人当然不是,因为他们的工作只适合处理间接业务(不管是什么业务)。我也喜欢工作系统的核心部分,越重要越好。如果我所在单位的一部分停止工作,这应该立即成为公司的一个紧急问题。简而言之,我不想要其他公司的配置、适配器和胶水——我想自己添加很多功能。好同事。和聪明热情的同事一起做软件开发是一件特别刺激的事情,我一次又一次地注意到,我和同事一起讨论问题或设计解决方案比我自己做得更好。这不仅会带来更好的解决方案,而且过程本身也很愉快。你怎么知道一个人是否是一个好的程序员?一个明显的迹象是他们是否在不断学习和提高自己的技能,例如通过阅读书籍和博客、参加相关课程或召开这样的会议。即便如此,这也不是必需的,我曾与很多非常优秀的开发人员合作过,但他们并没有选择这样做。总之,由于上述所有原因,优秀的开发人员往往会吸引其他开发人员。一家公司拥有很多优秀的开发人员这一事实使得它更容易招募到更多的人才。具有挑战性的问题。程序员喜欢用代码来解决问题。产品的某些方面至少应该有一些要求,例如需要巧妙的解决方案,需要减少延迟,或者硬件资源有限,以及许多并发请求。然而,很多生产软件都是常规代码,没有任何特别困难的部分。所以你不要指望在工作中只会遇到“困难”,而对其他一切都避而远之。此外,将枯燥的代码组织成易于理解和维护的代码也是一个很大的挑战。非常酷的技术。这主要是关于使用有趣的编程语言(例如Clojure、Erlang或Go),以及框架和应用程序(例如Hadoop或Cassandra)。这就是公司可能会遇到问题的地方。如果他们的应用程序是使用像C++这样的语言,它不会改变。所以,如果你想改变使用某种新语言,那么你需要换工作。例如,如果你想在斯德哥尔摩使用Erlang,你可以试试Klarna或Campanja。用户。编码的乐趣之一是创造对他人有用的东西。制作无人使用的东西是一件无聊的事情。让用户(越多越好)在工作中使用它并提供有价值的反馈。最大的惊喜是刚刚开始,然后必须尽快让用户获得压倒一切的优先权。丰厚的薪水。公司有许多优秀的开发人员,他们知道伟大的人的劳动的价值。原因在于优秀和平庸的程序员之间的差异是巨大的,经济价值超过开发价值——生产力的变化远大于工资的变化。另一方面,不支付程序员报酬的公司通常是公司认为程序员可以互换的“资源”。这些是公司出于其他原因而不只是低工资而希望避免的事情。好工具。这几乎是不言而喻的。高速计算机和一些监控设备——是的,谁反对呢?(好吧,秃头老板多管闲事,只看成本,不看收益,会被反对)。每周工作40小时。如果你必须经常加班,一些组织安排肯定是错误的。此外,长时间工作并不等同于高效。最少的官僚作风。至于开发过程,相对于敏捷开发方法论来说,这或多或少是固定的,后者似乎被普遍采用。根据我的经验,一般的行政超负荷问题主要出现在大公司。家庭作业。有时能够在家工作很方便,但它在我的名单上并不高。我喜欢待在办公室,喜欢与人交流。我使用视频会议和远程办公室工作、聊天和电子邮件,但这不如在办公室方便和有益。交通便利,时间不长。显然很难影响,但如果你不每天花几个小时在交通上,那就太好了。通过:程序员想要什么?【编者推荐】如何让程序员快乐工作:细节决定成败。程序员需要克服的10个障碍。22条日常小技巧,帮助程序员提高工作效率,节省时间
