今天來給大家分享一些學習編程的心得,真的顛覆了我以前對學習編程的刻板印象,可以這么說,如果你恰好處在大學階段,看到了這篇內容,OK,恭喜你,如果你能按照我說的去做,大三大四的時候絕對能領先同學一大截,除非你好心把這篇內容分享給他——嘿嘿,
文章來源:微信公眾號丨沉默王二

?
編程分兩種,一種是實操型,奉行的準則是實踐出真知;一類是理論型,奉行的準則是全部的知識都要搞懂后才肯去動手,前者代碼寫得多,但基礎不扎實,剛學編程時候的我應該屬于這一類;后者代碼寫得少,一句“talk is cheap, show me the code”就被嗆得想動粗,
真正的大牛,能在兩者之間找到一個巧妙的平衡點,
對于上班族或者轉行的同學來說,想把所有的知識點都鋪開去學習完,確實不現實,最好的辦法就是重實戰,然后再補理論,對于科班的在校大學生來說,因為有充足的時間,所以可以在理論知識上多花一些時間,等到作業后再彌補實踐上的短板我認為是最正確的方式,畢竟魚和熊掌不可兼得呀!
最近些年,可能是因為寫作的原因,我補充了大量的基礎知識,就突然感覺“今非昔比”了,編程上有了很大的進步,盡管依然很菜,但比前些年自認為好了很多,
好了,廢話就不多說了,先給大家推薦一門課,哈佛大學的 CS50,

?
老師非常激情,盡管沒有在現場,但依然有一種身臨其境的感覺,第一節課,直接就叫同學到講臺上撕了一本超級厚的書,就為了給同學們灌輸一種思維——說得直接點,就是二分查找法,先把書撕一半,然后再撕一半,再撕一半,直到找到一個 M 開頭的名字,
總共也就 20 多節課,每節課大概一個小時左右的時間,大家可以每天刷一節,我簡單列一下課程的目錄,基本上都是編程中要搞懂的基礎知識,
演算法、程式設計、語言等
資料存盤、磁盤等
C 語言、源代碼、編譯器等
函式、全域變數、引數、回傳值等
線性搜索、二進制搜索
符號、遞回、冒泡排序等
歸并排序、動態記憶體分配、堆和堆疊等
指標、檔案輸入輸出等
數獨、計算機史上最有名的 bug 等
魂斗羅游戲如何分配記憶體等
哈希函式等
網路編程等
網路安全等
說一件挺不好意思的事,我以前覺得只學 Java 這門編程語言就夠了,做個 CRUD 的好 boy 不就挺好的嘛,然后隨著時間的推移,越來越覺得這個想法有點天真,有點無邪,哈哈,還是要力爭上進的,多學點沒啥壞處,
一開始學也行,隨后補也行,總之是不能想當然的不學,會吃虧的,吃大虧的,
大家應該能發現,很多講解計算機科學相關的書籍,包括課程,里面的例子幾乎都是 C 語言描述的,
C 語言是很古老了,但越老的東西活得越久,越能證明它的優越性,
不得不說,哈佛就是哈佛,名校就是名校,這課程真心給力,如果你真的是對計算機科學感興趣,并且將來要進入這個行業作業,強烈建議多刷幾遍,
這是一個在編程界混吃等死了十多年的老菜鳥給初學者的最良心的建議,下面是這門課程的地址,
https://open.163.com/newview/movie/free?pid=M6U6LS8CV∣=M6U6MHDUR
刷完這門《哈佛大學的 CS50》,也刷完了翁愷教授的《C 語言程式設計》,就可以看看下面這本天書了!

?
這本書牛不牛逼,直接看豆瓣評分就能感受到,基本上全星,應該說是計算機相關書籍中評分最高的一本了吧,
那肯定是一門好書,一本再好不過的書了,
但能不能看得懂,能不能耐著性子看下去,就需要看你的定力了!
這本書從計算機開始講,介紹了電腦主機有什么部件,主板上有什么零件,CPU、記憶體和硬碟之間是怎么連接的,
介紹了我們寫的程式是怎么從一個文本檔案被編譯,然后是怎么變成匯編語言,再到機器碼的,以及怎樣被計算機執行的,
還講到了計算機網路、計算機組成原理、行程和執行緒等等,從硬體到軟體,全部拿下,
這本書讀完后會有哪些識訓呢?
(1)明確某一個階段我們欠缺什么知識,
(2)對技術有極客追求的同學會在這本書里找到很多答案,
(3)終于明白了,我們寫的程式是怎么被計算機執行的,
再次強調,《深入理解計算機系統》這本書對初學者并不友好,可能需要在不同的時間節點反復的看,一開始看不懂的內容可以過一段時間再看,如果還看不懂就再等等,過一段時間回來再繼續看,另外,書里面很多例子都是用 C 語言寫的,所以在看這本書之前一定要把 C 語言給吃透了,
總之,不要抱著那種一定要把這本書吃透再怎么怎么樣的幻想,先從中學到 1%,再學到 5%,再到 10%,不要操之過急,學到點是點,能學到多少都是值的,不拋棄不放棄,嘿嘿,
如果真的想從事編程,當做一份職業來對待的話, 你需要一本這樣的書 ,
讀這本書的同時,可以著手學習資料結構了,比如說陣列、鏈表、樹、圖,以及哈希表等,為什么要學習資料結構呢?
清華大學鄧俊輝老師的答案:資料結構作為構建高效演算法的必要基礎,在計算機科學領域中,起到了技術體系的基石的作用,以 ACM/IEEE Computing Curricula(計算機教學大綱)2005 年版為例,其中對于計算機科學、計算機工程、資訊系統、資訊技術、軟體工程等幾個相關專業的共同要求中,資料結構與演算法作為程式設計概念與技能的核心,緊隨在數學之后,排在第二位,
當然了,基本的演算法也跑不了,比如說動態規劃、貪心演算法,還有基本的排序演算法,

?
我給大家推薦一個在線的學習網站,地址如下所示:
https://www.programiz.com/dsa/why-algorithms
這是一個純英文的學習網站,截圖中為什么是中文的?哈哈,當然是我用 Safari 瀏覽器翻譯過的,英文功底可以的同學可以直接看英文原版的,代碼示例有多種版本,Python、Java、C 和 C++ 的都有,完全不用擔心被編程語言困擾的問題,

?
有 C++ 基礎的同學可以直接看鄧俊輝老師親自錄制的課程,有配套書籍——《資料結構》第三版,清華大學的計算機系列教材,質量沒得說,

?
我貼一下課程的在線地址:
https://www.xuetangx.com/learn/THU08091000384/THU08091000384/5883586/video/9215529
害,如果你想在畢業后或者跳槽的時候拿到滿意的 Offer,甚至體驗那種好多個 Offer 擺在面前,卻不知道選哪一個的感覺的話,我推薦的這三門課程、一個學習網站、兩本書,你值得擁有!
哇塞,原來學編程可以這樣呀,忍不住 點個贊 ,嘻嘻~
PS:另外對于學習編程或者正在作業的朋友,如果你想更好的提升你的編程能力乃至轉行,彎道超車,快人一步!筆者這里或許可以幫到你~
C語言C++編程學習交流圈子【點擊進入】微信公眾號:C語言編程學習基地
分享(原始碼、專案實戰視頻、專案筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272768.html
標籤:其他
上一篇:Sysbench 使用總結
