回覆列表
-
1 # 產品喵
-
2 # 小凱剪輯君
思想。理解一個程式是怎麼來的,為什麼要這樣...語言就是個工具,c語言學深了,沒有演算法資料結構最多就做做簡單的數學題...處理字串也是難點
-
3 # 計算機科學論文導讀
王國維在《人間詞話》裡曾寫道:古今之成大事業、大學問者,必經過三種之境界:“昨夜西風凋碧樹。獨上高樓,望盡天涯路。”此第一境也。“衣帶漸寬終不悔,為伊消得人憔悴。”此第二境也。“眾裡尋他千百度,驀然回首,那人卻在,燈火闌珊處。”此第三境界。概括了一種鍥而不捨的堅毅性格和執著態度。
同樣學習任何一門程式語言也可以概括為三重境界,第一境界,精通程式語言語法以及熟練應用常用的開發框架。第二境界,精通程式設計模式及資料結構,演算法。第三境界,理解程式語言本身的設計機制及編譯,能寫出真正高效的程式碼,甚至自己設計語言(當然這個有點。。。)。
具體對於C語言來說,因其是一種比較偏向底層的語言,在第一境界時需要著重掌握指標和檔案I/O,以及業務對應的開發框架。進入第二境界之前,應該嘗試用C語言去實現常用的資料結構,演算法以及設計模式,最終做應用資料結構,演算法和設計模式去造業務需要的輪子。進入第三境界,要做到對作業系統和編譯原理非常熟悉,能對C語言特性知其然更知其所以然,比如對於記憶體分配,需要知道作業系統如何操作virtual memory等等。
最重要的是練習和手動模擬過程,指標部分需要了解記憶體管理相關內容,這是作業系統課程的部分內容,不需要專門去學,多看看相關博文,瞭解抽象的原理,自己大體能想明白。C語言只是工具,熟能生巧。進階的資料結構需要投入更多的心力去鑽研。看書,實踐,計算機是人造的規則,不懂就查,別糾結就行。