你是什麼時候”突然”學會程式設計的

Python之禪發表於2018-10-29

640?wx_fmt=jpeg
題圖:Photo by Silvana Amicone on Unsplash

你是什麼時候開始覺得自己突然就學會程式設計了?“學會”程式設計是指具備用程式碼來解決實際問題的能力。這個問題是今年中國 Python 開發者大會(PyCon)深圳場大媽做分享時提的一個問題。“突然”兩字我覺得非常有意思,我也問自己是什麼時候突然就學會了程式設計的。我發現很多事情從不會到會確實不是循序漸進的,而是一個漫長到突然的過程,我舉兩個例子。

我家小孩學會站立大概是在他八九個月大的時候,有天我觀察到他在床上沒有藉助任何東西的條件下緩慢地站立起來時,我能感受他內心那種突然成功帶來的喜悅,不亞於你登上珠穆朗瑪峰。這種感覺既不是自然而然也不是循序漸進的。其實在他能站起來之前,已經有過無數次摔倒爬起來繼續摔倒的過程。小孩的每個新技能無不都是通過這樣的方式做到的,學走路如此,學說話亦如此。

第二個故事是我以前同事,做測試的,他不會寫程式碼,從我剛認識他的時候他就說要學 Python,我給他推薦了一本入門書,一個多月過去,他跟我說書看完了,但就是不會寫。既然能把書看完,我認為書中大部分內容他是能看懂的。於是我跟他說,你要動手操作啊,把書上的程式碼全部照著敲一遍,然後他又開始看第二篇,照著書上的程式碼敲。第二遍看完了依然不會寫程式碼,最後基本上放棄了。

後來啊,大概又過了幾個月,發現他還沒死心,在看視訊教程,照著視訊有模有樣的寫了個 Web 網站,就是幾個簡單的頁面,雖然視訊教程可以手把手教你,但還是會遇到各種問題,有系統環境問題,也有 IDE 問題,還有版本問題,哪怕錯誤堆疊資訊寫得非常明顯,一般都是選擇性忽略的,你不能怪他,因為對於還入門的人來說是不具備這些排錯能力的,有時他就過來找到我幫他看下錯誤是什麼原因。

但從這時候開始發現他貌似找到了程式設計一些感覺,畢竟跟著視訊把東西做出來了。這時候還是不能說學會程式設計,因為他說,自己寫程式碼依然沒有頭緒,拿到需求不知道從哪裡下手,他學程式設計是有目的的,就是想做自動化測試,後來他又去網上找了些相關視訊教程看,這次估計是突然從視訊找到了某種靈感還是悟出了什麼道理,果不其然,經過兩週的時間,他把所學應用到了自己的工作中,他真的把那套簡單的自動化測試搭建起來了,你要說有多複雜呢?不見得,大概有四五個頁面,然後從登入頁面模擬人輸入使用者名稱密碼開始,進入不同的頁面判斷指定的頁面有沒有指定的元素存在。就這樣一個程式,期間也是遇到很多的磕磕碰碰,有些地方不明就裡,遇到錯誤沒法解決的時候拉我過去幫他分析問題,最後硬是被他弄出來了,還給我們做一次分享。這時他對自己說他突然會程式設計了,前前後後大約經歷了一年多,這算是我近距離看到的從小白到入門學會的程式設計的一個例子。

從這兩個例子總結起來,學會任何一個技能都不是一蹴而就的,你需要經歷過無數次試錯,重試,期間你會經歷挫折、各種打擊,甚至到懷疑智商。如果只看一本書就能教你學會程式設計,其它出版社都倒閉了。如果一個專欄能幫你學會程式設計,幹嘛還要線上教育呢?如果一個視訊就能教你學會程式設計,培訓機構也倒閉了。如果報個班學會了程式設計,那為什麼還是有人找不到工作呢?如果你指望有什麼祕籍可以讓你短時間學會程式設計,根本不可能,所以,我經常給大家推薦的一些資料、課程並不是靈丹妙藥,只是一個參考,可能對你有幫助而已,畢竟每個人都是獨一無二的個體,每個人對知識的理解都不一樣。

回到程式設計,有程式設計經驗的看一本書就能學會一門程式語言,因為他有了前期大量的知錯經驗,不需要重頭再來一遍。但是對於小白,我發現,給你推薦再多的書籍、再多的視訊課程、寫再多的文章都沒用。試錯,用你感覺最舒適的方法去學習,如果你覺得某種學習方法持續地痛苦,我不認為你能把它學好。

究竟什麼才是最好的程式設計方法,我也不知道,看書不是最好的程式設計方法,看視訊也不是最好的程式設計方法,報培訓班也不是,用遊戲的方式來程式設計是不是呢?也不見得。

所以,天下沒有一種藥是能包治百病的,需要根據你自己的情況來,不斷試錯,多折騰,得到即時反饋,遇到問題能得到及時解答,學的東西能及時派上用場。為什麼遊戲吸引人,打一盤吃雞,二十分鐘,就能讓你全身每個神經都繃緊,刷抖音手指輕輕一劃不是漂亮小姐姐就是讓你捧腹大笑的畫面,因為你的大腦接收到了即時反饋,如果要你等半小時才能看一個視訊,早就解除安裝了。

你是什麼時候突然覺得自己會程式設計的?留言分享你的故事。

推薦閱讀


640?
關注這個公眾號的
最後都學會了程式設計

相關文章