潘爱民译,C Primer第三版(中文):http://www.china-pub.com/5926
是不是因为这本书名字里面有个Primer(入门),所以就有很多朋友就把这本书归类为入门书了呢?很遗憾,第三版这本书我完整地看过,但并不觉得这本书适合给入门级的朋友。当然,如果你有别的语言的基础,并且有耐心看完这本书,这本书是不错的选择。从译者的水平来看,第三版的翻译是最自然的。这本书的内容比较全,而且也有很多讨论到C 细节的地方。因此,如果你学过C或者看完了易学C ,那么来看这本书是不错的选择。
李师贤译,C Primer第四版(中文):http://www.china-pub.com/28767
与第三版一样,这本书注重细节,但也与第三版一样并不适合初学者。C 很多知识都是互相穿插,并且对读者的接受能力都是极大的考验。在尚未教会他们写一个程序之前,就把指针、命名空间之类的东西交给他们只会成为他们的负担。所以给出的建议也与第三版类似,请看完入门书再来读这本书。
张引译,C 大学基础教程第五版(中文):http://www.china-pub.com/30687
这本书是买完以后才知道原来是个缩水版,里面没有模板等内容。从内容、翻译和细节上来说,这本书的确是一本非常不错的C 书籍,也是一本优秀的国外教科书。特别是一些针对细节的tips,对大家的实际编程都是比较有用的。只不过我对这本书的内容编排顺序不敢苟同,似乎他把面向对象和UML都作为重点放在了书的较前部。正如我先前所说,会读不会编大多是因为没有掌握好面向过程,所以当务之急应该是先教大家能熟练运用各种语句,然后再来讲这些抽象的概念。毕竟光靠这些抽象的概念是什么程序都编不出来的。
裘宗燕译,C 程序设计语言(特别版):http://www.china-pub.com/6591
最后来讲这本经典书。大家都知道这本书的作者是谁吧?C 之父Bjarne Stroustrup。我也不知道怎么会有人推荐初学者去看这本书的。打一个形象的比喻,让C 初学者看这本书就相当于让一个打算学英语的人直接去背字典。China-pub上也有众多的朋友在那里建议初学者不要轻易尝试看这本书。如果说C Primer的特点是细节和全面的话,那么这本书的特点便是细节加全面加权威。别忘了作者可是C 之父,没有人比他更了解C 很多地方的动机和原理。裘老师的翻译没有什么大问题,不过就那个“在线函数”和“内联函数”让大家觉得有些别扭。
最后的建议:
学习C ,对于零基础的朋友来说兴趣是非常重要的。如果你选一本超过500页的书来入门,我估计你看到200页左右就看不下去了。这并不是书的质量造成的,而是它给你带来的巨大心理压力。考虑周全的书往往在内容穿插上要花很多的功夫,所以一不小心就让初学者摸不着头脑。在此,我建议没有基础的初学者先去看《易学C 》,对最基础的东西有一些概念之后,再来看钱能老师的《C 程序设计教程》第二版和《C Primer》第三(四)版。如果这些都看完了,那么最后再来看C 之父写的《C 程序设计语言》就会比较舒适了。
如果你有过学习C或者VB的经历,那么建议直接去看钱能老师或者谭浩强老师的书。迅速掌握C 的一些特点之后,再去看《C Primer》之类的,这样能充分利用你以前学过的相关知识,加快C 的学习速度。
还有如果想在面向对象方面做一些深入研究的,建议去看看UML和设计模式方面的书,这些都有助于让你了解怎么才能运用好面向对象的功能。
最后,感谢大家花那么多时间看完了我的文章,如果有什么不同观点,欢迎提出!
发表于:2008-7-10 最新讨论:2008-7-10
送鲜花(得
1支)
扔鸡蛋(得
0个)
正在读取本评论的讨论,请稍侯……