為什麼程式設計那麼難?是我腦子不行嗎?
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
“現在,導航到那個你希望程式在終端中開啟的小資料夾。好的,下面需要在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?
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- 程式設計為什麼那麼難:從儲值卡扣款說起程式設計
- NER為什麼那麼難
- 電腦程式設計是什麼?程式設計
- 程式設計師也難逃的二八定律,成為頂級程式設計師真的有那麼難嗎?程式設計師
- 遊戲的留存為什麼那麼難調?遊戲
- 不容錯過!什麼是領域驅動設計?為什麼落地這麼難?
- 為什麼很多大學生認為程式設計很難?入門程式設計怎麼學?程式設計
- 程式設計師壓力那麼大,為什麼還要選擇做程式設計師程式設計師
- 什麼是程式設計?大道之行也,“程式設計”為公程式設計
- 1024為什麼是程式設計師日程式設計師
- 程式設計師為什麼熱衷於造輪子,升職加薪嗎?程式設計師
- 自動化測試落地為什麼那麼難
- 在遊戲裡“翻盤”為什麼那麼難?遊戲
- web前端入門很容易,全棧卻很難,為什麼每個程式設計師都那麼說?Web前端全棧程式設計師
- 什麼是AOP程式設計?程式設計
- 作為一個程式設計師程式設計中經常碰到且覺得難的事是什麼?程式設計師
- 什麼是設計模式?為什麼要使用設計模式?有什麼好處?設計模式
- 根據Git推算程式設計師大佬作息:同樣是熬夜,為什麼他髮量那麼多?Git程式設計師
- 程式設計真的有那麼難學嗎?其實不然,無非是沒找對方法罷了(以c/c++為例)程式設計C++
- 根據設計稿,計算出網頁REM的大小,有那麼難嗎?網頁REM
- 為什麼你還是學不會程式設計程式設計
- 我為什麼不要30歲以上的程式設計師?程式設計師
- 為什麼有那麼多人選擇“人工智慧”,真的有那麼好嗎?人工智慧
- 100年後的程式設計是什麼樣子的?(上)程式設計
- 程式設計我們學到了什麼?程式設計
- 大齡程式設計師經驗那麼豐富,為什麼很多公司都不招?程式設計師
- 程式設計師收入那麼高,為什麼卻從不見他們炫富?程式設計師
- 伺服器為什麼要託管,放在自己公司不行嗎?伺服器
- 每天那麼多工作,我為什麼能做到 "不忘事" ?
- 作為程式設計師,你的夢想是什麼?程式設計師
- 好程式設計師web前端培訓分享為什麼那麼多人使用vue.js程式設計師Web前端Vue.js
- Redis為什麼那麼快?Redis
- 哪有那麼多為什麼?
- 程式設計師你為什麼這麼累?程式設計師
- 程式設計沒點為什麼,生活就是十萬個為什麼程式設計
- Java程式設計師須知:分散式微服務為什麼很難?Java程式設計師分散式微服務
- 為什麼很多大學生都會覺得程式設計很難?程式設計
- 為什麼大神的UI設計那麼高階?答案盡在此文…UI
- 什麼是反應式程式設計?程式設計