學編程,多少人一上來就拿著譚浩強C語言這本書開始啃,然而啃著啃著發現不僅難學,而且學了還不知道能干嘛?
于是很多人就在這本書上重復:學習-放棄-重新撿起-放棄-重新撿起-放棄,最終得出結論:編程太難學了,開始懷疑自己的天賦和智商;
每次別人給我說這句話的時候,我都是一臉問號臉???
學編程真的難嗎?
那為什么有的人一個月就能上手做項目呢?是天賦的差距嗎?是智商的差距嗎?
不,都不是!學不會那是因為你根本就是在瞎學。
你知道編程是分語言的嗎?你知道C語言是最難學也是最難有成就感的語言嗎?你知道每門語言都有自己獨特擅長的領域嗎?你知道做一個網頁需要具備哪些知識嗎?知道該按怎么樣的路線去學習,上手更快嗎?
自學編程,最忌諱的就是盲目,靠著自己外行的那點見識,一上來就學C語言;小編就吃過這個虧,自學了一年C語言,最后啥都不能干。后來有人帶我學習C#,很快,一個月我就能上手開發桌面程序了(當然這里有C語言給我打下的一些基礎的功勞,但是譚老師那本書學起來真的看不到頭,沒有成就感,很容易受挫而放棄);

從自學轉行到現在已經過去幾年了,這期間,一個人摸索,小編走過很多彎路,吃過很多虧,白學了很多知識,浪費了很多時間;
小編將自己自學編程的一些經驗和這些年對編程的理解都寫在自己的專欄里,在這里你能知道自己該按怎么樣一個路線去學習,該學哪些不該學哪些,了解編程語法的原理,掌握語法的核心。
本文后半段,就給大家介紹一下,作為一個小白應該按照什么步驟學習才能快速入門?
為什么說譚浩強的C語言那本書真的害了不少自學編程的同學?
說這句話的時候我沒有任何對譚老師的不敬,書是十分經典的好書,即使碼代碼這么多年,每次翻看仍然會有不一樣的收獲;
但是,它真的不適合作為一個新手編程入門的書籍(需從事C/C++工作的例外),作為編程知識體系的書籍倒是極好的;
有的朋友可能就是單純對做網頁頁面感興趣,他拿個C語言死啃,指針繞的頭都大了,你說他這是干啥?學的是很辛苦,可到頭來離自己目標依舊遙遠,倍感受挫。方向不對,一切都是徒勞;
很多初學編程的同學就是倒在這本書上的,經歷學習->放棄->重新撿起->放棄->重新撿起->放棄這樣痛苦的過程;
依據鄙人自學入門以及這么些年編程的經驗,總結自學快速入門5步曲:
1、首先,學習編程前,你得去了解當前IT界都有哪些應用領域,以及各領域的流行程度。說白了,也就是搞明白學了編程你想干嘛?是開發一個網站?還是做一個爬蟲爬一些福利妹子圖片?亦或是做一個小程序?讓學習變得有目的;
如果說,你是想做一個網頁,你一上來就就拿著C語言啃,啃完你會發現頁面仍然寫不出來,而人家卻只學習一周就能寫出漂亮的頁面;
每個細分的領域都有最適合最受歡迎的編程語言:

2、有了目標后,你需要去了解要進入該領域,需要具備哪些知識(也叫技術棧),規劃好一條清晰的學習路線;
在我的專欄里,我以流程圖的方式,按四個階段為大家指定了清晰詳細的學習計劃,見下圖:

3、在對自己感興趣的領域有了整體的認識后,就是開始進入學習階段;首先選擇一門技術棧中最合適的語言,學會其基礎語法;如Python你就學Python的書籍,JAVA就學Java的書籍,不要直接去啃C語言這個硬骨頭;
編程語言對于初接觸者是一個全新的東西,前期肯定會不適應,學的比較吃力,可能會有些語法點學的模棱兩可。那是因為,很多的書籍都是強行灌輸語法,很少講原理,此時你需要的是一個人能給你把陌生的、復雜的語法用最簡單易懂的語言從原理上分析給你聽(市面上很少有這類書籍),這樣你就能很快的掌握;

4、學習基礎語法需要多練習,特別是程序結構設計(選擇、分支、循環、迭代)需要熟練掌握。然后就是開始學習項目框架,比如Java做網站的spring框架、Python爬蟲的Scrapy、PySpider等;框架都是支持自己的編程語言,通過框架我們可以很輕松的構建自己的項目;
以Java的spring框架為例:

5、基于框架,通過實戰項目來練手,這樣在項目過程中持續學習,技能提升和知識擴充是最高效的;
