上次有預告說要寫一篇探討程式設計師人格特質方面的論述,就趁現在補上吧!
無奈現在無法好好靜下心來構思內容。只好大部分都直接摘自《Code Complete》一書的論述,沒經過太多反芻。請原諒我的偷懶 =.="
~~
【智力與謙卑】
要成為一個好的程式設計師,通常和智力沒有太大的關係。因為要能完全掌握一個程式,就得要有無限的腦容量,以吸收所有細節,並同時理解。而這對平凡的人類而言,是不可能的事情。所以
『如何將您的智力集中發揮,遠比你天生的智力高低重要多了!』
Edsger Dijkstra 在 1975 年 Turing Award 演講時發表了一篇《The Humble Programmer》的文章。他認為大多數程式設計師都瞭解腦袋瓜的有限容量,因而採取一些補救措施。最優秀的程式設計師也就是那些最能體認人類腦力何其之小的人;相反的,那些不願承認自己腦袋瓜不夠大的人,往往就變成了最差勁的程式設計師。
…
【求知慾】
一旦我們體認人類智力的渺小後,大家就會瞭解到要有效地設計程式,就要找出一些方法來彌補智力的不足。
在成長為優秀的程式設計師的過程中,對於科技知識的求知慾一定是第一優先的事。...
- 建立對於發展程序的自覺
- 試驗
- 閱讀各種問題的解決方法
- 從成功的專案中學習
- 閱讀手冊
- 閱讀書籍及期刊
...
【智識誠實】
一個成熟的專業程式設計師有一個很重要的特質,就是智識誠實,這可以表現在下列幾個方面:
- 絕不假裝您是某方面的專家
- 毫不遲疑地承認自己所犯的錯誤
- 嘗試去瞭解編譯器所產生的警告訊息,而不是略過不管
- 完全瞭解自己所撰寫的程式,而不是只丟給編譯器試看看有沒有錯誤
- 提供符合實際狀況的專案狀態報告
- 提供符合實際的時程預估,並能在管理階層要求縮短時程時據理力爭
...
【溝通與合作】
優秀的程式設計師所要學習的就是團隊合作,這自然包含了『撰寫具可讀性的程式碼』。對電腦來說,程式寫得在怎麼難看都無所謂,可是人在這方面就比不上電腦。所以在撰寫程式的時候,時時得記住,將來會有某人必須維護您的程式,因此
『您必須將您撰寫的程式,當作是與將來那個人的溝通橋樑』
而不是只讓電腦懂就可以。
『任何一個傻瓜都能寫出電腦可以理解的程式碼。
唯有寫出人類容易理解的程式碼,才是優秀的程式員。』
by Martin Fowler, (1999) Refactoring: Improving The Design of Existing Code
【創造力與拘束力】
...
【惰性】
...
~~
嗯嗯,就摘錄到這,剩下的,就要靠各位自己的『求知慾』了 :-)
--
The art of programming is the art of organising complexity.
-- Dijkstra, 1930-2002
--
0 comments:
Post a Comment