什么才是学习C语言的捷径?我的答案是看书。书中所写,是前人数十年经验所写,看十本书,就相当于汲取了前人数十年的功力,那么你的内功也会迅速上升1甲子。:)书当然要看好书,只有好书才营养丰富。假如你花了1天时间看了一本破书,而该书介绍的知识虽然对于你来说是全新的知识,但是由于书中组织不当、或者深度不够,使你获取的营养很少,还不如自己研究一天来的快,这种书就不值当看了。学习C语言要看那些好书?我认为首先要把基础书给看扎实了,比如拙著《
C语言之四书五经
》中介绍的4本。(虽然这些书很多已经绝版了,但我相信电子版也是很有益处。况且,如果你真的想看,我相信你一定有办法搞的到。)这些书你会在很短的时间内看完(比如一两个月),这取决于你的基础和悟性。之后要看那些书呢?我不妨再列几本。Bjarne
Stroustrup的《C++程序设计语言》(
The C++ ProgrammingLanguage)一定要看,这本书里面对于C的一些基础概念的定义,比我见过的其他任何C语言书都要全,都要仔细;Bjarne
Stroustrup的《C++语言的设计与演化》(
The Design and Evolution ofC++)和David R.Hanson 的《C语言接口与实现
创建可重用软件的技术》(
C Interfaces and Implaementations
Techniques for Creating ReusableSoftware)一定要看,这两本书讲述了如何用C来实现异常处理、实现类型的封装和扩展等一些大的项目中经常用到的高级技术。其他的书,操作系统的要看,编译原理的要看,算法的要看,模式的也要看。读书破万卷,coding如有神。总而言之,就如《传》中云:“生而知之者,上也;学而知之者,次也;困而学之又其次也。”我们不能总是因困而学之,而要做到兵马未动,粮草先行。
the fucking source
code;候捷也在其文中提到“源码之前,了无秘密。”这就是大师的箴言呀。源码就像是动画、就像是幻灯片,把书中的招式一一演练给你看。可以说高手的经验大都是源自代码。源码和书一样,也是要看好的,不要看差的。在此,我推荐看Linux
kernel source code 和 Linux tcp/ip source
code。这两套代码都是开源的,垂手可得。此外,还可以配合着Andrew
S.Tanenbaum的《操作系统的设计与实现》(
Operating Systems:Design
and Implementation
)、毛德操 胡希明的《Linux内核
源代码情景分析》、Jonathan Corbet,Alessandro Rubini,Greg
Kroah-Hartman合著的《Linux设备驱动程序》(
Linux DeviceDriver,3e)、W.Richard Stevens《TCP/IP详解(3部)》(TCP/IPIllustracted )
、W.Richard
Stevens《UNIX环境高级编程》(
Advanced Programming in the UNIX
Environment
,新版增加了Linux
kernel的内容)等书来看,方便的很。