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

本文的作者 Swizec Teller

本文的作者 Swizec Teller

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

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

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

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

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

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

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

Sheep

Image via Wikipedia

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

不能编程的羊

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

测试非常的简单:

a = 5
b = 20
a = b

现在a和b的值是什么?

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

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

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

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

Passion (novel)

Image via Wikipedia

热情

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

这就是热情!

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

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

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

[英文原文:Programmers are born not made ]
分享这篇文章:

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

  1. L says:

    A = A
    A = B ,B = abc -> A=abc
    f(A) = f(a) -> A=a

    A = f(A) -> A=?

  2. W says:

    叫我编程吧,看我有没这天赋,我想有个导师

  3. haitao says:

    搞IT,应该首先是一个效率狂

  4. xiaozhi says:

    没有顿悟,俺就属于一个苦逼程序员

  5. random says:

    A = A
    A = B ,B = abc -> A=abc
    f(A) = f(a) -> A=a

    A = f(A) -> A=?

    弱弱地问一句,结果是 FALSE么?

  6. fatezhou says:

    a = 5
    b = 20
    a = b ===>a=20

  7. 豆子 says:

    我觉得热情很重要。

  8. Lincoln says:

    答案是什么

  9. psyco says:

    好矛盾,标题说是天注定的,结尾说有热情就OK。徒有热情是不够的。。

  10. cmonkey says:

    (define a 5)
    (define b 20)
    (set! a b)
    (display a )
    (display b)

  11. jaja says:

    我想除了熱情,還要有能想用程式解決問題的決心阿!!!

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据