为什么编程那么难?是我脑子不行吗?

简介:

“现在,导航到那个你希望程序在终端中打开的小文件夹。好的,下面需要在PATH文件夹中创建符号链接,但是,在我们创建之前,先使用nano ~/.bash_profile来检查配置文件。”

在我的大脑还在全速运转消化理解这些意思拼凑出连贯的指令之前,讲师已经转移到下一个主题。

“什么快捷键可以再次打开终端?命令和空格键——快点在Mac电脑上试试。”

咬紧了牙,尽量不去想已经拉下了多少Treehouse讲师的内容,我开始第八百次手忙脚乱地打开谷歌去查找键盘命令。

“我只是不擅长而已”,我告诉自己, “一定是我的脑子不善于逻辑思维。”

这本来只是一个入门教程——为什么我会觉得这么难?

无论是学习在线课程,参与IRL,还是同事和朋友教我编程概念,这样的场景对于我而言并不罕见。最后总是以愚蠢,沮丧和恼怒的感觉告终,浪费了他们宝贵的时间来帮助我这根“不可雕的朽木”。

大多数会话都会在我鼓睛暴眼不能自抑地想要脱口而出说“我再也不干了”,却又被我硬生生地咽回喉咙中之前,突然结束。可悲的是,大多数时候我离完成模块,离让app工作,离突破其实已经只剩几个阶段了——但为时已晚。损害已经造成。

所以,我一直在想,这是为什么呢?为什么学习编程会这么难?

我觉得这不是一个直接性的问题,没有直截了当的答案,但对于我自己为什么不能将编码当作一个简单的技巧来获取,我有一些自己的见解。我也在Twitter社区上征求别人的看法,并得到了热烈的响应:

写过一篇文章@raygunio关于为什么“学习代码”会这么难。为什么有时候你会认为这是一个如此艰巨的挑战?
——Hilary Rose(@hilary_cook)2015年7月16日

所以,结合这些智慧的精华,我总结出为什么我会觉得编程如此之难的要点:

那种“这么简单——我无法想象你居然不知道”的态度

你正在思考一些你百思而不得其解的问题——数学公式,编程问题,外语语法,东南亚的政治制度……

然后一些自以为聪明绝顶的家伙出现了,鄙夷地看着你,打断你的沉思,大呼小叫:

“哦,这太简单了”

呵呵。这样一来,心情就完全不同了。你必须努力理解手头所谓“简单”的工作——人人都这么认为,除了你。

甚至可能更糟:

“我无法想象你居然不知道HTML中的图形元素——当然,并不是说HTML就是真正的编程语言”

严肃说来,HTML是否被认为是“真正”的编程语言并不重要——它依然是一种需要学习的新技能。尝试新的东西是非常可怕的。你需要在处于这种未知的弱势地位时也敢于勇往直前,而且失败和不确定也没有关系—— 事实上,它们都是成功的重要组成部分。

那么如何处理高科技产业中的“我无法想象你居然不知道”这种态度?要想确切地掌握编程语言的每一个特质是不可能的——它们是野性难驯的猛兽。所以他们凭什么像这样贬低人呢?也许他们只是害怕会被我们发现他们也有不知道的东西。

万事开头难,这是很正常的。正如《Jake the Dog》说过的这样一句话,“吸取知识是擅长它的第一步骤”。非常正确。

“左脑和右脑”的争执

当遇到解决不了数学和编程问题时,我最喜欢使用的借口是:

“我之所以不明白这一点,是因为我有一个创造性的大脑。而编程是逻辑性的,我的大脑只是不习惯这种思维方式”

我深信,我擅长写作和绘画,是因为我是一个创造性的左脑思考者,至于我总是苦苦挣扎于数学和编程类学科,则是因为它们主要是右脑活动——然而现在却有大量的证据表明,这是一种已经过时的思考方法。

Belle Beth Cooper在《揭穿关于程序员大脑的谬论》一文中,通过调查这些关于程序员的头脑如何工作的常见谬论,指出:“我们大脑的两个半球有着千丝万缕的联系。双方是相互依存的,大多数思维过程都需要两者的参与”。

所以,会不会就是因为我认为自己更善于创造性的事情,才会导致我愿意多多地练习,从而变得擅长的呢?俗话说得好:“无论你认为自己能做到,还是认为自己做不到…..就要看你怎么暗示自己了”。

编程就是难

“不要相信任何人 关于学习代码很容易的谎话”

最近很多文章都在鼓吹关于“任何人都可以学习代码”的“奇思妙想”,从而鼓励更多的人加入这个从前看似遥不可及的行业,但是如果你坚持认为编程是一种易于学习的简单技能,那可能就会南辕北辙。

正如Kate Ray在她的文章所说的那样,“作为一个程序员,需要学习的东西是无限的”——并且一种不能满足的持久遗憾感,即使是该领域的专家也时常会有。

不过,对于那些刚刚起步的新手而言,还是有好消息的,那就是虽然需要学的东西很多,学习中也会遇到各种挑战,但是,你可以——一步一步来。不要试图一下子掌握所有内容,设定那种如’我要学习如何编写代码’这种不明确的目标——目标应该更具体,并将任务分解成更小的任务。

所以与其难过自己还是无法理解JavaScript——还不如,先将学习的重点放在关于如何让我的静态博客变得互动起来的具体内容上。然后再到下一个步骤。虽然一开始会很糟,但我依然相信功夫不负有心人,good luck。


作者:小峰

来源:51CTO

相关文章
|
9月前
编程要搞明白的东西(一)
编程要搞明白的东西(一)
51 0
|
9月前
|
Java
编程要搞明白的东西(二)
编程要搞明白的东西(二)
62 0
|
编解码 前端开发 程序员
为啥只跟着视频敲代码学不好编程?
为啥只跟着视频敲代码学不好编程?
300 1
|
安全 编译器 程序员
学过 C++ 的你,不得不知的这 10 条细节!
我在阅读 《Effective C++ (第三版本)》 书时做了不少笔记,从中收获了非常多,也明白为什么会书中前言的第一句话会说: 对于书中的「条款」这一词,我更喜欢以「细节」替换,毕竟年轻的我们在打 LOL 或 王者的时,总会说注意细节!细节!细节~ —— 细节也算伴随我们的青春的字眼 针对书中的前两个章节,我筛选了 10 个 细节(条款)作为了本文的内容,这些细节也相对基础且重要。 针对这 10 细节我都用较简洁的例子来加以阐述.
学过 C++ 的你,不得不知的这 10 条细节!
|
存储 人工智能 算法
练了那么多,为啥还不会编程
Python 技术已经一岁多了,持续不断地推出新知识、新技术、新技巧,不过很多童鞋存在一个疑问:学这么多编程知识、技术、技巧到底有什么用?对呀,技术日新月异,层出不穷,解决方案如雨后春笋,对于我们普通人来说,编程到底有什么用,今天我来谈谈这个问题,期望对你有所启发。
137 0
练了那么多,为啥还不会编程
|
程序员
我想到的几句话。
1、OO是好用的,问题是好多人用不好OO。(包括我在内) 2、三层是需要设计的,不是说把原来写在一处的代码,分开写在三处,就是三层了。 3、设计模式是需要灵活掌握的,外加丰富的项目经验和对业务逻辑的深刻理解。
577 0
|
程序员
程序员好心帮应届生改代码后,结果扎心了!
近日,一名程序员在互联网社区的吐槽:公司一个应届毕业生,领导安排和我一起做项目,提交的代码有许多不合适的地方,我在没有和他提前沟通的情况下做了部分重构,结果直接喷我,让我不要改他的代码,老哥们,遇到过这种情况吗?对此,网友是如此评论的: 直接说让他自己改,改之前你应该先说,不过应届生也敢喷你,不是后台强,就是情商低;千万别自己改,你应该给他说怎么改,然他自己改,我就是应届生,我领导就这样做的。
1006 0

相关实验场景

更多