编程不需要天赋和激情

更新日期: 2019-06-25阅读: 1.3k标签: 编程

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

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

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


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)”相当于慢性自杀


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


链接: https://www.fly63.com/article/detial/9357

程序员的笔记,编程写软件学到的 7 件事

如果你真的做出了一些东西,在面对那些令人眼花缭乱的理论知识,或是和你相似甚至比你做的更糟糕的人时大可不必谦虚。在一天结束之时,正是那些在战壕中的开发者——构建、测试和开发了代码的人,真正做了事情。

自学编程的六个技巧总结

这些事情可以帮助新手在他们漫长的旅程中学习编程。我知道我还有更多东西需要学习,并将继续学习如何永远地学习。最重要的事情说三遍,请继续,不要放弃,不要放弃,不要放弃。

谈谈Javascript异步代码优化

Javascript代码异步执行的场景,比如ajax的调用、定时器的使用等,在这样的场景下也经常会出现这样那样匪夷所思的bug或者糟糕的代码片段,那么处理好你的Javascript异步代码成为了异步编程至关重要的前提

编程到底难在哪里?

以买苹果为例说明程序员如何解决问题。程序员需要对问题进行透彻的分析,理清其涉及的所有细节,预测可能发生的所有意外与非意外的情况,列出解决方案的所有步骤,以及对解决方案进行尽量全面的测试。而这些正是我认为编程难的地方。

Blockly - 来自Google的可视化编程工具

Google Blockly 是一款基于Web的、开源的、可视化程序编辑器。你可以通过拖拽块的形式快速构建程序,而这些所拖拽的每个块就是组成程序的基本单元。可视化编程完成

我真是受够编程了

成为伟大的程序员,需要付出许多编程之外的努力。我们的大脑是有限的,每天要应付的问题复杂到足以让人精神崩溃。当工作不顺利时,多少都会有些冒名顶替症候群的感觉。

前端的编程软件哪些比较好用?

推荐8款最好用的前端开发工具供美工或者前端开发人员使用,当然若你是NB的全栈工程师也可以下载使用。Web前端开发最常见的编程软件有以下几种: 在前端开发中,有一个非常好用的工具,Visual Studio Code,简称VS code

如何保持学习编程的动力

学编程现在看起来挺简单,因为网上有丰富的各种资源。然而当你实际去学的时候就发现,还是很难!对我来说也一样。但从某天起,我决定认认真真学编程一年。后来又过了一年,又过了一年又一年……我好像有点感悟。

编程小技巧

命名最好遵循驼峰法和下划线法,并且要清楚的表达变量的意思。相对于驼峰法而言,我更喜欢下划线法。下划线法可以更清楚的看出这个变量表示的意思。比如aBigGreenBanana和一个a_big_green_banana。

CSS并不是真正的编程语言

每隔几个月就会出现一篇文章表明:CSS并不是真正的编程语言。以编程语言的标准来说,CSS过于困难。使用这门语言会很有创造性:事实确实如此,CSS不同于传统的编程,且具有缺陷,同任何标准化编程语言相比

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!