如果有人要你推薦一名優秀的程序員,你會想到誰?你認為你自己是嗎?你的評判標準是什么?
In thinking about this, I realized that there are different ways that a programmer can be good. So I present to you The Four Kinds of Good Programmers. And in celebration of Whyday, I include quirky Why-styled illustrations* for your viewing pleasure!
思考了這個問題,我意識到程序員可以以各種方式做到優秀。所以我向你推出“四種類型的優秀程序員”并附上插圖。
The Philosopher
哲學家
The philosopher loves to write well-defined, well-structured, beautiful code. That the program will be implemented is assumed; the elegance, robustness, and flexibility of the solution is where the philosopher’s energy goes. The philosopher cannot go an entire week without mentioning “best practices”.
哲學家喜歡編寫定義良好、結構良好的漂亮代碼。程序構思好后,哲學家會花大量時間在方案的優雅性、健壯性和靈活性上。一個星期不談“最佳實踐”,哲學家就會覺得渾身不爽。
Motivation
動力
The philosopher is ultimately driven by a need for safety and security which is expressed through tight control. A well-ordered, predictable system that always follows clear principles is the philosopher’s beautiful vision of heaven. Chaos is anathema. Beauty is found in order.
嚴密控制帶來安全,哲學家的終極動力源于此。組織良好的,可預測的系統,清晰的設計原則是哲學家的理想境界?;靵y是絕對不能容忍的。秩序產生美。
Superpowers
超能力
can build code that you can bet your life on
●能寫出超級穩定的代碼,穩定到你敢把命壓上
can create an environment where the codebase stays in pristine shape, regardless of the skills of other team members
●憑一人之力就能保持代碼的清晰,不管其他團隊成員的水平如何
if they build it, it will scale
●代碼的伸縮性好
The Dark Side
劣根性
is always right
●自認為總是正確的
gets into petty arguments about 80-column line limits
●連80列這種問題也要爭論(譯者注:老計算機的終端只能顯示80列,為了讓這些古老的終端閱讀方便,寫代碼一般每行不超過80個字符,但隨著顯示器越來越大,這個原則變得可有可無)
cares more about test coverage than customers’ problems
●關注測試覆蓋率多于關注用戶問題
is never finished
●沒完沒了
Pull Their Chain
忌諱
mix spaces and tabs
●空格和Tab混著用
avoid atomic commits
●不遵守原子提交(譯者注:原子提交的意思是,如果解決某個問題所修改的代碼包含在多個文件中,那么這些文件需要一次性一起提交,這樣可以保證任一時刻代碼庫的狀態都是一致的)
sign them up for improv
●給他們報名參加即興表演
The Inventor
發明家
Something quirky and cool is always coming out of the incessantly prolific inventor’s lab. No one asked for it, but that didn’t stop the inventor from making it.
發明家的實驗室源源不斷地出產異想天開的好東西。沒人求他們,他們就是自己想做。
Motivation
動力
The inventor is driven by a need to explore and to birth something completely new and unique into the world. Curiosity compels the “what ifs” to actualize.
發明家的動力來自探索和發明全新的事物。強烈的好奇心促使他們把假設變成現實。
Superpowers
超能力
creates novel technology that is (sometimes) useful
●經常發明有用(或者將來有用)的新技術
has infectious enthusiasm
●有感染力的狂熱
makes you say, “Gee, I never thought of using it in that way!”
●讓你贊嘆:“哇靠,這樣玩也行?”
The Dark Side
劣根性
not invented here
●非我發明癥(譯者注:是一種文化,指不信任、不使用非自己發明的技術)
Pull Their Chain
忌諱
knock down their ideas by saying, “but that’s not the industry standard”
●用這句話來打擊他們的創意:“這不是工業標準”
The Conqueror
征服者
No problem is too hard for the conqueror. To them, programming is an odyssey of increasingly demanding Herculean challenges to overcome. The conqueror is driven and competitive, but not necessarily competitive with other people.
征服者沒有難題。對他們來說,編程只是一場征服之旅,不斷去克服各種挑戰。征服者很爭強好勝,但不一定是和別人爭。
原文轉自:http://www.kuqin.com/pragmatic/20110828/264101.html