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

“现在,导航到那个你希望程序在终端中打开的小文件夹。好的,下面需要在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

时间: 2024-10-03 16:19:48

为什么编程那么难?是我脑子不行吗?的相关文章

求助 编程 就业 能力-编程到底难不难?编程这一行业一定要智力很高么?

问题描述 编程到底难不难?编程这一行业一定要智力很高么? 我是一个"貌似"很热爱编程的人,我想把这个编程作为我的职业.我现在学的专业是临床医学,我觉得这个很烂,没兴趣,很抵触.我唯一能走的可能就是软件.但是,我不知道我是不是真正的能在这个领域做出什么成就来,不需要很高的成绩. 或者说,我不知道我到底适不适合干编程这行?这行业,将来会面临什么样的问题? 所以,我问问,这行业最难得是什么,不仅仅是知识方面,还有将来就业方面?或者,怎么才能知道我是不是叶公好龙,是不是真真适合这个行业?有没有

为什么编程这么难?!

对每一个决心学习编程的程序员来说,入坑之前,你也许只是一个"穿着正装在办公室里上班"的人. 你的学习历程可能是这样:如同一片树叶,开始被各种建议拽着走,直到学完了每一个你能想象到的在线课程. 最后,虽然你成功拿下了一份软件开发的工作,但也对程序员有了新的认知:"那些看似正常的程序员们其实都是些"反社会"的怪人,鬼才知道他们经历了什么样的精神创伤." 一份常见的编程学习过程:先从Ruby着手.很快,开始穿梭在Scala, Clojure和Go等其他

函数式编程很难,这正是你要学习它的原因

很奇怪不是,很少有人每天都使用函数式编程语言.如果你用Scala,Haskell,Erlang,F#或某个Lisp方言来编程,很可能没有公司会花钱聘你.这个行业里的绝大部分人都是使用像Python,Ruby,Java或C#等面向对象的编程语言--它们用起来很顺手.不错,你也许会偶然用到一两个"函数式语言特征",例如"block",但人们不会去做函数式编程. 然而,很多年来,我们一直被教导说函数式编程语言很好很棒.我仍然记得当我第一次阅读ESR的著名的关于学习Lisp

编程问题难解决,学会提问是关键!

什么地方 找到正确的地方问编程问题可能和问对问题一样重要.如果你跟错误的人问了正确的问题,也许得到了答案,但你不会得到一个好答案.因为你想要一个好答案,就需要知道在哪里问问题. 1. 打电话给朋友 如果你是因为没人教你.指导你或者引导你而自学编程,那就要改变一下了.事实上,你可以一个人走得很远,但你如果有个朋友可以帮你指点正确方向,你会学得更多更快.有时候,你已经认识一两个程序员,他们可能会很高兴回答你的问题(特别是现在你有了基础,你可以问出好问题).如果你不认识任何程序员,就去认识一个.多亏了

非科班出身的人学习编程不负责任指南

为何要写这样一篇文章 来我们这个实验室里读研的学生可能自从来到这里的第一天就觉得自己的命运很苦逼.他们读本科时主修的是机械设计.制造以及自动化之类的专业,毕业时 的简历上也顶多是写写擅长 MS Word.PowerPoint.UGNX.AutoCAD 之类的应用软件.他们有限的学习生涯里,怎么也不会想到来到这里竟然要首先重新学习 C 语言,然后还要学 C++,接下来还要学习 Python 或 Lua 什么的,而且竟然还不让用 Windows,只能用连个 QQ 都没有并且经常出故障的 Linux-

ASP资源:ASP编程网上游

编程 经常在网上冲浪的读者们一定看见过扩展名为"ASP"的网页吧.这就是用ASP技术制作的网页.ASP(Active Server Pages,动态服务器端网页)是Microsoft公司推出的一种服务器端执行的动态网页技术,它能让网页开发爱好者轻松地利用ActiveX组件,在HTML语言中加入Script脚本,开发出交互性强的动态Web服务器应用程序. 如果要开发动态网页,ASP简单易用.易于上手,是初学动态网页开发者很理想的选择.难怪微软一推出ASP动态网页技术以后,就以极其迅猛的速

用Codecademy学习编程 简单又有趣

为了学习编制程序,很多人买了一堆相关书籍,并参加了很多网络课程,甚至花了几百块钱买了一套教学光碟,到头来还是不会编程,非常不值. Codecademy是一个刚推出的网站,它为用户提供了一种学习编程的新方式.它是一种基于网络的互动编程教程,手把手帮助用户了解JavaScript的一些基本原理,更重要的是,使用Codecademy学习编程充满了趣味性. Codecademy的注册过程非常特别:无需注册就可以直接使用,最起码一开始时这样.用户一旦进入Codecademy.com页面就能轻松完成编程的第

用函数式编程技术编写优美的 JavaScript_ibm_javascript技巧

因为函数式编程采用了完全不同的组织程序的方式,所以那些习惯于采用命令式范例的程序员可能会发现函数式编程有点难学.在这篇文章中,您将了解一些关于如何采用函数式风格,用 JavaScript 编写良好的.优美的代码的示例.我将讨论:  函数式编程概念,包括匿名函数.调用函数的不同方法,以及将函数作为参数传递给其他函数的方式. 函数式概念的运用,采用的示例包括:扩展数组排序:动态 HTML 生成的优美代码:系列函数的应用. 函数式编程概念  请告诉每个人.请把这个提交给:      Digg     

写代码容易,编程并不容易

当我的编程生涯开始的时候,我认为"编程很简单--怎么会需要去学校学习呢?"但经过学习和实践,我了解到编程很难. 不知道是编程不难还是我什么都不懂. ~MemeGenerator.net 自我评价对我自己来说一直都很重要,因为在一天结束的时候,不管别人怎么想,自己的想法都很重要.我会在评价中思考强项.弱项.学习.训练和个人成长.这个过程让我反思.理解并思考成为一个程序员究竟意味着什么. 教育:编码?编程?关键性的抨击? 我在技术领域的第一份工作主要是通过 HTML.CSS 和 JavaS