為什么程序員的開發(fā)項(xiàng)目總是半途而廢?
很多程序員的項(xiàng)目常常半途而廢。他們有那么多的好點(diǎn)子,但是很多都流于空想。幾乎每一個(gè)軟件開發(fā)者都有一個(gè)這樣的文件夾,里面很多都是些還沒完工的項(xiàng)目,而這些程序里有不少在它誕生初期真心是個(gè)超棒的點(diǎn)子。和這些人一樣,我也有很多好主意,有的甚至就是現(xiàn)在有些企業(yè)在用的。比如正決定著在 eBay 上還是在 Amazon 上做電子商務(wù)獲利、做一個(gè)以業(yè)務(wù)為基礎(chǔ)的社交網(wǎng)絡(luò)(水管業(yè)、電子行業(yè)、軟件開發(fā)等)、比特幣搜索引擎、開發(fā)一個(gè) CSS 框架來取代 Bootstrap、從 Instagram 上找出最有魅力的那些人、開發(fā)一個(gè)實(shí)時(shí)訪問統(tǒng)計(jì)引擎,這樣的例子舉不勝舉。幾乎每一個(gè)項(xiàng)目我都著手去做了,但是沒見到一個(gè)是完工了的。當(dāng)我和我的同事朋友聊起這個(gè)話題的時(shí)候,他們也普遍反映,他們也是如此。很多很多的好點(diǎn)子都夭折在他們的文件夾里。為什么會這樣?
因?yàn)槌晒λ匀狈?dòng)力
首先要談?wù)勎覀兊穆殬I(yè),擁有著讓人眼紅的高就業(yè)率。用事實(shí)說話,全國的失業(yè)率約為 6.7%,而 WEB 開發(fā)員的失業(yè)率還不到1%。而且我們的工資水平也比平均值高。2012 年軟件開發(fā)員的平均年收入就已經(jīng)超過 9 萬美元。當(dāng)然現(xiàn)在你要是足夠優(yōu)秀,完全可以遠(yuǎn)遠(yuǎn)超過這個(gè)數(shù)。看著跟著我學(xué)習(xí)的新手菜鳥成為入門級程序員,心中有一種莫大的個(gè)人成就感。而這個(gè)職業(yè)的薪酬也讓他們很滿意:起薪 4 萬 5 千美元到 7 萬美元。
所以,和其他大多數(shù)人相比,特別是那些在工作崗位上碌碌無為做一天和尚撞一天鐘的,因?yàn)閸徫恍劫Y不高而不斷跳槽的,軟件開發(fā)員還是比較成功的。這里請?jiān)试S我冒昧的做一個(gè)概括,如有雷同純屬巧合。可以說,半路出家的程序員相對于這些人是比較成功的了。也就是這種成功的優(yōu)越感麻痹了我們的神經(jīng),使得我們?nèi)鄙倭送瓿赡繕?biāo)的動(dòng)力。
知識范疇不同
我們知識廣博。對于幾個(gè)城市之間旅行怎樣便捷,我們可以侃侃而談。我們知道怎樣把一個(gè)復(fù)雜問題分解成一個(gè)個(gè)小的子問題逐個(gè)擊破。我們是真正的“世界通”,因?yàn)槲覀兛梢杂萌我庖环N語言說“Hello World”,面對即使需要成千上萬的計(jì)算,我們也不皺眉頭,因?yàn)槲覀兌眠f推的方法。我們知道的很多,但是又是否足夠多呢?偉大的科學(xué)家愛因斯坦曾經(jīng)說過:
淺學(xué)誤人,所以危險(xiǎn);博學(xué)自負(fù),更加危險(xiǎn)。
牛頓,大家都知道,譽(yù)為那個(gè)時(shí)代最聰明的人之一,可以準(zhǔn)確預(yù)測離我們上百萬千米遠(yuǎn)的天體的運(yùn)動(dòng)。他說,他是站在巨人的肩膀上才能看的更遠(yuǎn)。而物理學(xué)并不是他唯一的興趣,他還給我們留下了微積分學(xué)等等寶貴的知識財(cái)富。由此思彼,那么他應(yīng)該也對資本和市場運(yùn)作很了解咯?
哈哈,那你就大錯(cuò)特錯(cuò)了!在 1720 年南海股票泡沫的高峰期,他投入的所有現(xiàn)金化為烏有,然后破產(chǎn)了。因?yàn)樗涣私馐袌?,所以即使他知識再多再淵博,也幫不了他一點(diǎn)忙。因?yàn)樗闹R領(lǐng)域是獨(dú)立的,不相關(guān)的——他發(fā)現(xiàn)了物體運(yùn)動(dòng)的規(guī)律,但是這些規(guī)律對他掌握投資者心理毫無幫助。我們也是這樣的情況。我們可以花一整天時(shí)間去解釋算法,研究數(shù)據(jù)結(jié)構(gòu),但是我們卻不懂得用戶想要什么。當(dāng) twitters 剛出現(xiàn)的時(shí)候,我想當(dāng)然的認(rèn)為不過是個(gè)曇花一現(xiàn)的流行事物。事實(shí)證明我錯(cuò)了。當(dāng)我們在解決問題的時(shí)候,往往只追求解決方案是否吸引人,卻忽略了聯(lián)系這個(gè)問題的世俗看法。
不斷跳槽
我敢保證,其他任何一個(gè)主要城市都是這樣的,但是在這里,我僅代表我自己和我的同事朋友們在紐約工作時(shí)的經(jīng)驗(yàn)。我們不斷跳槽。但是也不是每個(gè)人都是這樣。我在網(wǎng)上一篇文章的評論上看到有的人已經(jīng)在同一個(gè)崗位上干了 19 年。我也發(fā)現(xiàn)了,那些很容易被別的項(xiàng)目所吸引的人,往往不會停留在同一個(gè)崗位上太久。就是因?yàn)檫@個(gè)原因?qū)е潞芏囗?xiàng)目不得不中斷。
中斷項(xiàng)目有很多原因。比如,剛進(jìn)入新工作,并且需要專心致志做那里的項(xiàng)目,就不得不把原來的先擱置一邊。又比如,因?yàn)樽龅倪@個(gè)項(xiàng)目和我們以前做過的可能差不多,于是頓時(shí)失去了興趣。距離也是原因之一,特別是如果你隔個(gè)幾年就要跳槽的話,堅(jiān)持就愈加困難了。在這里,我需要提一提,轉(zhuǎn)變心態(tài)很重要。如果你打算在三年后辭職,那么為什么不不能在 3 個(gè)月里搞定你的項(xiàng)目?如果你能保持著這種激情,當(dāng)你在項(xiàng)目上一籌莫展的時(shí)候,靈機(jī)一現(xiàn),好點(diǎn)子就來了。
賦予夭折的項(xiàng)目新生
因?yàn)檫@樣那樣的原因,我沒有讓我的好點(diǎn)子“出世”。首先我們承認(rèn)了這點(diǎn),然后我們找出了原因?,F(xiàn)在第三步就是要修復(fù)它們了。這不是一朝一夕就能完事的,而且可能我的很多項(xiàng)目仍然會是這種半死不活的狀態(tài),然后我思索許久,終于想出了一些步驟,可以避免這些項(xiàng)目永遠(yuǎn)成了文件夾里的擺設(shè)。
你最棒
首先,要明白每一個(gè)項(xiàng)目都能讓你稍微——或者在某些情況下是大幅度——成長為一個(gè)更佳的開發(fā)人員。技術(shù)需要靠時(shí)間的積累,所以你開發(fā)的項(xiàng)目越多,你就越棒。以學(xué)習(xí)新技術(shù),新的編程語言,新的框架為動(dòng)力去開發(fā)一個(gè)項(xiàng)目,那么即使你完不成,也能學(xué)到不少知識。而且如果你有其他要事要辦,你可以立即暫停這個(gè)項(xiàng)目。
構(gòu)建項(xiàng)目組件
你開發(fā)了很多項(xiàng)目,變得越來越熟練,不知道你是否知道這個(gè)小竅門——復(fù)用代碼?構(gòu)建模塊和庫,而不是每次需要使用的時(shí)候都去重新寫一次。假如你現(xiàn)在在做的項(xiàng)目不是***一個(gè),那么我勸你***構(gòu)建一些項(xiàng)目組件,而不是光寫那些只能用在這個(gè)項(xiàng)目里的代碼。在文檔里給自己寫點(diǎn)注釋,這樣下次要用在下一個(gè)項(xiàng)目中就方便了。
和大家協(xié)作
現(xiàn)在我們已經(jīng)有了能讓那些夭折的項(xiàng)目重生的好方法,是不是蠢蠢欲動(dòng),躍躍欲試了?你的點(diǎn)子可能精妙無比,就像你的孩子一樣寶貝,也或許價(jià)值數(shù)十億美元,但是到目前為止——它一文不值。你需要和其他人分享你的點(diǎn)子,并且越多越好。這種自然而然的興奮能促使你不斷致力于這個(gè)項(xiàng)目,推動(dòng)它的發(fā)展。甚至你可以開源,邀請大家參與進(jìn)來。這種相互協(xié)作的方式會讓你有種使命感,專注于此,不輕易放棄。
解決你手上的問題
不要好高騖遠(yuǎn),也不要眼高手低,試著去做一些對你真正有用的東西。如果你是程序開發(fā)員,那解決程序問題,如果你在公司工作,那制作那個(gè)公司需要使用的程序什么的,即使是你個(gè)人方面,也一定會有一些可以用技術(shù)解決的問題。那么為什么不先下手為強(qiáng)呢?不要等到問題積累起來了再去解決,一步一個(gè)腳印,同時(shí)你還可以得到一些有用的程序什么的,何樂而不為?
勿以事小而不為
有句俗話,不要想著去創(chuàng)立需要時(shí)限 8 個(gè)月才能辦起來的公司,把時(shí)間放在可以在 4 周內(nèi)甚至更少就能做好的事情上。無論多么簡單,每個(gè)月固定日子發(fā)布你的***成果。這樣做會有很強(qiáng)的心理暗示,能激勵(lì)你的工作。相反,如果你坐在筆記本前搗鼓了 8 個(gè)月想干件驚天動(dòng)地的大事,但是卻毫無進(jìn)展,有多么沮喪是可想而知的。量變會導(dǎo)致質(zhì)變,一件件小事辦好了可能會有大大的成功。因?yàn)槿松穆猛臼且粓鲴R拉松,而不是短跑。
吹牛也是項(xiàng)技術(shù)活
社會壓力是真實(shí)存在的,與其偷偷摸摸工作,還不如告訴大家你的工作內(nèi)容。你得到的反饋有可能會有助你改進(jìn)產(chǎn)品?;蛟S你擔(dān)心別人會把你的點(diǎn)子占為己有,但是我可以保證,絕對不會有這種事發(fā)生。因?yàn)榧词故呛芎唵蔚南敕▌e人想要去執(zhí)行,也是很困難的一件事。所以沒必要諱莫如深。說出來,你還可以從大家提出的建議中提煉出有意義的加以改進(jìn)自己,而更加重要的是,這樣做會促使你不得不去實(shí)現(xiàn)它。不然牛皮吹破面子就不知道放哪里了,哈哈。
寫到這里,要告一段落了,不知道你有沒有學(xué)到什么訣竅能對你的項(xiàng)目有所幫助?記得:行動(dòng)最重要。
譯文鏈接:http://www.html5tricks.com/why-developer-not-finish-pros.html
英文原文:Why developers never finish their projects
翻譯作者:蔣麗麗