程序員最想些什么?
上周我從三個哈爾姆斯塔德大學的學生那里收到一封電子郵件是關(guān)于他們做了一個三個月的項目名字叫程序員想要什么,以及企業(yè)如何吸引有才華的程序員。這里是我自己按照重要性對于問題的幾條答案。很明顯,人有不同的觀點,所以聽你同意或不同意哪一條,或你認為落下的,下面的這些會讓你感興趣的。
在核心部門工作
我喜歡我工作的項目是公司的主要業(yè)務(wù)。當然不包括在信息技術(shù)領(lǐng)域工作的人們,因為他們的工作只適合接待間接業(yè)務(wù)(不管是什么業(yè)務(wù))。我也喜歡工作系統(tǒng)的中央部分,越重要越好。如果我的工作部部分停止工作,應該立即成為公司的緊急問題??傊?,我不想只是其他公司的配置,適應者和粘合劑——我自己想增加大量的功能。
不錯的同事。
與聰明的并且充滿熱情的同事們在一起搞軟件開發(fā)是一件特別刺激的事,我注意到一次又一次,我與同事一起討論一個問題或一個設(shè)計的解決方案,都比自己要好。這種方式不僅能獲得更好的解決方案,這個過程本身也很愉快。
你怎么知道某人是否是一個好的程序員?一個很明顯的標志就是,他們是否在不斷的學習和提高自己的技能,例如通過閱讀書籍和博客,上有關(guān)的課,或開一個類似的會議。盡管這樣,這并不是一個必要的條件,我曾經(jīng)與很多非常好的開發(fā)人員的工作,他們也不曾這樣選擇??傊玫拈_發(fā)人員往往會因為以上各種原因吸引其他開發(fā)人員。事實上,一個公司有很多偉大的開發(fā)人員使招募更多人才變得更容易。
挑戰(zhàn)性的問題。
程序員喜歡用代碼來解決問題。某些方面的產(chǎn)品起碼應該有些要求比如需要聰明的解決方案,要求減少延遲,或有限的硬件資源,等等許多并發(fā)請求。然而,很多產(chǎn)品軟件是常規(guī)代碼沒有任何特別困難的部分。所以你不要指望只工作中遇到“難題”,而避開一切其他的。此外,組織無聊的代碼,使它變成很容易理解和維護的代碼,這是一個很大的挑戰(zhàn)。
很爽的技術(shù)。
這主要是關(guān)于使用有趣的編程語言(例如 Clojure,Erlang 或者 Go),但也包括框架和應用程序(例如 Hadoop 或 Cassandra)。這是一個公司可能有問題的地方。如果他們的應用程序是用某種語言(如c++),它不會改變。所以,如果你想要改變使用一些新的語言,那么你需要改變工作。例如,如果您希望使用在斯德哥爾摩 Erlang,你可以試試 Klarna 或 Campanja。
用戶。
編碼的樂趣之一就是創(chuàng)造對他人有用的東西。制造沒有人使用東西是一件很無聊的事情。讓用戶(越多越好)在工作中使用并給出有價值的反饋。***的意外是剛開始,然后必須讓用戶盡快達到壓倒一切的優(yōu)先級。
豐厚的的薪水。
公司有很多優(yōu)秀的開發(fā)人員知道偉大的人民勞動的價值。原因是優(yōu)秀的和普通程序員之間的差異很大,具有的經(jīng)濟價值超過了開發(fā)價值——生產(chǎn)力的變化遠遠大于工資的變化。另一方面,公司不支付他們的程序員往往是公司認為程序員是可互換的“資源”。這些都是公司想避免因其他原因,不僅僅是工資太低。
好工具。
這幾乎是不言而喻的。高速的計算機和一些監(jiān)控設(shè)備——對,是誰反對?(好吧,禿頂老板干涉,只看到成本,而不是利益,這樣的做法將會被反對)。
每周工作 40 小時。
如果你經(jīng)常需要加班的話,一些組織安排肯定是錯誤的。此外,長時間工作不等同于富有成效。
最小的官僚機構(gòu)。對于開發(fā)過程,這是或多或少固定與敏捷開發(fā)方法,這似乎普遍采用。我的經(jīng)驗,一般行政超載問題主要是在規(guī)模較大的公司。
在家工作。
能夠很方便有時在家工作,但它在我的列表中不放在重要的位置。我喜歡在辦公室和與人交流。我使用視頻會議和遠程辦公室工作,聊天和電子郵件,但它并沒不如在辦公室方便,更容易有收獲。
交通方便,時間不長。
顯然很難影響,但如果每天不花幾個小時在交通上,的確很棒。