為什麼程式設計師的開發專案總是半途而廢?

HTML5資源教程 - 蔣麗麗發表於2014-12-11

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

因為成功所以缺乏動力

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

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

知識範疇不同

我們知識廣博。對於幾個城市之間旅行怎樣便捷,我們可以侃侃而談。我們知道怎樣把一個複雜問題分解成一個個小的子問題逐個擊破。我們是真正的“世界通”,因為我們可以用任意一種語言說“Hello World”,面對即使需要成千上萬的計算,我們也不皺眉頭,因為我們懂得遞推的方法。我們知道的很多,但是又是否足夠多呢?偉大的科學家愛因斯坦曾經說過:淺學誤人,所以危險;博學自負,更加危險。牛頓,大家都知道,譽為那個時代最聰明的人之一,可以準確預測離我們上百萬千米遠的天體的運動。他說,他是站在巨人的肩膀上才能看的更遠。而物理學並不是他唯一的興趣,他還給我們留下了微積分學等等寶貴的知識財富。由此思彼,那麼他應該也對資本和市場運作很瞭解咯?


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

不斷跳槽

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

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

賦予夭折的專案新生

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

你最棒

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

構建專案元件

你開發了很多專案,變得越來越熟練,不知道你是否知道這個小竅門——複用程式碼?構建模組和庫,而不是每次需要使用的時候都去重新寫一次。假如你現在在做的專案不是最後一個,那麼我勸你最好構建一些專案元件,而不是光寫那些只能用在這個專案裡的程式碼。在文件裡給自己寫點註釋,這樣下次要用在下一個專案中就方便了。

和大家協作

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

解決你手上的問題

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

勿以事小而不為

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

吹牛也是項技術活

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

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

譯文連結:http://www.html5tricks.com/why-developer-not-finish-pros.html

英文原文:Why developers never finish their projects


評論(3)

相關文章