顶级程序员的心得 Coders at Work (I)
正在讀 “Coders at Work”,?? 對15 位頂級程序員的采訪, 總共600頁。 從采訪的模式看,有點像“藝術人生”, 一般都是音樂起,講小時候的故事,你怎么開始寫程序的?? (Brad 同學 5 歲開始寫) ; 不過后來并沒有神秘嘉賓上場,也沒有聲淚俱下的宣泄。 無論如何, 這些看似冗長的問答中有不少精辟的言論。 我摘錄了一些關于挑選,面試程序員,優秀程序員的特點,和程序設計的句子。下面是前6個程序員的心得,和我的幾句解釋:
?
| Coder | What they say about good programmer, interview, and design | My interpretation |
| Jamie Zawinski, LISP hacker, early Netscape developer, nightclub owner | Stay away from big fan of C++ templates;? Ability to argue their point is important. Curiosity is a key skill for programmers. There are people graduating with CS degrees who’d never written C. They started in java and they stayed there.? That just seemed bizarre and wrong. | 不喜歡過度崇拜C++ 模板的程序員; 程序員的表達能力,說服能力好奇心很重要; ? 很多學生拿到了CS 學位,但是從來沒寫過C 程序,他們學了Java,僅此而已。 這是非常奇怪和不對的。 |
| Brad Fitzpatrick creator of memcached, Perlbal, MogileFS.
| interview question: Write a class to do arbitrary, bigint manipulation with multiplication and division | 寫一個大數的類,可以做乘除法。 |
| Douglas Crockford? creator of JSON | Good Programmer: They have to read Knuth (TAOCP);?? they are really literate in whatever language they write to other humans. I invite the candidate to bring in a piece of code he’s really proud of and walk us thru it. | 讀過Knuth 的TAOCP;? 有很強的文字表達能力和溝通能力。 請應聘者帶自己最得意的代碼來,給大家看看。 |
| Brendan Eich,? Creator of JavaScript | hiring: (rely on referral from team member) Bright people like each other and can judge each other.?? I don’t give people puzzles to solve.? We give them fairly practical problems, Not esoteric puzzles or math-y things. | (他有時通過同事的推薦來招人)? 聰明的人會互相欣賞,評價。 我不想通過智力題來判斷程序員,我們給應聘者相當實際的問題,而不是那些奇怪的智力題或者數學題。 |
| Joshua Bloch Java Architect, author of “Effective Java” | About programming: The older I get, the more I realize it isn’t just about making it work; it’s about producing an artifact that is readable, maintainable, and efficient.? …? it’s easier to optimized correct code than to correct optimized code. “do you ever use UML as a design tool?” No. I think it’s nice to be able to make diagrams that other people can understand.? But honestly I can’t even remember which components are supposed to be round or square. | 關于編程: 我越來越意識到寫程序不是僅僅把程序寫出來,而是要讓你寫的程序可讀,可維護,并且高效。? 優化正確的程序要比改正已優化(但是有錯)的程序要容易。 ? “你曾經用過UML 設計工具么?” 沒有。 能把設計畫成圖,讓別人理解當然很好。 但是說實話我記不起來哪些模塊應該是圓形,哪些是方形。 |
| Joe Armstrong creator of Erlang, and OTP.
| Interview question: “what was the most fun project you ever wrote; show me the code for this stuff; how would you solve this problem?” I’m not so hung up on what they know about language X or Y.? they are either good at all languages or good at none. ? You have to have a good memory to be a reasonable programmer. | 面試問題: “你寫過的最好玩的項目是什么? 讓我看看代碼, 你是怎么解決這個問題的?” 我并不一味要求他們已經知道某一兩種語言。 好的程序員精通一種語言后,就會觸類旁通,能學好所有語言。 ? 好記性對一個好程序員很重要。 |
總結
以上是生活随笔為你收集整理的顶级程序员的心得 Coders at Work (I)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue if判断_VUE学习记录2
- 下一篇: 《我和他的结婚录像和相册集》的快速传播