你是优秀程序员吗?
admin 13年前
<p> 如果有人要你推荐一名优秀的程序员,你会想到谁?你认为你自己是吗?你的评判标准是什么?</p> <p> 思考了这个问题,我意识到程序员可以以各种方式做到优秀。所以我向你推出“四种类型的优秀程序员”并附上插图。 </p> <p> <strong>哲学家</strong></p> <p align="center"><img title="你是优秀程序员吗?" border="0" alt="你是优秀程序员吗?" src="https://simg.open-open.com/show/b0e68bb3fa86e7993a07f41efbd5f8a3.jpg" /></p> <p> <br /> 哲学家喜欢编写定义良好、结构良好的漂亮代码。程序构思好后,哲学家会花大量时间在方案的优雅性、健壮性和灵活性上。一个星期不谈“最佳实践”,哲学家就会觉得浑身不爽。</p> <p> <strong>动力</strong></p> <p> 严密控制带来安全,哲学家的终极动力源于此。组织良好的,可预测的系统,清晰的设计原则是哲学家的理想境界。混乱是绝对不能容忍的。秩序产生美。</p> <p> <strong>超能力</strong></p> <p> ● 能写出超级稳定的代码,稳定到你敢把命压上</p> <p> ● 凭一人之力就能保持代码的清晰,不管其他团队成员的水平如何</p> <p> ● 代码的伸缩性好</p> <p> <strong>劣根性</strong></p> <p> ● 自认为总是正确的</p> <p> ● 连80列这种问题也要争论(译者注:老计算机的终端只能显示80列,为了让这些古老的终端阅读方便,写代码一般每行不超过80个字符,但随着显示器越来越大,这个原则变得可有可无)</p> <p> ● 关注测试覆盖率多于关注用户问题</p> <p> ● 没完没了</p> <p> <strong>忌讳</strong></p> <p> ● 空格和Tab混着用</p> <p> ● 不遵守原子提交(译者注:原子提交的意思是,如果解决某个问题所修改的代码包含在多个文件中,那么这些文件需要一次性一起提交,这样可以保证任一时刻代码库的状态都是一致的)</p> <p> ● 给他们报名参加即兴表演 </p> <p> <strong>发明家</strong></p> <p align="center"><img title="你是优秀程序员吗?" border="0" alt="你是优秀程序员吗?" src="https://simg.open-open.com/show/dfe2c73e558199a6106a1c60071cee3f.jpg" /></p> <p> <br /> 发明家的实验室源源不断地出产异想天开的好东西。没人求他们,他们就是自己想做。</p> <p> <strong>动力</strong></p> <p> 发明家的动力来自探索和发明全新的事物。强烈的好奇心促使他们把假设变成现实。</p> <p> <strong>超能力</strong></p> <p> ● 经常发明有用(或者将来有用)的新技术</p> <p> ● 有感染力的狂热</p> <p> ● 让你赞叹:“哇靠,这样玩也行?”</p> <p> <strong>劣根性</strong></p> <p> ● 非我发明症(译者注:是一种文化,指不信任、不使用非自己发明的技术)</p> <p> <strong>忌讳</strong></p> <p> ● 用这句话来打击他们的创意:“这不是工业标准” </p> <p> <strong>征服者</strong></p> <p align="center"><img title="你是优秀程序员吗?" border="0" alt="你是优秀程序员吗?" src="https://simg.open-open.com/show/648c5e8d7967765483c2212c76abca85.jpg" /></p> <p> <br /> 征服者没有难题。对他们来说,编程只是一场征服之旅,不断去克服各种挑战。征服者很争强好胜,但不一定是和别人争。</p> <p> <strong>动力</strong></p> <p> 题目越难,冲得越猛。</p> <p> <strong>超能力</strong></p> <p> ● 能解决那些不可能解决的问题</p> <p> ● 比激光更敏锐的注意力,比马拉松选手更好的耐力</p> <p> ● 算法活辞典</p> <p> <strong> 劣根性</strong></p> <p> ● 容易化简为繁,因为这样解决起来更爽</p> <p> ● 永远很无聊</p> <p> <strong>忌讳</strong></p> <p> ● 让他们去做一个CRUD网页应用(译者注:CRUD指Create、Read、Update、Delete,文件系统最基本的操作,这里引申为过分简单的应用)</p> <p> ● 强迫他们只能用命令式编程语言</p> <p> ● 给他们一本“数独”谜题集(译者注:数独是一种填字游戏) </p> <p> <strong>问题解决者</strong></p> <p><img title="你是优秀程序员吗?" border="0" alt="你是优秀程序员吗?" src="https://simg.open-open.com/show/8790a8f059bc2399e18d8e959e71afc0.jpg" /></p> <p> 问题解决者是目标驱动的,冷酷的实用主义者。每个有明确定义的问题都会被他解决,诡异地不择手段地解决。</p> <p> <strong>动力</strong></p> <p> 问题解决者的动力来自创造价值,所以他们关注结果多于关注过程。</p> <p> <strong>超能力</strong></p> <p> ● 倾听</p> <p> ● 付诸行动</p> <p> ● 利用技术来解决现实问题,而不是乱上添乱</p> <p> <strong>劣根性</strong></p> <p> ● 容易激怒纯粹主义程序员</p> <p> ● 机会主义者</p> <p> <strong>忌讳</strong></p> <p> ● 给他们繁忙的工作</p> <p> ● 分配给他们没头没脑的任务</p> <p> <strong>成为一个优秀的程序员</strong></p> <p> 当然,不可能每个程序员都能简单地对号入座。重点是,优秀的途径有很多种。作为一个程序员,这四种人才都需要大力培养。当你面对任何困境,都能找到合适的人来解决,这才是真正的优秀。<br /> <br /> 来自: <a id="link_source2" href="/misc/goto?guid=4958185818450662949" target="_blank">译言</a><br /> </p>