為什麼程式設計那麼難?是我腦子不行嗎?

2015-08-06    分類:程式設計師人生、首頁精華3人評論發表於2015-08-06

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

“現在,導航到那個你希望程式在終端中開啟的小資料夾。好的,下面需要在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。

譯文連結:http://www.codeceo.com/article/why-coding-is-so-hard.html
英文原文:Programming is hard. Is there a problem with my brain?
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章