关于如何才能成为一名优秀的程序员,最近又一次成为了我们关注的焦点。下面是我认为我们最需要具备的特质:
- 善于解决问题。
- 既发奋又懒惰。
- 能理解别人的代码。
- 对编程充满热情。
- 为了学习而爱上学习。
- 擅长数学。
- 具有良好的沟通技巧。
- 强大的辩论技巧。
- 极端乐观。
- 极度悲观。
1.善于解决问题——希望大家都能认识到这一点。大多数优秀的程序员能够找到别人发现不了的解决方案。
2.既发奋又懒惰——这一点让很多人都感到吃惊。程序员之所以喜欢提出质疑,往往是因为"懒得"走冤枉路。在这种想法的驱使下,他们会孜孜不倦地简化问题,简化任务。也就是说,他们会迫切地完成工作,只是过程想要尽可能的高效。
3.能理解别人的代码——这一点是至关重要的,很多优秀的程序员就是因为这一条而被拦在晋级"伟大"的门外。你的重写能力如何其实并没有多大关系——但是你需要和其他人协作于现有的项目,开始新项目时借鉴开源代码,以及从现有的代码库中学习好的技术,而这些都需要具备理解他人代码的能力。
4.对编程充满热情——你必须热爱编程。在大多数情况下,热情才是成就伟大的原生动力。
5.为了学习而爱上学习——学习犹如逆水行舟,不进则退,这是一件永无止境的事情。
6.擅长数学——最起码要对微积分有一个很好的把握。话说,如果你不知道最起码的代数和三角,那么基本上成不了伟大的程序员。
7.具有良好的沟通技巧——这意味着他们能够根据自己的情况清楚地表达想法。我碰到过很多伟大的程序员,虽然他们谈起其他问题不能做很好的沟通,但是一旦涉及到他的领域,那么就能侃侃而谈,清楚地说明问题,提出解决方案。
8.强大的辩论技巧——理由同第7点。
9.极端乐观——伟大的程序员,只需要稍微考虑一会,就能马上确定他们可以完成这项工作。
10.极度悲观——伟大的程序员,在缺乏必要信息来做正确判断的时候,会疯狂坚持这工作他们干不了。
以下为补充(非所有伟大程序员必备):
1.特别有组织。
2.善于管理他人和编程项目。
3.能够写出好的设计文档 。
4.能预估时间。
5.广泛阅读技术类书籍。
6.能将编程技能转移到编程的其他领域,举一反三。
7.一次就写好代码。
8.拥有其他领域的技能。