自學編程。。。
最近有不少朋友后臺咨詢該如何自學編程,正好最近有時間,就整理了一下自學編程的路線,全文3000多字,看完有幫助的話記得幫廠長收藏轉(zhuǎn)發(fā)一下,下面進入正題:
如果是零基礎(chǔ)入行計算機的話,建議先對這一行增加點背景知識了解,這方面目前最好的讀書是吳軍老師的《浪潮之巔》,見解非常獨到。如果是想要根據(jù)時間線來了解一下的話,可以看一下《硅谷百年史》,了解背景知識看這兩本書差不多就夠了。
然后接下來的一步比較重要,就是正式學習計算機專業(yè)知識,到這里很多人就會有困惑,自學,從哪里入手?上培訓(xùn)班,似乎很直接,但是很費錢;自己找書看,又不知道看哪些書。
我個人的建議是看書、上課、和實踐相結(jié)合,三管齊下,缺一不可。
學編程最重要的就是要理論和實踐想結(jié)合,兩方面都需要兼顧好。不然,編程能力不會有真正提高。
所以我從三個方面來講一下,先是書籍推薦,再是網(wǎng)課選擇,最后是練習平臺。
1、書籍推薦
1.《深入理解計算機系統(tǒng)》(CSAPP)

這是一本很基礎(chǔ)的書,涵蓋了計算機組成原理,操作系統(tǒng),體系結(jié)構(gòu),網(wǎng)絡(luò)編程,并行程序設(shè)計原理等課程的基礎(chǔ)知識。無論是處于哪個階段的同學,這部書都是必備的。正如此書開篇作者所言“如果你全心投身學習這本書中的概念,完全理解底層計算機系統(tǒng)以及它對應(yīng)用程序的理解,你會步上成為為數(shù)不多的大牛之路”。
2.關(guān)于編程語言
到底哪種編程語言是世界上最好的語言是程序員永遠無法達成一致的世界難題。我結(jié)合自身七年的學習經(jīng)驗以及針對當前社會的需求,給大家推薦三門編程語言(C++/Java/Python)以及相關(guān)的書籍。
1)《C++ Primer》

這是一本久負盛名的C++經(jīng)典教程。無論是初學者入門,或是中/高級程序員提升,這本書都是不容置疑的首選!??!
2)《Java編程思想》

這本書贏得了全球程序員的廣泛贊譽,即使是最晦澀的概念,在作者的文字和示例面前都迎刃而解。從Java的基礎(chǔ)語法到最高級特性,這本書都可以指導(dǎo)你一步步的輕松的去理解和掌握!這本書小編我在大二學了一整年,學完之后真的完成了質(zhì)的飛躍!親身體驗,非常推薦給大家!
3)《Fluent Python》

近兩年我用的編程語言就是python?,F(xiàn)在網(wǎng)絡(luò)上對于python的教材真的是五花八門,內(nèi)容過于重復(fù)和繁瑣,對我們幫助并不大。關(guān)于這本書我可以很果斷的說,這是世面上關(guān)于python最好的書!并且真是書的風格特別友好,讀的時候你會感覺一個博學但是溫柔的大叔再跟你侃侃而談。
3.數(shù)據(jù)結(jié)構(gòu)與算法分析
掌握了最基本的編程語言,就該學習更高級的知識了,也是程序員核心知識——數(shù)據(jù)結(jié)構(gòu)與算法分析。只有掌握了這些,才可能寫的更好更高效的程序,才能將語言更好地用于實際問題的解決。當然,這部分知識也是比較難學的。接下來給大家推薦三本我認為非常好的三本相關(guān)書籍。
1)《我的第一本算法書》
這本書是京都大學一個計算機教授和朋友聯(lián)合出品的動畫講解算法的App 所衍生出來的書籍,非常適合新手朋友們。里面沒有枯燥的理論和復(fù)雜的公式,而是通過大量的步驟圖幫助讀者加深對數(shù)據(jù)結(jié)構(gòu)原理和算法執(zhí)行過程的理解,便于學習和記憶。將本書作為算法入門的第一步,是非常不錯的選擇。

2)《算法圖解》
這是一本像小說一樣有趣的算法入門書,示例豐富,圖文并茂,以讓人容易理解的方式闡釋了算法,旨在幫助程序員在日常項目中更好地發(fā)揮算法的能量。書中的前三章將幫助你打下基礎(chǔ),帶你學習二分查找、大O表示法、兩種基本的數(shù)據(jù)結(jié)構(gòu)以及遞歸等。余下的篇幅將主要介紹應(yīng)用廣泛的算法。

3)《算法導(dǎo)論》
emmmmm這本書真的是算“圣書”了,如果把它從頭到尾看完并且搞明白了,那么恭喜你,月入百萬不是夢!

2、網(wǎng)課選擇
課程的話,最重要的就是下面六門課:
數(shù)據(jù)結(jié)構(gòu)與算法,
計算機組成原理,
計算機操作系統(tǒng),
計算機網(wǎng)絡(luò),
數(shù)據(jù)庫系統(tǒng)。
上面的這六門課,無論你是將來找工作,讀研,還是讀博,都是最最重要的。而且學習的順序就是上面的這樣。
1. 數(shù)據(jù)結(jié)構(gòu)與算法
推薦看斯坦福的算法課,教程用的是《算法導(dǎo)論》,這門算法則基本不涉及到語言層面,主要是算法層面,講得很好。
https://www.bilibili.com/video/av21620553

組成原理與操作系統(tǒng)的話,強烈推薦去看下面這兩位老師的課,B站上面有完整的視頻,保證不水!
1. )2020 南京大學 操作系統(tǒng):設(shè)計與實現(xiàn) (蔣炎巖) https://www.bilibili.com/video/BV1N741177F5
南大的課質(zhì)量真的硬, 蔣炎巖老師講的是真滴好啊,把晦澀的東西講的也非常的通俗易懂,豁然開朗,很多同學都是慕名而來,看完這個也算上過南大的操作系統(tǒng)啦 哈哈哈。

2.) 操作系統(tǒng)(哈工大李治軍老師) https://www.bilibili.com/video/BV1d4411v7u7
個人覺得是 b 站上很不錯的操作系統(tǒng)課程了,這門課的前幾講涉及 OS 啟動,需要一點匯編知識,不過遇到不會的直接網(wǎng)上搜即可,大可不必因為匯編而被勸退;之后的內(nèi)容如多進程、信號量、內(nèi)存管理等講得很好。

3.)計算機網(wǎng)絡(luò)微課堂 https://www.bilibili.com/video/BV1c4411d7jb
這個網(wǎng)課驚艷的地方在于,老師的話語沒什么廢話,基本都是知識要點,更重要的是他動圖非常多,他動圖非常多,他動圖非常多,他動圖非常多?。?!所以非常適合小白入門學習,不能再生動形象!

3、最后來說說練習平臺
光學不練,計算機知識是學不會的。
不管你是考研還是面試找工作,都一定會重點考查學生的動手能力,而動手能力主要考查的就是算法能力,所以大家一定要勤加訓(xùn)練!
LeetCode
leetcode是現(xiàn)在找工作最熱門的刷題網(wǎng)站了,
但LeetCode現(xiàn)在題目也太多了,一共1300+了,而且一直在增加?。?!
全刷完沒必要,也不高效,推薦看下面這個leetcode刷題筆記:

這份筆記里面共包含作者刷LeetCode算法題后整理的數(shù)百道題,每道題均附有詳細題解過程。很多人表示刷數(shù)據(jù)結(jié)構(gòu)和算法題效率不高,甚是痛苦。
有了這個筆記的總結(jié),對校招和社招的算法刷題幫助之大不言而喻。
離線版筆記下載地址:
鏈接:https://pan.baidu.com/s/1X-8kXK4zvO1w684LCEuf8w
提取碼:210F
4、一些建議
1)在大家學習計算機相關(guān)知識的時候,一定要好好利用網(wǎng)絡(luò)上的資源,好好利用百度和谷歌。有什么不會的直接上網(wǎng)搜,肯定會有很多優(yōu)秀的博主為你排憂解惑。
2)對于編程語言的學習,一定要多動手寫代碼,在實戰(zhàn)中掌握。而且C++/Java/Python掌握一門就夠了。大同小異,當你精通一門語言之后,如果想要學習其他語言,就會非常的快。
3)學習數(shù)據(jù)結(jié)構(gòu)和算法分析,一定一定要在看懂之后自己用自己喜歡的編程語言實現(xiàn)一遍,一定要親自實現(xiàn)一遍呀?。?!這一點太重要了。這樣你就能很快的掌握而且再一次加強編程能力。
推薦資源
歡迎添加程序汪個人微信 itwang007 進粉絲群或圍觀朋友圈
往期資源 需要請自取
喜歡就"在看"唄^_^
