0 - C
1 - 前言
编程到一定的时候,发现能力到瓶颈,既不深,也不扎实,半吊子。
-
长期使用Java和.NET ,有虚拟机的语言对于开发便利,
但是弊端是:
虚拟机屏蔽了操作系统的系统调用,以及很多底层机制。
大量的封装好的类库也屏蔽了很多实现细节。
一段时间后,你会发现你知其然,不知所以然。
程序员不懂底层实现,所以很难把技术学得更扎实。
要学习底层的技术,很自然的,C语言就被提了上来。
2 - C语言和系统编程
学好编程有四个方面:语言、算法和数据结构、系统调用和设计。
-
语言。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
译者: 霍红卫
-
《算法导论》
原书名:Introduction to Algorithms, Second Edition
作者: (美)Thomas H.Cormen, Charles E.Leiserson 等
译者: 潘金贵 顾铁成 李成法 叶懋
-
-
系统编程。
Windows下推荐两本书——《Windows 程序设计 》和《Windows核心编程》,
Unix/Linux下推荐两本书——《Unix高级环境编程》和《Unix网络编程卷1,套接字》《Unix网络编程卷2,进程间通信》。
-
系统设计。
- 关于设计方面,推荐《Unix编程艺术》。
如果你能在2-3年内精读完这些书,并全部融会贯通 ! _ !
3 - 系统的基础知识,表面的东西永远是肤浅的
编程编到一定时候,就需要了解底层系统的机制,否则,知其然不知所以然。
如果你想要了解底层机制,请学习C语言和操作系统。
40多年的Unix/C影响深远。包括影响了Windows。如果你想一通百通,一定要了解Unix。那是计算机文化真正的根。
不要以为一个DBA就不会考虑数据库引擎的内存页面的问题。
也不要以为Web程序员就不需要了解后台的服务器和脚本的运行性能以及TCP/IP的问题。