軟體這個行當裡曆來有個謠言:項目經理不懂技術沒關系。
有人說這事兒是外國的先進經驗,但我懷疑這是杜撰的。
這一觀點的潛台詞是:項目經理是管理者,指揮下屬就行了,幹嘛要懂技術!
這就像說班長不用拿槍上戰場一樣可笑。
持這個觀點的可還記得:”将軍起于行伍,宰相拔于州郡“這一說。
我的觀點是,項目經理一定要懂技術,并且還要有比較紮實的功底,雖然在專門領域上不一定是專家。
在這篇文章裡,我們将列幾本用來打根基的書,這些書要精讀而不能翻翻就算了。
這些書的用途,不在眼前,但卻最終決定你的成長高度。
沒這些根基,如果站得太高,可能就像上海的樓房,指不定那天就倒了。
1.語言+平台的書
語言和平台的書依據語言和平台不同,經典書籍也不同。我的感覺是選最有名的,各讀一本就可以了。
舉個小例子:
本人當年學c++的時候,花了差不多1年的時間,反複讀了bjarne stroustrup 的《c++程式設計語言》,實在是受益匪淺,後來再學其他語言時,基本沒什麼障礙。學windows程式設計時,把jeffry
richter的《windows核心程式設計》讀了幾遍後,各種windows下的問題大多能較快理清脈絡。
即使是現在,凡是這類項目中的問題,也還是能很快的把握症結所在。
這類書,有名的很多,但重複讀多本似乎收益不大。把一本讀透,其他的實踐中慢慢體會即可。
如果你方向是系統程式設計,那上面兩本書仍然适合你。如果是其他平台,自己選一本有名的吧!
2.有技術根基後,要讀一本培養技術上全局視角的書。
這時,我感覺最佳選項是《代碼大全》。這書幾乎涵蓋了設計編碼的各個環節。
讀了之後,也許很難記得具體某個環節的細節,但是至少可以知道軟體開發中要考慮那些方面的問題。
3.技術上視角足夠寬之後,要讀一本俯視軟體全體的書(包含需求開發,管理,估算,流程等)。
事實上這裡需要一本經典的軟工書籍,但很可惜這個領域中好書不少,但經典到一定程度,且實用的就幾乎沒有。
《人月神話》太老,《人件》則幾乎完全不适合國情,《軟體随想錄》則太零散。
(你讓國内軟體公司給每個程式員配個辦公室,那老闆能瘋掉。)
非要推薦一下的話,cmmi的2,3級過程域分解的還不錯,可以讀sei的标準。
4.研究一下估算,讀一本估算相關的書。
如果估算能準,軟體開發中的問題,很可能可以減少一半。
估的有問題,會導緻團隊老加班,接下來導緻内部關系緊張,工作熱情消退,這很自然。
是以要有自己的估算方法。這時候可以讀《軟體估算--黑匣子解密》。
5.改變下自己的視野和格局,讀一本和程式設計毫無關系的書。
比如:湯因比的《曆史研究》.
這個模型可以醜陋,可以簡單,但關鍵是一定要是你自己的。
這就好比一顆珍珠,它中間可以是小石頭,可以是鳥屎,但一定要有,
有的話,後續的分泌就可以保證産生珍珠;沒有的話,那珍珠也就不知從何談起。
沒有自己的對軟體開發的了解,讀書多了,知識沒法吸收,會把腦子讀亂掉,