為什么編程那么難?是我腦子不行嗎?
“現在,導航到那個你希望程序在終端中打開的小文件夾。好的,下面需要在PATH文件夾中創建符號鏈接,但是,在我們創建之前,先使用nano ~/.bash_profile來檢查配置文件。”
在我的大腦還在全速運轉消化理解這些意思拼湊出連貫的指令之前,講師已經轉移到下一個主題。
“什么快捷鍵可以再次打開終端?命令和空格鍵——快點在Mac電腦上試試。”
</blockquote>咬緊了牙,盡量不去想已經拉下了多少Treehouse講師的內容,我開始第八百次手忙腳亂地打開谷歌去查找鍵盤命令。
“我只是不擅長而已”,我告訴自己, “一定是我的腦子不善于邏輯思維。”
</blockquote>
![]()
這本來只是一個入門教程——為什么我會覺得這么難?
無論是學習在線課程,參與IRL,還是同事和朋友教我編程概念,這樣的場景對于我而言并不罕見。最后總是以愚蠢,沮喪和惱怒的感覺告終,浪費了他們寶貴的時間來幫助我這根“不可雕的朽木”。
大多數會話都會在我鼓睛暴眼不能自抑地想要脫口而出說“我再也不干了”,卻又被我硬生生地咽回喉嚨中之前,突然結束。可悲的是,大多數時候我離完成模塊,離讓app工作,離突破其實已經只剩幾個階段了——但為時已晚。損害已經造成。
所以,我一直在想,這是為什么呢?為什么學習編程會這么難?
我覺得這不是一個直接性的問題,沒有直截了當的答案,但對于我自己為什么不能將編碼當作一個簡單的技巧來獲取,我有一些自己的見解。我也在推ter社區上征求別人的看法,并得到了熱烈的響應:
寫過一篇文章@raygunio關于為什么“學習代碼”會這么難。為什么有時候你會認為這是一個如此艱巨的挑戰?
</blockquote>
——Hilary Rose(@hilary_cook)2015年7月16日所以,結合這些智慧的精華,我總結出為什么我會覺得編程如此之難的要點:
那種“這么簡單——我無法想象你居然不知道”的態度
你正在思考一些你百思而不得其解的問題——數學公式,編程問題,外語語法,東南亞的政治制度……
然后一些自以為聰明絕頂的家伙出現了,鄙夷地看著你,打斷你的沉思,大呼小叫:
“哦,這太簡單了”
</blockquote>呵呵。這樣一來,心情就完全不同了。你必須努力理解手頭所謂“簡單”的工作——人人都這么認為,除了你。
甚至可能更糟:
“我無法想象你居然不知道HTML中的圖形元素——當然,并不是說HTML就是真正的編程語言”
</blockquote>嚴肅說來,HTML是否被認為是“真正”的編程語言并不重要——它依然是一種需要學習的新技能。嘗試新的東西是非常可怕的。你需要在處于這種未知的弱勢地位時也敢于勇往直前,而且失敗和不確定也沒有關系—— 事實上,它們都是成功的重要組成部分。
那么如何處理高科技產業中的“我無法想象你居然不知道”這種態度?要想確切地掌握編程語言的每一個特質是不可能的——它們是野性難馴的猛獸。所以他們憑什么像這樣貶低人呢?也許他們只是害怕會被我們發現他們也有不知道的東西。
萬事開頭難,這是很正常的。正如《Jake the Dog》說過的這樣一句話,“吸取知識是擅長它的第一步驟”。非常正確。
![]()
“左腦和右腦”的爭執
當遇到解決不了數學和編程問題時,我最喜歡使用的借口是:
“我之所以不明白這一點,是因為我有一個創造性的大腦。而編程是邏輯性的,我的大腦只是不習慣這種思維方式”
</blockquote>我深信,我擅長寫作和繪畫,是因為我是一個創造性的左腦思考者,至于我總是苦苦掙扎于數學和編程類學科,則是因為它們主要是右腦活動——然而現在卻有大量的證據表明,這是一種已經過時的思考方法。
Belle Beth Cooper在《揭穿關于程序員大腦的謬論》一文中,通過調查這些關于程序員的頭腦如何工作的常見謬論,指出:“我們大腦的兩個半球有著千絲萬縷的聯系。雙方是相互依存的,大多數思維過程都需要兩者的參與”。
所以,會不會就是因為我認為自己更善于創造性的事情,才會導致我愿意多多地練習,從而變得擅長的呢?俗話說得好:“無論你認為自己能做到,還是認為自己做不到…..就要看你怎么暗示自己了”。
編程就是難
“不要相信任何人 關于學習代碼很容易的謊話”
</blockquote>最近很多文章都在鼓吹關于“任何人都可以學習代碼”的“奇思妙想”,從而鼓勵更多的人加入這個從前看似遙不可及的行業,但是如果你堅持認為編程是一種易于學習的簡單技能,那可能就會南轅北轍。
正如Kate Ray在她的文章所說的那樣,“作為一個程序員,需要學習的東西是無限的”——并且一種不能滿足的持久遺憾感,即使是該領域的專家也時常會有。
不過,對于那些剛剛起步的新手而言,還是有好消息的,那就是雖然需要學的東西很多,學習中也會遇到各種挑戰,但是,你可以——一步一步來。不要試圖一下子掌握所有內容,設定那種如’我要學習如何編寫代碼’這種不明確的目標——目標應該更具體,并將任務分解成更小的任務。
所以與其難過自己還是無法理解JavaScript——還不如,先將學習的重點放在關于如何讓我的靜態博客變得互動起來的具體內容上。然后再到下一個步驟。雖然一開始會很糟,但我依然相信功夫不負有心人,good luck。
譯文鏈接: http://www.codeceo.com/article/why-coding-is-so-hard.html
英文原文: Programming is hard. Is there a problem with my brain?
翻譯作者: 碼農網 – 小峰本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!