想自學編程,但是從哪下手呢?
有些朋友給我留言說,興緻滿滿的開始自學編程,但是拿到一堆書,卻不知道從哪開始,最後的結果就像下面這個圖:
GIF
那我們今天就來聊聊自學編程,從哪開始?
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.多看大牛的技術博客
平日多關注這個領域頂尖高手的技術博客,選擇你認可的人成為你心目中的榜樣和導師。因為導師可以降低你加入一個新行業的成本,幫助你熟悉環境和行業規則,也會鼓勵你完成心理方面的轉變。
同時你也要 建立新的學習社交網路。如果你周圍沒有和你同樣喜歡學習編程的人,會阻礙你的進步,更糟的是,有的人自己學不會,還會嘲笑你。過去的人脈關係會阻礙你的前進,因為他們是以過去對你的認知來評價你。感謝這個互聯網時代吧,你可以在網上找到志同道合的朋友和你一起前進,新領域的人脈,會給你提供各種各樣新的機會和情感支持,幫助你融入。
最後,人都是都是「快感型」物種。再加上學編程是一個長期的過程。所有需要你自己列個長期計劃,並把長期計劃分成段目標,每個目標完成後給自己進行激勵。
8. 比知識更重要的是什麼?
如果你有機會去互聯網工作,就會發現你不會一直用一種編程語言工作的。很多時候,新項目來了,需要用新的技術,這時候老大會讓你快速學會這個知識,然後在項目中應用。我之前做過的不同項目用到的編程語言來就有5種,而且是邊學邊用的。
回過頭來看,比知識本身更重要的是你的學習能力。那什麼是學習能力呢?
學習能力其實就是你能夠做到「學什麼會什麼」。
有學習能力和沒有學習能力的人差別是很大的。這就好比,你玩《王者榮耀》花錢找人替你通關,和你自己拼個人能力通關,所習得的技能和體驗是完全不一樣的。
提高學習能力的至少關鍵知識是什麼呢?
其實就是兩點:
1)習慣使用搜索引擎的能力
這兩個能力看起來簡單,但是長期養成卻很難。
投機與投資的差別就是投機看重的是短期的股票漲跌,而投資看重的是一家公司長期的發展,希望你在學習編程的路上採用的是「投資」戰略,並且培養了自己的學習能力。加油,你並孤獨。
TAG:猴子聊人物 |