0 - C

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的問題。