一个人是否能成为程序员是上天注定的

开发 开发工具
程序员是一种特殊物种,好的程序员尤其是这样——在我们这个行当里很多人都试图把编程归入一种复杂的技术学科,但它实际上更倾向于一种艺术。它实际上更接近数学,音乐或电视剧《Firefly》里的Kaylee魔法。

[[61325]] 

本文的作者是一个斯洛文尼亚共和国的独立程序员,自称是“戴帽子的黑客”,他使用Pascal、Delphi、 C/C++、Python,PHP,node.js等语言编程,他曾是著名的开源论坛phpBB的几个主要模块的开发人,先后为hipstervision.org等五家公司网站的创始人或合作创始人,他目前的主要收入来自postme.me这个明信片网站。

程序员是一种特殊物种,好的程序员尤其是这样——在我们这个行当里很多人都试图把编程归入一种复杂的技术学科,但它实际上更倾向于一种艺术。它实际上更接近数学,音乐或电视剧《Firefly》里的Kaylee魔法。

好的程序员有一种特殊的直觉,一种天赋,这种天赋很难描述,更不容易得到。

几个星期前,@zidarsk8 跑到我这说“老大!我发现这样一个人!我还在在教他如何编程!但我发现他已经比我优秀了!他一个月前还不知道到什么是变量!太邪门了!“

他要我一定要在博客里写写这件事。为什么有些人就简单的学会了?他们有什么特殊之处?是否任何人都可以学会编程?还是只有有一定天分的人才能成为一个不错的(先别谈优秀)程序员?

我记得一年前曾辅导过一个高中的孩子。大概是担心考不过他的计算机课程,跑到我这来求助。一个月里,我把我知道的全教给他了,至少这些知识能让他通过考试。

快到月末的时候,他已经知道了所有关于循环、变量赋值的知识,甚至还明白了函数是一组能做某些事情的代码。我跟他父亲道别时说的话是“是的,他什么都知道了。只需要一些实践去掌握它们。”

[[61326]]

我不知道他是否考过了那个课程。如果他过了,那是老师的荣幸…而就我根据我高中时的记忆,老师们并非都那么幸运。并不是因为我不是个好老师我才这样说——我从很多受这个孩子推荐来到我这里的其他学生那里都收到了一封“谢谢你!出色的通过!耶!”的邮件——有些人很简单就是不能成为程序员。永远成不了程序员。更别说成为不错的程序员了。

不能编程的羊

Jeff Atwood在2006年曾写过关于把不能编程的山羊从能编程的绵羊中挑出来的文章,里面提到过一项研究,这些研究声称找到了一种能预测一个人将来的编程能力的测试。

测试非常的简单:

  1. a = 5 

  2. b = 20 

  3. a = b  

  4.  

  5. 现在a和b的值是什么? 

有很多像这样的问题。只有44%学生的大脑里养成了固定的赋值思维模型——包括有些理解甚至是错误的。余下的人都答错了,或者是没有答。

更糟糕的是,在一个学期的编程学习后,这个比例没有任何变化。只有44%的理解了赋值的过程。

很显然,有些人就是学不会。

我想可能还有个更简单的测试 ->

[[61327]]

 

热  情

有时候,当你给一个有上进心的年轻心灵(任何愿意学习编程的人,年龄不是问题)两种工具和一个难题。他会使用这两种工具创造出4种工具。他会搜索互联网,发现更多的工具…很快,他有了20种工具,请问你还让我解决什么问题?

这就是热情!

心无杂念的对编程的热情。没有问题需要解决时仍然对编程入迷,甚至兴奋。甚至把解决一个已知的问题也当作一次普通的练习…这就是卓越之处。

多大岁数才开始学习编程,这并不重要——很多研究显示,在我们这个世界里,编程的工龄并不是水平的指示符——重要的是你对这个行业有个热情的心。

因为,一旦有了热情,你就拥有了所有其它的一切。

[本文英文原文链接:Programmers are born not made ]

原文链接:http://www.aqee.net/programmers-are-born-not-made/

【编辑推荐】

  1. 选择跟程序员约会的10个理由
  2. 从程序员到第四次创业的生活
  3. 每个程序员都应该知道的福利
  4. 是什么让程序员想死的心都有了?
  5. 是什么成就了卓越的程序员?
责任编辑:林师授 来源: 外刊IT评论
相关推荐

2015-12-30 11:10:24

高级C++程序员

2011-07-13 15:23:22

程序员

2015-09-24 10:21:39

程序员未来

2018-12-14 11:22:21

快递员快递柜智能

2015-07-28 09:17:23

程序员CEO

2010-04-24 23:10:13

敏捷开发

2015-08-05 15:46:36

代码程序员

2015-06-12 15:29:06

一个人的爆品

2018-09-21 15:00:21

2012-07-20 09:41:43

2019-12-17 18:25:35

物联网电脑互联网

2023-02-09 09:56:32

架构

2015-05-13 14:06:03

程序员糟糕的程序员

2013-08-14 10:23:22

创业个人创业互联网创业

2010-12-27 09:24:45

JSP程序员

2009-07-02 09:42:34

JSP程序员

2015-05-13 10:42:21

程序员代码

2015-06-25 09:53:13

JavaScript程序员

2015-06-25 19:23:03

JavaScript程序员

2015-06-25 09:32:55

JavaScript程序员
点赞
收藏

51CTO技术栈公众号