优秀的程序员和一般的程序员差别在哪?

优秀的程序员和一般的程序员差别在哪?

What difference between an excellent programmer and a normal programmer?

这是我在知乎上的一个回答,原文在这里:http://www.zhihu.com/question/19759297/answer/23187279

在我看来,没有优秀程序员和一般程序员,只有程序员和码农。

如果按 排名第一@郭凛 的答案来分类,那就是5是程序员,1234是码农。

举个栗子:

  • A:对于我们这种需要多方合作的项目,还是用git比较方便管理。
  • B:svn很牛逼的!我用了很多年了!
  • A:git的分支很方便,合并操作相当简洁且没有负担。
  • B:svn也有分支!百度上说svn更适合企业!
  • A:git只有一个.git目录来管理所有版本,在排除的时候很方便!
  • B:svn现在也支持单 .svn目录了!

再举个栗子:

  • A:为什么我们网站的根目录下面还有个.settings和.project文件夹?
  • B:我上传时候直接用flashfxp一拖就上来了,没看有什么文件夹。
  • A:为什么我刚才pull之后在项目库下面多了个 未命名.txt 文件?
  • B:嗯,那是我自己做笔记备份用的。

三举个栗子:

  • A:为什么Hero这个类有1万行?
  • B:我觉得把所有功能写在一个类里面很方便啊!
  • A:为什么这段代码复制了4次?封装成函数啊!
  • B:啊!有么?
  • A:这几个类为什么不用适配器模式?
  • B:什么是适配器模式?

最后举个栗子:

  • B:怎么加一个Sprite到Node中?
  • A:Node.addChild(Sprite)
  • B:我要在加的时候设置层级关系!
  • A:RTFM!

码农真正意识(而不是调侃)到自己是码农的时候,TA才可能成为一个程序员。

而当TA成为一个程序员的时候,TA才有资格站在山脚下,憧憬着那那高耸入云的峰顶,开始攀登。