移山之道

关注软件开发技术和管理的社区网站

欢迎光临 移山之道 登录 | 注册 | 帮助
in 搜索

关心

移山之道 作者

顶级程序员的心得 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.

image

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.

image

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.

面试问题:

你写过的最好玩的项目是什么? 让我看看代码, 你是怎么解决这个问题的?”

我并不一味要求他们已经知道某一两种语言。 好的程序员精通一种语言后,就会触类旁通,能学好所有语言。

 

好记性对一个好程序员很重要。

已发表 2009年12月23日 11:09 作者 关心

评论通知

如果您想在帖子更新时接到邮件通知,请先登录。这里

订阅帖子评论使用 RSS

评论

 

匿名人士 说:

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

十二月 25, 2009 23:37
 

匿名人士 说:

( 第一 , 第二 , 第三部分 ) “ Coders at Work ”,   对15 位顶级程序员的采访, 总共600页。 看似冗长的问答中有不少精辟的言论。 我摘录了一些关于挑选,面试程序员,优秀程序员的特点,和程序设计的句子。下面是

十二月 26, 2009 12:12
 

silver 说:

确实,当时我做《编程之美》的“寻找符合条件的整数”时候,大数的四则运算类搞了我好久,写了3个不同的类:一个二进制,两个十进制(递归/非递归)

《算法概论》里面从计数的起源讲起,解释了我们认为“天经地义”的乘除法是怎么来的,为什么是正确的,确实很有意思:)

而且,发明乘除法的人还发明了递归方法,其思路还能用到乘方上面:

    public static BigInt Multiply(BigInt x, int y)

       {

           if (y == 0) return (BigInt)0;

           var z = Multiply(x, y >> 1);

           z.DoubleUp();//翻倍

           if ((y & 1) == 1) z.Add(x);

           return z;

       }

    //r是余数

    public static BigInt Divide(BigInt x, int y, out int r)

       {

           if (x == 0)

           {

               r = 0;

               return (BigInt)0;

           }

           var q = Divide(x.Divide(2), y, out r);

           q *= 2;//这时候乘法已经定义了

           r = r << 1;

           if (!x.IsEven) r++;

           if (r >= y)

           {

               r -= y;

               q += 1;

           }

           return q;

       }

十二月 31, 2009 16:30
 

匿名人士 说:

四月 26, 2010 14:07
 

匿名人士 说:

五月 1, 2010 19:16

说说您的看法?

(必填) 
(可选)
(必填) validate code
(必填) 
发表

About 关心

邹欣 - 曾写: 《移山之道》,《编程之美》(合作) 。 在写: ppt, email。 想写: 《编程之美 - 实战中的设计》...

联合

Powered by Community Server (Personal Edition), by Telligent Systems
访问计数:     京ICP备06016978号
王屋村村民除了看yishan.cc, 还浏览下列网站.