為什么程序員的開發項目總是半途而廢?

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統

很多程序員的項目常常半途而廢。他們有那么多的好點子,但是很多都流于空想。幾乎每一個軟件開發者都有一個這樣的文件夾,里面很多都是些還沒完工的項目,而這些程序里有不少在它誕生初期真心是個超棒的點子。和這些人一樣,我也有很多好主意,有的甚至就是現在有些企業在用的。比如正決定著在eBay上還是在Amazon上做電子商務獲利、做一個以業務為基礎的社交網絡(水管業、電子行業、軟件開發等)、比特幣搜索引擎、開發一個CSS框架來取代Bootstrap、從Instagram上找出最有魅力的那些人、開發一個實時訪問統計引擎,這樣的例子舉不勝舉。幾乎每一個項目我都著手去做了,但是沒見到一個是完工了的。當我和我的同事朋友聊起這個話題的時候,他們也普遍反映,他們也是如此。很多很多的好點子都夭折在他們的文件夾里。為什么會這樣?

因為成功所以缺乏動力

首先要談談我們的職業,擁有著讓人眼紅的高就業率。用事實說話,全國的失業率約為6.7%,而WEB開發員的失業率還不到1%。而且我們的工資水平也比平均值高。2012年軟件開發員的平均年收入就已經超過9萬美元。當然現在你要是足夠優秀,完全可以遠遠超過這個數。看著跟著我學習的新手菜鳥成為入門級程序員,心中有一種莫大的個人成就感。而這個職業的薪酬也讓他們很滿意:起薪4萬5千美元到7萬美元。

所以,和其他大多數人相比,特別是那些在工作崗位上碌碌無為做一天和尚撞一天鐘的,因為崗位薪資不高而不斷跳槽的,軟件開發員還是比較成功的。這里請允許我冒昧的做一個概括,如有雷同純屬巧合。可以說,半路出家的程序員相對于這些人是比較成功的了。也就是這種成功的優越感麻痹了我們的神經,使得我們缺少了完成目標的動力。

知識范疇不同

我們知識廣博。對于幾個城市之間旅行怎樣便捷,我們可以侃侃而談。我們知道怎樣把一個復雜問題分解成一個個小的子問題逐個擊破。我們是真正的“世界通”,因為我們可以用任意一種語言說“Hello World”,面對即使需要成千上萬的計算,我們也不皺眉頭,因為我們懂得遞推的方法。我們知道的很多,但是又是否足夠多呢?偉大的科學家愛因斯坦曾經說過:

淺學誤人,所以危險;博學自負,更加危險。

牛頓,大家都知道,譽為那個時代最聰明的人之一,可以準確預測離我們上百萬千米遠的天體的運動。他說,他是站在巨人的肩膀上才能看的更遠。而物理學并不是他唯一的興趣,他還給我們留下了微積分學等等寶貴的知識財富。由此思彼,那么他應該也對資本和市場運作很了解咯?

1-j6CUvYBqScHxK-jlyLmalw

哈哈,那你就大錯特錯了!在1720年南海股票泡沫的高峰期,他投入的所有現金化為烏有,然后破產了。因為他不了解市場,所以即使他知識再多再淵博,也幫不了他一點忙。因為他的知識領域是獨立的,不相關的——他發現了物體運動的規律,但是這些規律對他掌握投資者心理毫無幫助。我們也是這樣的情況。我們可以花一整天時間去解釋算法,研究數據結構,但是我們卻不懂得用戶想要什么。當twitters剛出現的時候,我想當然的認為不過是個曇花一現的流行事物。事實證明我錯了。當我們在解決問題的時候,往往只追求解決方案是否吸引人,卻忽略了聯系這個問題的世俗看法。

不斷跳槽

我敢保證,其他任何一個主要城市都是這樣的,但是在這里,我僅代表我自己和我的同事朋友們在紐約工作時的經驗。我們不斷跳槽。但是也不是每個人都是這樣。我在網上一篇文章的評論上看到有的人已經在同一個崗位上干了19年。我也發現了,那些很容易被別的項目所吸引的人,往往不會停留在同一個崗位上太久。就是因為這個原因導致很多項目不得不中斷。

中斷項目有很多原因。比如,剛進入新工作,并且需要專心致志做那里的項目,就不得不把原來的先擱置一邊。又比如,因為做的這個項目和我們以前做過的可能差不多,于是頓時失去了興趣。距離也是原因之一,特別是如果你隔個幾年就要跳槽的話,堅持就愈加困難了。在這里,我需要提一提,轉變心態很重要。如果你打算在三年后辭職,那么為什么不不能在3個月里搞定你的項目?如果你能保持著這種激情,當你在項目上一籌莫展的時候,靈機一現,好點子就來了。

賦予夭折的項目新生

因為這樣那樣的原因,我沒有讓我的好點子“出世”。首先我們承認了這點,然后我們找出了原因。現在第三步就是要修復它們了。這不是一朝一夕就能完事的,而且可能我的很多項目仍然會是這種半死不活的狀態,然后我思索許久,終于想出了一些步驟,可以避免這些項目永遠成了文件夾里的擺設。

你最棒

首先,要明白每一個項目都能讓你稍微——或者在某些情況下是大幅度——成長為一個更佳的開發人員。技術需要靠時間的積累,所以你開發的項目越多,你就越棒。以學習新技術,新的編程語言,新的框架為動力去開發一個項目,那么即使你完不成,也能學到不少知識。而且如果你有其他要事要辦,你可以立即暫停這個項目。

構建項目組件

你開發了很多項目,變得越來越熟練,不知道你是否知道這個小竅門——復用代碼?構建模塊和庫,而不是每次需要使用的時候都去重新寫一次。假如你現在在做的項目不是最后一個,那么我勸你最好構建一些項目組件,而不是光寫那些只能用在這個項目里的代碼。在文檔里給自己寫點注釋,這樣下次要用在下一個項目中就方便了。

和大家協作

現在我們已經有了能讓那些夭折的項目重生的好方法,是不是蠢蠢欲動,躍躍欲試了?你的點子可能精妙無比,就像你的孩子一樣寶貝,也或許價值數十億美元,但是到目前為止——它一文不值。你需要和其他人分享你的點子,并且越多越好。這種自然而然的興奮能促使你不斷致力于這個項目,推動它的發展。甚至你可以開源,邀請大家參與進來。這種相互協作的方式會讓你有種使命感,專注于此,不輕易放棄。

解決你手上的問題

不要好高騖遠,也不要眼高手低,試著去做一些對你真正有用的東西。如果你是程序開發員,那解決程序問題,如果你在公司工作,那制作那個公司需要使用的程序什么的,即使是你個人方面,也一定會有一些可以用技術解決的問題。那么為什么不先下手為強呢?不要等到問題積累起來了再去解決,一步一個腳印,同時你還可以得到一些有用的程序什么的,何樂而不為?

勿以事小而不為

有句俗話,不要想著去創立需要時限8個月才能辦起來的公司,把時間放在可以在4周內甚至更少就能做好的事情上。無論多么簡單,每個月固定日子發布你的最新成果。這樣做會有很強的心理暗示,能激勵你的工作。相反,如果你坐在筆記本前搗鼓了8個月想干件驚天動地的大事,但是卻毫無進展,有多么沮喪是可想而知的。量變會導致質變,一件件小事辦好了可能會有大大的成功。因為人生的旅途是一場馬拉松,而不是短跑。

吹牛也是項技術活

社會壓力是真實存在的,與其偷偷摸摸工作,還不如告訴大家你的工作內容。你得到的反饋有可能會有助你改進產品。或許你担心別人會把你的點子占為己有,但是我可以保證,絕對不會有這種事發生。因為即使是很簡單的想法別人想要去執行,也是很困難的一件事。所以沒必要諱莫如深。說出來,你還可以從大家提出的建議中提煉出有意義的加以改進自己,而更加重要的是,這樣做會促使你不得不去實現它。不然牛皮吹破面子就不知道放哪里了,哈哈。

寫到這里,要告一段落了,不知道你有沒有學到什么訣竅能對你的項目有所幫助?記得:行動最重要。

譯文鏈接:http://www.html5tricks.com/why-developer-not-finish-pros.html
英文原文:Why developers never finish their projects
翻譯作者:蔣麗麗
轉載必須在正文中標注并保留原文鏈接、譯文鏈接和譯者等信息。]


網載 2014-07-03 10:30:27

[新一篇] 為什么程序員的開發項目總是半途而廢?

[舊一篇] 為什么很多人覺得計算機專業的會修電腦?
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表