天天看點

程式設計新手如何提高程式設計能力?

有些朋友給我留言說,興緻滿滿的開始自學程式設計,但是拿到一堆書,卻不知道從哪開始,最後的結果就像下面這個圖:

下面結合我之前的學習經曆,如何從零基礎慢慢提高。

1.首先,給你的學習程式設計一個重要的意義

做任何事情前,你都要首先明白為什麼要做?這個理由不是學校開了某個程式設計課,你為了應付考試。或者看到其他人都在學,你沒事幹,也學下吧。這都是盲目的表現,就好比你追一個女孩,不是因為她家有錢,最重要你追她的原因是:你真的喜歡上了她。

是以從一開始,就給自己的學習定一個大的意義,這會讓你不會中途放棄。而且能帶給你前行的動力。

我當年學習程式設計,是因為覺得未來很多網際網路的行業都于程式設計有關,意識到這是個基本技能,而且技能在手,不會哪天餓死街頭。同時,程式設計的世界很純粹,不像其他行業需要很多關系去維護,要想往上爬,的整日琢磨如何混好。但是,在程式設計的世界裡,全靠技術說話:你行就行,不行就不行。

而且現在是人工智能時代,程式設計已經變成了像excel那樣每個人都需要掌握的技能,你覺得學校程式設計意義大不大?更重要的是,學會程式設計你的收入機率會比其他人高。

2.如何選擇你人生的第一個程式設計語言

很多人一開始是對程式設計有興趣的,但是之前很多大學一上來就教C,C++。裡面複雜的内容,也讓很多人從入門到放棄。到最後連興趣都沒有了。沒有興趣是最可怕的敵人。

如果你是剛開始學程式設計,選一個比較人性化的程式設計語言,我建議從python開始。它足夠簡單,而且容易上手。而且現在連國小生都開始學python了。

我們再看看各大兵器排行榜上的python排名,它已經是人工智能的第一程式設計語言。相信它的火熱程度還會持續升溫。

3.選擇一本經典的書進行系統學習

很多人一開始為了追求快速,會選擇一些比如xx天學會Python,xx天學會機器學習的書。這些書看上去高大上,其實是在誤導你。世界上哪有xx天就能學會的,記住一條原則:越是有價值的知識,越難學,不然很多人都能學會了。

一般來說,一本書要比公衆号的文章系統性強,一本某個領域的經典教材要比很多快銷書系統性強。一個系列課程要比一次1小時的分享系統性強。是以從一開始就擺正心态,不要急于速成,有時候慢就是快。有了這個心态,就老老實實選一本這個行業經典的書,最好是國外的書。

既然在這個領域你是新手,就不要指望自己能把散落的資訊整合成系統了,那是高手要做的事情。要想系統地學習,那就踏踏實實地拿出幾個月的時間來,看幾本這個領域的經典書,選一門系統課,或者跟着一個系統學習過的老師把這個領域的骨架摸清楚。

你又不比别人聰明幾倍,卻想用幾分之一的時間,就掌握人家花了好長時間下了硬功夫,系統掌握的知識,怎麼可能呢?

先接受一個已經存在的系統,再在上面修修改改,對于新手是最适合的方案。

3.選擇一個有界面的程式設計環境

很多程式設計的書,一開始安裝後,都是教你在指令台下寫代碼。面對這麼一個黑洞洞的東西,你的興趣又降下來了。

一開始程式設計不要在這個不友好的指令行下做。而是找一個內建開發環境(IDE),在裡面敲代碼。人對有界面的東東天然有好感和興趣。比如學習Python,一開始用notebook就很容易敲出代碼,而且運作結果也能實時的回報給你。

當然最開始要做的事情就是先把環境搭起來,開始輸出你人生的第一行代碼:“Hello World”。這是簡單的第一步,但是對于很多完全自學的同學都非常難了。好事情是,現在網上很多教程可以幫助到你。

4.重要的事情說三遍:多敲代碼

程式設計是門手藝活,什麼意思?就是你的多練習。這就好比,一個懂得再多泡妞理論的單身狗,都沒有一個談過戀愛的人,更懂得如何追女孩。

不要光看書,或者光聽課。要多撸代碼,在實踐中成長。遇到不明白的地方,就多聯系生活中的事情就類比想明白了。比如我在學習資料結構:隊列,不明白的時候,就聯想到了餐廳外婆家的排隊叫号系統,就立馬明白了。

其實程式設計中很多東東,都是為了解決現實生活中的問題,是以很多知識都能與現實生活中的實際事情對應起來。

5.學會記筆記

很多人剛開始學程式設計以往裡面的很多東西都要記住,其實這是錯誤的做法。

不用去記住這些代碼,了解代碼比記住代碼更重要。這裡我們能了解代碼是幹什麼用的就可以了。如果後面用的時候忘記了,反過頭來知道在哪查找答案就可以了。這是學習的重要思想之一:知道在哪查找答案比記住更重要。

很多時候你感覺自己學會了,但是其實并沒有掌握。我個人解決這個問題的辦法就是記筆記。記筆記不是簡單的羅列知識,而是将學到的知識,用自己的語言整理出來。同時,記筆記還能通過輸出倒逼你的輸入。下面是幾個寫實踐筆記的讨論,對你應該會有幫助:

6.學會使用搜尋引擎

剛開始學習程式設計,看到代碼報錯,就會茫然失措,腦子中立馬閃出一個'funck'。

其實解決程式設計代碼問題也是有套路的,這個套路就是:

能不用百度就别用百度,你要學會在宇宙第一大搜尋引擎,和全球最大的技術問答平方:stackoverflow上搜尋問題的答案。

一切的學習都是學習能力的提高。對于程式設計,真正的高手,就是遇到問題能從搜尋引擎中找到答案。

7.多看大牛的技術專欄

平日多關注這個領域頂尖高手的技術專欄(部落格),選擇你認可的人成為你心目中的榜樣和導師。因為導師可以降低你加入一個新行業的成本,幫助你熟悉環境和行業規則,也會鼓勵你完成心理方面的轉變。

同時你也要 建立新的學習社交網絡。如果你周圍沒有和你同樣喜歡學習程式設計的人,會阻礙你的進步,更糟的是,有的人自己學不會,還會嘲笑你。過去的人脈關系會阻礙你的前進,因為他們是以過去對你的認知來評價你。感謝這個網際網路時代吧,你可以在網上找到志同道合的朋友和你一起前進,新領域的人脈,會給你提供各種各樣新的機會和情感支援,幫助你融入。

人都是都是“快感型”物種。再加上學程式設計是一個長期的過程。所有需要你自己列個長期計劃,并把長期計劃分成段目标,每個目标完成後給自己進行激勵。

  1. 比知識更重要的是什麼?

    如果你有機會去網際網路工作,就會發現你不會一直用一種程式設計語言工作的。很多時候,新項目來了,需要用新的技術,這時候老大會讓你快速學會這個知識,然後在項目中應用。我之前做過的不同項目用到的程式設計語言來就有5種,而且是邊學邊用的。

回過頭來看,比知識本身更重要的是你的學習能力。那什麼是學習能力呢?

學習能力其實就是你能夠做到“學什麼會什麼”。

有學習能力和沒有學習能力的人差别是很大的。這就好比,你玩《王者榮耀》花錢找人替你通關,和你自己拼個人能力通關,所習得的技能和體驗是完全不一樣的。

提高學習能力的至少關鍵知識是什麼呢?

其實就是兩點:

1)習慣使用搜尋引擎的能力

2)不做伸手黨的能力

這兩個能力看起來簡單,但是長期養成卻很難。

投機與投資的差别就是投機看重的是短期的股票漲跌,而投資看重的是一家公司長期的發展,希望你在學習程式設計的路上采用的是“投資”戰略,并且培養了自己的學習能力。加油,你并孤獨。

零基礎掌握人工智能(AI)核心語言:Python

www.zhihu.com

圖示