zoukankan      html  css  js  c++  java
  • 顶级程序员的心得 Coders at Work (III)

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

    Coder

    What they say about good programmer, interview, and design

    My interpretation

    Dan Ingalls

    image

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

    image

    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.

    image
    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++, 很有意思,不过这是另外一个话题了。
  • 相关阅读:
    CSU 1505: 酷酷的单词【字符串】
    HDU 2036 改革春风吹满地【计算几何/叉乘求多边形面积】
    HDU 2034 人见人爱A-B【STL/set】
    HDU 2031 进制转换
    HDU 1020 Encoding【连续的计数器重置】
    HDU 1999 不可摸数【类似筛法求真因子和】
    动态规划总结
    CSU 1785: 又一道简单题
    CSU 1779: 错误的算法【矩阵/模拟】
    CSU 1777: 大还是小?【模拟/后导0】
  • 原文地址:https://www.cnblogs.com/xinz/p/1882455.html
Copyright © 2011-2022 走看看