吃軟體開發這一碗飯(簡稱『吃軟飯』)的鄉民們,到了一定年紀之後,都會遇到同樣的問題:『難道我要寫一輩子的程式嗎?』或是『我還有幾年的程式可寫?』Programmer 雖然不像運動員一樣 35 歲左右就算是『老人』要準備退休了,但是隨著年紀逐漸增長,體力與記憶力逐漸衰退,開始出現以下症狀:程式寫多了肩膀會酸,滑鼠用多了手腕會痛,螢幕看多了眼睛會花,怪打多了血壓會飆高,issues 累積多了頭髮會白,架吵多了口會渴,咖啡喝多了胃會痛,需求變多了心裡會...看...不開...。再加上每天上班忙得要死,寫不完的程式,de 不完的 bugs,根本沒有時間去學習不斷推陳出新的技術。此時不禁想起了潘越雲的『
那會那會同款,軟體這條路,給你走著輕鬆,我走著艱苦
那會那會同款,軟體這條路,你隴準時下班,我留下呷便當
不願承認加班艱苦,年年肖想公司分股票
不願承認阮的程式A錯誤,不願 test case fail
那會那會走來,軟體這條路,默默寫著程式,望你看隴無
那會那會走來,軟體這條路,回過頭才知影,歹走的路途
不願承認沒照 schedule,日日 review 嘛是這離譜
不願承認 CI 永遠做不好,冬時 release 消息隴無
***
Programmer 的生涯規劃,大體可分為四條路:
- 累積一定的技術能力之後,轉做 PM,當作客戶與技術人員之間的協調溝通者(PM 動口不動手,讚啦)。
- 累積一定的技術能力之後,『座艙升等』,從經濟艙(programmer)升等到商務艙(Designer)再升等到頭等艙(Architect)。
- 轉當 QA Manager。
- 回家種田。
- 要曾經寫過很多程式。
- 要參與過多個專案。
- 要會『畫圖』(至少要會畫矩形,直線,箭頭,還有人)。
- 要懂得抄襲。
- 要持續寫『一些』程式。
- 不用考 UML 認證
- 不用考 Certified XXX Architect 認證
Teddy 介紹一批
- Design Patterns - Elements of Reusable Object-Oriented Software:有人把 patterns 又稱為 micro-architecture,這本書看熟對於了解各種不同的 architecture styles 很有用,對於寫程式也很有用。
- Pattern-Oriented Software Architecture:這一系列的書已經出到 volume 5 了,Teddy 知道大家都很忙也沒那麼多錢把每一冊都買來看。其實只要看第一冊就差不多了可以得知其中的精華,待有錢有閒時再看其餘各冊即可(不看也行啦)。
- Patterns of Enterprise Application Architecture:這本書提到很多 Web 應用程式會使用到的 patterns,這些 patterns 在『傳統』的軟體架構或是 patterns 書中比較少看到。有在開發 Web 應用程式的人這本書一定要看。
- Software Architecture in Practice, 2nd:這本書的重點可以分為 (1) 介紹 Quality Attributes (non-functional requirements)以及如何滿足這些 Quality Attributes 的方法 (書中稱之為 Tactics);(2) 用 ATAM (Architecture Tradeoff Analysis Method)與 CBAM (Cost Benefit Analysis Method)來分析軟體架構。書中還有很多資料,不過時間有限的話把這兩個重點學會就 OK 了。
- Software Architecture- Foundations, Theory, and Practice:這本書是 Teddy 去年八月買的,這幾天才拿出來看(Teddy 內心獨白:我上班也很忙啊)。沒看沒事,一看不得了,真是一本好書。Teddy 正在看第 2 章 Architectures in Context: The Reorientation of Software Engineering 和第 5 章 Connectors。寫得真好,如同書名副標題一樣,要理論有理論,要實務有實務,而且是 2010 年出版的新書,內容也比較新。這本 700 頁的書很適合拿來當教科書,想要了解 software architecture 這個領域的地形地物可以先看這本書。把它當地圖看,不用嘗試將書中的內容全部記下來。
- Every application has an architecture.
- Every application has at lease one architect.
- Architecture is not a phase of development.
***
友藏內心獨白:祝鄉民們兔年 test cases 寫到吐。
最後一本應該是 2009 年出版的?
回覆刪除To Clsung:
回覆刪除您說的是 Pattern-Oriented Software Architecture 嗎?Teddy 只買到 2007 年出版的volume 5,之後就沒注意了。下次去天瓏再看一下。
To Clsung:
回覆刪除我知到了,您說的『最後一本』是指Software Architecture- Foundations, Theory, and Practice 吧。查了一下 Amazon,好像真的是 Wiley (January 9, 2009) 出版的。書放在公司,明天再確認一下。感謝指正。
感謝推薦,目前選擇
回覆刪除1.Design Patterns - Elements of Reusable Object-Oriented Software
2.Software Architecture: Foundations, Theory, And Practice
這兩本當作小弟的架構入門書~
希望之後有些觀念後能再多多跟Teddy大學習學習 :)