如何學好C語言

0 - C

C by 丹尼斯·里奇

1 - 前言

  • 編程到一定的時候,發(fā)現能力到瓶頸,既不深,也不扎實,半吊子。

  • 長期使用Java和.NET ,有虛擬機的語言對于開發(fā)便利,

    但是弊端是:

    • 虛擬機屏蔽了操作系統(tǒng)的系統(tǒng)調用,以及很多底層機制。

    • 大量的封裝好的類庫也屏蔽了很多實現細節(jié)。

  • 一段時間后,你會發(fā)現你知其然,不知所以然。

  • 程序員不懂底層實現,所以很難把技術學得更扎實。

  • 要學習底層的技術,很自然的,C語言就被提了上來。

2 - C語言和系統(tǒng)編程

學好編程有四個方面:語言、算法和數據結構、系統(tǒng)調用和設計。

  • 語言。C語言有兩大主題,一個是內存管理,一個是指針!

    • 這個世界上90%以上的C/C++出的嚴重性錯誤全是和這兩個有關。

    • 推薦《C程序設計語言(第2版·新版)》

      • 作者: (美)Brian W.Kernighan,Dennis M.Ritchie

      • 譯者: 徐寶文 李志

      • 原書名:The C Programming Language

  • 算法和數據結構。

    • C語言實現(第1~4部分)基礎知識、數據結構、排序及搜索(原書第3版)

      • Algorithms in C, Parts 1-4: Fundamentals, Data Structures, Sorting, Searching (3rd Edition) (Pts. 1-4)

      • 作者: (美)Robert Sedgewick

      • 譯者: 霍紅衛(wèi)

    • 《算法導論》

      • 原書名:Introduction to Algorithms, Second Edition

      • 作者: (美)Thomas H.Cormen, Charles E.Leiserson 等

      • 譯者: 潘金貴 顧鐵成 李成法 葉懋

  • 系統(tǒng)編程。

    • Windows下推薦兩本書——《Windows 程序設計 》和《Windows核心編程》,

    • Unix/Linux下推薦兩本書——《Unix高級環(huán)境編程》和《Unix網絡編程卷1,套接字》《Unix網絡編程卷2,進程間通信》。

  • 系統(tǒng)設計。

    • 關于設計方面,推薦《Unix編程藝術》。

如果你能在2-3年內精讀完這些書,并全部融會貫通 ! _ !

3 - 系統(tǒng)的基礎知識,表面的東西永遠是膚淺的

  • 編程編到一定時候,就需要了解底層系統(tǒng)的機制,否則,知其然不知所以然。

  • 如果你想要了解底層機制,請學習C語言和操作系統(tǒng)。

  • 40多年的Unix/C影響深遠。包括影響了Windows。如果你想一通百通,一定要了解Unix。那是計算機文化真正的根。

  • 不要以為一個DBA就不會考慮數據庫引擎的內存頁面的問題。

  • 也不要以為Web程序員就不需要了解后臺的服務器和腳本的運行性能以及TCP/IP的問題。

4 - Reference

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容