顶级程序员的心得 Coders at Work (III)

这是第三部分( 第一第二部分),非常有意思的问答,值得仔细琢磨。 
这里只是一些和程序员发展,面试,优秀程序员的特点等相关的部分。
有些想法和 MSF 中的原则也很相似 (见 <移山之道>)。
 

Coder

What they say about good programmer, interview, and design

My interpretation

Dan Ingalls

Guru of Smalltalk; inventor of BitBlt operation, working on Lively Kernal now.

Tips on a good technical leader:

1) clear vision;

2) trust people;   get everything figure out, but leave it open to team member to do it.

3) avoid micromanagement.  if you’re worried and you’re insecure, and so you’re feeling like you hve to nail everything down.

Alan Kay is a good example for such great leader.

技术带头人:

1) 清楚的远景。没有清楚的远景,只有强大技术能力的团队,就像盲人骑瞎马,还使劲用鞭子抽打,让马快跑。 看起来一度非常拉风,但后来免不了人仰马翻。

2)信任团队,把大方向弄清楚之后,把其他事情交给团队成员去搞清楚。 如果带头人详细规定了所有细节,那么团队成员干得还有什么劲呢?

3)避免“微观管理”。当你担心或者没有安全感的时候,你当然会希望把所有细节都搞清楚,但是这样反而会出乱子。

 

L Peter Deutsch
veteran of Xerox PARC,  author of Ghostscript;
now he is into music composition.
skills of good programmer:
intuition – no luck, but experience that had simply gotten internalized so far down that i didn’t have conscious access to the process.

programmer – people who feel comfortable swimming around in the world of symbols.

programmer vs. coder:
"Coder" is strongly associated with the smallest and most narrowly focused part of that whole software building endeavour.   "coder" represents such a small corner of the whole processs.

a good title should be: software developer.


computer science = enginnering + applied mathematics.

I would've thought that the internt was inherently uncontrollable, and i no longer think that. China shows that you can do it pretty effectively.

优秀程序员:
直觉。 但是Peter 说的不是运气,而是长期实践之后成为你思维一部分的东西 - 你不知道推理这些东西出来,正如同你不知道如何推理出直觉。

Peter 认为优秀的程序员必须能在抽象思维 (world of symbols) 中得心应手的人。

程序员 vs. 码农:
Peter 认为Coder 把程序员的工作定义得太狭隘了。 就像IT 民工,翻沙,砌墙。  砌墙并不是一个坏工作,但这只是“建筑”这一过程中的一个小部分。

"软件开发者" 应该是一个好名称, 虽然并不全面。

所谓 "计算机科学" 不过是工程加上应用数学。

我原以为互联网是根本上无法控制的。。。
 
Ken Thompson
creator of Unix.

Talented programmers:

it's just enthusiasm. you ask them what's the most interesting program they worked on,  get them to describe it and its algorthms and what's going on.  if the ycan't withstand my questioning on their program, then they are not good.
enthusiasm is not something you ask directly, but in the conversation you'll come with the enthusiasm-ometer.

优秀程序员的特点:

就是“热情”, 我们有时也说 "passion for technology". 
但是在面试的时候你不能问 - 你对计算机技术有热情么?  因为所有回答都是 yes。
你要在场景中, 对话中感觉对方的“热情”。  如果一个念了5-7年计算机专业的人,不能 “两眼放光”地给你讲他自己最得意,最激动人心的项目或算法,不能回答你的深入提问,除了老师的作业和实验室老板叫做的项目之外,没有别的想法。 你觉得这种人有多少 “热情”?

Ken 还表达了自己对C++ 的意见,几乎所有这本书采访的牛人都不太喜欢C++, 很有意思,不过这是另外一个话题了。

你可能感兴趣的:(code)