做程序員內(nèi)心的需求是什么?
上周,哈爾姆斯塔德大學(xué)的三名學(xué)生發(fā)給我一封電子郵件,咨詢的內(nèi)容主要是關(guān)于他們做了三個(gè)月的項(xiàng)目課題——程序員在工作中需要什么,以及企業(yè)怎么樣才能吸引有能力的程序員。下面是我的回答(按重要程度排序)。當(dāng)然每個(gè)人都有自己的看法,所以我非常樂(lè)意聽(tīng)到各位的點(diǎn)評(píng),如果各位認(rèn)為有什么不贊同或者遺漏的地方,請(qǐng)務(wù)必指出,謝謝。
產(chǎn)品是軟件。
我喜歡搞那些公司主營(yíng)計(jì)劃的業(yè)務(wù)。但是由于it部門(mén)只提供間接支持,所以我只能放棄。我也很喜歡做系統(tǒng)的中心部分——總之,越重要我越來(lái)勁。最后因?yàn)槲艺嫘牟幌朐賰H僅只是給不同公司的軟件寫(xiě)配置、調(diào)試和銜接——我決定聽(tīng)從自己的心聲,開(kāi)始去寫(xiě)一些有意義的功能模塊。
牛逼的同事。
和一些很厲害又對(duì)工作充滿激情的程序員一起工作,是一件非常刺激的事。事實(shí)一次又一次地證明,和這些家伙討論之后出來(lái)的方案,比我們各自絞盡腦計(jì)想出來(lái)的還要好。而且整個(gè)討論的過(guò)程也能讓人學(xué)到很多東西,非常過(guò)癮。
那么我們?cè)趺磁卸▽?duì)方是否優(yōu)秀呢?有一個(gè)非常顯著的標(biāo)志就是,看他們是否保持著不斷學(xué)習(xí)的勁頭,是否在持續(xù)改善自己的職業(yè)技能,相關(guān)途徑有:閱讀書(shū)籍和博客、接受新課程以及參與會(huì)議等等。但是這些并非是必要條件,我也曾與不少著實(shí)可稱之為牛逼的程序員共事過(guò),但是他們也沒(méi)有上述這些特征。最后,還有一點(diǎn),同性相吸,優(yōu)秀的開(kāi)發(fā)人員往往會(huì)因惺惺相惜而匯聚在一起。這也是為什么如果一個(gè)公司有很多優(yōu)秀的員工,那么就會(huì)招攬到更多優(yōu)秀者的原因。
不斷地挑戰(zhàn)。
程序員喜歡用代碼解決問(wèn)題。所以產(chǎn)品中至少總得有需要改進(jìn)的地方,哪怕是低延遲要求、很多并發(fā)請(qǐng)求還甚至是有限的硬件資源限制都可以。但是,很多軟件的難度都不高,毫無(wú)挑戰(zhàn)性。所以不要寄希望于能找到一些難題然后好顯示你的聰明才智。此外,將一些枯燥乏味的代碼組織得易于理解和維護(hù)也是一種不錯(cuò)的挑戰(zhàn)。
酷炫的技術(shù)。
這一點(diǎn)主要是指使用一些有趣的編程語(yǔ)言(例如,clojure、erlang和 go語(yǔ)言等),也包括框架和應(yīng)用程序(例如hadoop和cassandra等)。不過(guò)這一點(diǎn)很多公司都無(wú)法滿足我們。因?yàn)橐粋€(gè)公司一旦為他的程序選擇了某種語(yǔ)言(如c+ +),那么就不會(huì)再輕易去改動(dòng)。如果你想換種編程語(yǔ)言,那可能就只能換工作了。
忠實(shí)的用戶。
編程的樂(lè)趣之一就是能制作出一些對(duì)他人有用的東西。如果辛辛苦苦的成果沒(méi)人愿意享用,那太悲劇了。最好用戶(用戶數(shù)量愈多愈好)在關(guān)注的同時(shí),能給予一些寶貴的意見(jiàn)。唯一的例外是在初創(chuàng)企業(yè),壓倒一切的當(dāng)務(wù)之急就是盡快發(fā)布給用戶。
令人滿意的薪水。
大公司往往更懂得人才的價(jià)值。不過(guò)由于牛逼程序員的薪水要求會(huì)遠(yuǎn)遠(yuǎn)高于平均水平,故而留住他們得更有經(jīng)濟(jì)效益——即兩者之間的生產(chǎn)力差距應(yīng)該遠(yuǎn)遠(yuǎn)大于薪水差距。不過(guò),也有的公司并沒(méi)有付給程序員相應(yīng)的薪水,只管死命地壓榨員工資源。像這種公司往往還會(huì)有其他原因逼得我們不得不離開(kāi),而不僅僅只是因?yàn)槌偷某陝凇?
好工具。
其原因不言而喻的。一臺(tái)高速的電腦、多個(gè)顯示器絕對(duì)能加快我們的開(kāi)發(fā)速度——沒(méi)人反對(duì)?!(不過(guò)也有那種見(jiàn)識(shí)短淺只看到了成本,沒(méi)意識(shí)到效益的boss,會(huì)say no。)
一周工作40小時(shí)。
如果你經(jīng)常要加班,那么說(shuō)明這個(gè)組織結(jié)構(gòu)有問(wèn)題。再說(shuō),不是工作時(shí)間長(zhǎng)產(chǎn)生的效益就多。
最簡(jiǎn)潔的行政管理。
在開(kāi)發(fā)過(guò)程中,或多或少都會(huì)涉及敏捷開(kāi)發(fā)的方法,這已經(jīng)非常普遍了。
在家工作。
最好有時(shí)候能允許在家工作。當(dāng)然在我看來(lái)這一點(diǎn)沒(méi)那么重要。因?yàn)槲冶容^喜歡在辦公室工作,可以和不同的人交往。我曾使用視頻會(huì)議、聊天工具和電子郵件來(lái)和遠(yuǎn)程團(tuán)隊(duì)協(xié)作開(kāi)發(fā)軟件,不過(guò)這種形式的生產(chǎn)力遠(yuǎn)遠(yuǎn)比不上和身邊的人合作產(chǎn)生的。
公司離家近。
雖然沒(méi)那么重要,但是能不必每天長(zhǎng)時(shí)間得被堵在馬路上總是好的,不是嗎?
小結(jié)
以上是按照我認(rèn)為的重要程度排列的程序員的各項(xiàng)需求。但是,生活不會(huì)盡善盡美,人生總會(huì)有妥協(xié)。但是越前面的需求,我越不愿意輕易放棄。各位程序員,你們最重要的需求是什么呢?歡迎留言。










