编程可以不需要天赋和激情吗

时间:2016-06-24 10:36    点击:

以往从来没有一种技能被神化到这样的高度:

你不仅得有天赋,还得具备激情,才能成为一名优秀的程序员

好像那些写代码的人是早就决定干这一行似的,“当他们还是孩子的时候,他们就打算将来去写代码”。如果你缺少这两个因素之一,那么你要么是一个骗子,要么不会走得太远,不论是哪种,其实都是因为你不适合编程的缘故。这种根深蒂固的成见不仅是完全错误的,而且还是有害的——但是许多成功的程序员都赞同这个观点。

Jacob Kaplan-Moss (Django的创建者)

在这篇描述中,Jacob Kaplan-Moss指出:

神化“天才程序员”是极其危险的。一方面,它设置了极高的准入门槛,吓跑了许多想成为程序员的人。另一方面,它也困扰着那些已经成为程序员的人,因为这意味着,如果你没有编程“天分”,那么基本上,你将一事无成。导致的结果是,作为一个程序员,你所有的时间都用在了学习编程和工作上,从而对生活质量产生极大的影响……(略)…….我们需要摆脱这种态度。编程只是一堆可以学到的技能,它不需要太多的天分,而且成为一个平庸的程序并不可耻。

在他的Twitter个人资料中,他形容自己为“不是一个真正的程序员”,以表明他对这种误解的深恶痛绝。

Jacob Thornton(Bootstrap的创建者)

Jacob Thornton之前是Twitter的一名程序员,现在就职于Medium,并且是Bootstrap的创建者——Bootstrap在Github上收获了超过8万个星。他在以下对“编程神话”的采访回应中给出了另一个反例:

Jacob Thornton讨厌计算机

他说,“我讨厌计算机,”面容一本正经,完全没有开玩笑。 “我本来打算在New School中学习社会学。”

接着他描述了他的第一份工作:

“我被雇用去做一份我甚至有点不合格的工作。每天,我都可能会被炒鱿鱼。我辛辛苦苦地工作,努力学习更高级的Javascript语言,因为我不知道代码中发生了什么事情。”
“我坐在那里,思维放空,就是这样,我居然搞定了。我不会被解雇了,哦也。”
“我生命中最真实的时刻是当这家初创企业的整个团队聚集在我身边,要求一个XHR请求的时候。我从来没有做过,我只知道那是什么。因此我开始敲键盘和刷新浏览器,但什么都没有发生。我试了几次。我开始慌了,我担心他们会知道我是个骗子,我是滥竽充数的。突然我意识到,我已经忘了添加‘.send()’了——我添加并刷新之后,页面出现了,然后团队成员纷纷赞扬说‘哦,真酷!’。然后他们回到了各自的办公桌。

这个故事听上去感觉和“天才程序员”如何执行工作的描述无关。那么,坚持走编程这条道路的动机来自于哪里呢?Jacob说:

“我的动机很现实,并且当我搞不明白或某些东西在特定浏览器中看上去很糟糕的时候,我的那些搞前端开发的朋友会十分明确地告诉我。这真的很好。于是我开始想要编码,以及和我的朋友一起工作。”

在他的Twitter个人资料中,他形容自己是一个“计算机loser”。他最火的Twitter帖子中他把自己描述为“公司中最糟糕的工程师,但却是第三酷的”。这种态度和我们对刻板的程序员的看法完全相反。

Rasmus Lerdorf(PHP的创建者)

Rasmus Lerdorf的言论经常引发争议:

*其实我真心讨厌编程,但我热爱解决问题。

*有些人的确是真的喜欢编程。但我不理解为什么他们会喜欢编程。

*我不是一个真正的程序员。我会把东西扔到一块儿,直到它能工作,然后就继续前进。真正的程序员会说“是的,虽然它可以工作,但你泄漏了内存。我们应该解决这个内存泄漏的问题”。而我会每隔10个请求就重新启动Apache。

从他的话中,我们很难看出他对计算机的激情。像Jacob Kaplan-Moss和Jacob Thornton,他们对神化编程嗤之以鼻,所以,Rasmus Lerdorf或许也会称呼自己为伪程序员。

David Heinemeier Hansson(Rails的创建者)

当被Big Think采访时,DHH提到:

这其实挺有意思的;当我习惯于使用PHP或Java开发的时候,我总是在找别的可替代的东西。我一直在寻找另一种编程语言,另一种……不一样的东西,在某种程度上能够让我觉得正在使用的语言不那么无聊的东西。
我是绝对不相信我会成为一个程序员的,当我用PHP和Java工作的时候。

他的自我介绍,看起来和“计算机天才”毫不相干。而且最后,他爱上的并非计算机本身,而是Ruby——这种语言的优雅。如果Ruby没有被发明,那么DHH可能现在正在做完全不同的事情。

从上面这些事例中,我们证明了有无数文章都对老一套的程序员神话持反对意见。下面是几个程序员最喜欢的笑话:摘自《关于软件开发者的59条令人捧腹但真实的编程语录》

*One man’s crappy software is another man’s full time job.(Jessica Gaston)
一个人写的烂软件将会给另一个人带来一份全职工作。

*Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
傻瓜写计算机能理解的代码。优秀的程序员写人类能读懂的代码。

*Software and cathedrals are much the same — first we build them, then we pray.(Sam Redwine)
软件和教堂非常相似——首先,我们建造它们,然后我们祈祷。(Sam Redwine)

如果程序员的确都有这样多的天赋和激情,那么为什么这些笑话在程序员之中会如此受欢迎?

我在一篇Medium文章中发现了一些很有趣的语录,让我产生了共鸣:

*总有人告诉你,你这样做是错的

*总有人告诉你,你不是一个真正的程序员

*担心“极客声誉(geek cred)”相当于慢性自杀

这篇文章无疑挑战了我们对编程的传统看法——成为程序员需要天分和激情。但是我只希望对那些开始编程之路的初学者,正在怀疑他们是否适合是否合格的程序员说:多尝试一些不同的学习方式,不要担心什么资格,不要轻信那些毫无根据的故事,也不要改变你学习编程的心态。不要放弃,除非你在尝试多种不同方法之后真的依旧一头雾水。编程不需要天赋,也不需要激情!

来源:未知//所属分类:编程杂谈/更新时间:2016-06-24 10:36
顶一下
(2)
66.7%
踩一下
(1)
33.3%
上一篇:入门软件工程师所面临的5个挑战
下一篇:不要升级到 Windows 10的10大理由
相关内容