天天看點

頂級程式員的心得 Coders at Work (IV)

( 第一,第二, 第三部分 )

“Coders at Work”,   對15 位頂級程式員的采訪, 總共600頁。 看似冗長的問答中有不少精辟的言論。 我摘錄了一些關于挑選,面試程式員,優秀程式員的特點,和程式設計的句子。下面是 最後 3 個程式員的心得,和我的幾句解釋:

Coder What they say about good programmer, interview, and design My interpretation

Fran Allen

first woman winner of Turing Award

頂級程式員的心得 Coders at Work (IV)

Software process:

did software-development process save the IBM/360 project?

it's was absolutely necessary,  but it was painful for the software people to [adjust to] design reviews, design specs, all of this stuff.

good programmer:

basic threshold: find out what they're excited about.

if they can't get enthusiastic about something,  they're not going to get charged up in a group.

軟體流程:

因為IBM/360 項目的軟體部分遇到了很大的困難,那時候還沒有什麼成文的 "軟體工程", Fred Brooks 把管硬體的經理們調來,讓他們來管軟體部門, 因為硬體是一個相對成熟的産業 - 晶片設計,測試,等等。 這些“不懂軟體”的同志們參考硬體産業, 建立了軟體工程的基本流程。

從一個成熟的産業中學習,是很有效的辦法。 現在我們還可以從軟體工程的一些術語中看到硬體的影子 - 例如 smoke test 冒煙測試。

好的程式員:

熱情 (前面 Ken 同學也談到了這一點)

Bernie Cosell

czar of PDP-1

pioneer of APPANET,  the core of the later internet

advice to programmer:

write a lot of programs.

there is very few inherently hard programs. if the code looks very hard, that's almost always an indication that it was poorly thought thruough.   if you have complicated code, put it in an encapulated place.

programs are meant to be read. 

avoid premature optimization

find talented programmers:

whether they have the kind of inquiring, curious, precise kind of mind.  quickness of learning, interested in lots of different things, and kind of broadly based.

[carefully chosen] puzzle can gives you a glimmer as to how they organized something to approach it.

給程式員的建議:

寫很多程式。

世界上難的問題/程式很少, 如果一個人的代碼看起來很難,這通常意味着程式員沒有想清楚。 如果你必須用很複雜的代碼,把它包裝起來。

程式是用來給人讀的。

避免過早優化。

優秀程式員:

應聘者有沒有刨根問底,好奇心, 準确的思維?  能快速地學習麼? 是否對很多東西都有興趣? 是否有很廣泛的基礎?

[仔細挑選的] 智力題能讓你看到應聘者是如何組織材料,解決問題的。 

Donald Knuth

TAOCP, TeX and METAFONT, literate programming

頂級程式員的心得 Coders at Work (IV)
Knuth 在學術界的影響

How I learn programming – basically taking one program that i made up myself and sitting at a machine over a period of some weeks, and kept getting it to work a little better and a little better.

Q: Should every programmer be able to read TAOCP?

A: I sometimes wonder if I can read them.

but even an algorithm like a balanced tree ot AVL tree, i don't use it in m own programs unless i know that it's going t obe a really big tree.

what do you use?

i use an ordinary binary search tree with a little trick for randomizing it that i just put it. 

...

繼續閱讀