导航:首页 > 软件知识 > c程序员看什么书

c程序员看什么书

发布时间:2023-03-16 03:00:29

A. C\C++程序员需要掌握什么书籍

c/c++程序员需要掌握的书籍大概可以分成几个方面:

  1. 计算机基础类书籍,这类书籍包括计算机组成原理、计算机网络、数据库、操作系统、数据结构与算法。

  2. c/c++类专业书籍,这类书籍包括基础的C语言程序设计、C++primer。

  3. 扩展类书籍,c/c++相关扩展类,推荐的有C陷阱与缺陷、深度探索C++对象模型、effective C++。

  4. 平台扩展类书籍,这类就要看你在哪类系统下做开发,一般常用的系统平台是嵌入式、windows、Unix及ios(object C++),这类书籍就比较多了,可以按照个人需求选择。

按照上述推荐的理由是:

  1. 学习计算机语言需要一定的基础,这类基础是非常重要但是很无聊的,后续在做开发的时候会觉得非常实用。

  2. 学好语言其实不是非常麻烦的部分,一般的教材类书籍即可,重要而麻烦的是在敲代码的过程中去熟练掌握、运用和创新。

  3. 扩展类书籍3可以帮助你更深入的理解你所学到的东西,而深入理解是程序员进阶的必经之路。

  4. 平台类书籍略有区别,但是标准C++是一样的,只是针对各自平台做了相应扩展(objectc++除外)。如果需要在某个平台下做开发,或者学习再去学习使用即可。

B. 学习c语言看什么书好

重点推荐C语言四大圣经:《C语言程搭备差序设计》、《C和指针》、《C陷阱与缺陷》、《C作家编程》。其中C语言的发明者K&R的《C程序设计语言》更是重中之重,此书是C语言的第一秘典。所有优秀程序员的必经之路。

四大圣经及其他优秀书籍的信息:
1.《C语言程序设计》
K&R
清华大学出版社

2.《C和指针》
POINTERS ON C Kenneth A.Reek、
徐波 人民邮电出版知皮社

3.《C陷阱与缺陷》
Andrew Koenig、 高巍
人民邮电出版社

4.《C专家编程》
Expert C Programming Deep C Secrets Peter Van
Der Linden 人民邮电出版社 (2008-02出版)

5.《清华大学计算机系列教材•数据结构(C语言版)(附光盘1张)》
吴伟民、 严蔚敏
清华大学出版社

6.《计算机算法设计与分析(第3版)》
王晓东
电子工业出版社

7.《算法艺术与信息学竞赛•算法竞赛入门经典》
刘汝佳
清华大学出版社

8.《算法导论(原书第2版)》
科曼(Cormen T.H.)、滚老等、 潘金贵
机械工业出版社 (2006-09出版)

9.《编程之美:微软技术面试心得 》
《编程之美》小组
电子工业出版社

10.《编程珠玑(第2版)》
Jon Bentley、黄倩、 钱丽艳
人民邮电出版社

11.《算法艺术与信息学竞赛》
刘汝佳
清华大学出版社

12.《程序员面试宝典(第3版)》
欧立奇、刘洋、 段韬
电子工业出版社

13.《数学之美》
(《浪潮之巅》作者吴军最新力作,李开复作序推荐,Google黑板报百万点击)

C. 零基础自学c语言需要看什么书

其实这个问题很斗雀难回答,因迟销敏为不同的人有不同的需求。

但是,基本上可以分为两类:基础书籍和专业书籍。

基础书籍包括:

C语言、数据结构、算法、计算机网络、计算机系统等。

这些书籍是程序员必须掌握的基础知识,小白应该先看这些书籍。

专业书籍包括:

微服务架构、高性能网站架构、大数据架构、云计算架构、大型网站架构等。

这些书籍是程序员必须掌握的专业知识,小白应该后看这些书籍。

当然,如果有兴趣,还可以看一码枝些Web前端开发、Android开发、iOS开发、数据库开发等书籍。

D. 有经验的程序员来看:C\C++程序员需要掌握什么书籍

CC++与数据结构 ¥33.25元
本教材是计算机基础教学改革实践4年的总结,它将C语言、数据结构和C++综合为一门程序设计基础课程,可以不分专业,在大学一年级完成(授课80学时,实验80学时)。 本书可以作为各类人员学习C、数据结构和C++的综合教材。 ...
CC++程序设计入门与提高 ¥27.55元
精选着名流行软件,紧跟版本更新,连续推出配套图书;由“入门”起步,注重“提高”,使新霰手老手都能成为行家里手;根据用户实际使用的需要取材谋篇,着重技术精华的剖析和操作技巧的指点;明晰精练的风格、醒目的步骤提示和生动的屏幕画面使您如临操作现场。 ...
数据结构(C语言版) ¥21.85元
数据结构是计算机及相关专业的核心课程,是计算机程序设计的基础,是程序员和许多高校研究生入学考试的必考科目。本书共分10章,第1章是数据结构的概述;后9章分别介绍了线性表、栈、队列、串、数组、广义表、树、二叉树、图、查找、内部排序、外部排序、动态存储管理?...
C语言程序设计实践教程 ¥23.75元
本书是以C语言的入门级读者作为主要对象,根据C语言程序设计课程的特点,用编排独特、形式新颖、通俗易懂的方法编写的一本教材。全书包括3大部分。第1部分(第1章和第2章)介绍了C语言的基本框架、C语言的基本概念、函数的定义和使用、常量与变量的概念、C语言数据类型?...
C语言基础教程——基础理论与案例 ¥27.55元
本书全面系统地讲述了C语言的基本语法以及它们在编程中的应用,同时又介绍了编写C语言程序的一些方法和技巧。本书内容包含有C语言的词法、常量和变量、运算符和表达式、预处理功能、语句、函数和存储类、指针、结构和联合以及文件操作等内容。本书语言通俗,由浅入深?...
AVR 单片机C语言开发应用实例——TCP/IP篇 ¥53.20元
Ethernut是第一个推出的基于8位单片机的嵌入式以太网解决方案,并且公开了该方案的硬件电路和全部源代码,因此用户可以很方便地对Ethernut方案进行剪裁,定制出适合自己的以太网解决方案,在该方案的基础上进行二次开发,可以大大提高开发进度和降低出错概率。本书共?...
C语言程序设计应试辅导(二级) ¥34.20元
本书是根据教育部考试中心最新的全国计算机等级考试大纲(2004)编写的。本书共分为11章。主要内容有:二级公共基础,C程序设计的基础知识和简单语句,C程序中的控制结构,指针和函数的基本概念,数组,字符串,函数的进一步讨论,结构体、共用体和用户定义类型,文件, ...
嵌入式C语言编程与Microchip PIC ¥46.55元
本书全面系统地介绍了C语言编程技术及其在嵌入式微控制器中的应用,其中包括嵌入式C语言、PIC微控制器的硬件、标准I/O和处理器指令、CCSPICC C编译器和IDE、项目开发等各种技术,并在附录中扼要介绍了库函数和PIC微控制器编程。全书内容翔实、结构清晰、技术准确?...
程序设计抽象思想——C语言描述 ¥74.10元
本书全面介绍了数据结构的基础内容,帮助学生深入了解软件工程的思想和技术。学生还可以通过对一些高级编程概念(如接口、抽象和封装)的了解,为进一步深入学习高级编程知识打下坚实的基础。本书观点清晰明了、语言风格鲜明独特,深入浅出地介绍了一些高级主题。 ...
三级C语言上机指导 ¥20.90元
本书是依据教育部考试中心最新推出的《全国计算机等级考试三级考试大纲》关于上机考试的内容和要求编写的。全书共分为三章,主要包括三级上机考试应试技巧概述、上机考试题库分类解析和上机考试环境及程序调试等内容。本书结构清晰,内容详实,对三级C语言上机试题题?...
QBASIC语言程序设计 ¥20.90元
本书是根据教育部最新颁布的中等职业学校计算机及应用专业《QBASIC编程语言》基础教学基本要求编写,同时参考了教育部考试中心制定的计算机等级考试大纲。本书主要内容包括QBASIC语言的基础知识、基本概念、程序结构及程序设计方法、数组、函数和子程序、字符串、文件 ...
C语言真题分析与实战训练(二级) ¥20.90元
本书是根据2004年教育部考试中心对二级C语言程序设计考试内容调整后的新大纲要求而编写的,书中分为“应试策略”、“真题攻关”、“强化制胜”和“上机指导”4个部分。本书对2003年4月至2004年4月3套全国计算机等级考试的笔试真题试卷的题型、考点、分值比例等情况进行?...
AVR 单片机BASIC语言编程及开发 ¥21.85元
作为一种16/32位的高性能、低成本、低功耗的嵌入式RISC微处理器,ARM微处理器目前已经成为应用最为广泛的嵌入式微处理器。本书在全面介绍ARM处理器的体系结构、编程模型、指令系统和开发工具的同时,以Samsung公司的一款基于以太网系统的ARM处理器——S3C4510B为核心?...
全国计算机等级考试真题(笔试+上机)详解与样题精选(二级C语言) ¥30.40元
本书对近5年来全国计算机等级考试二级基础知识和C语言程序设计的真题进行了深入的分析,本书内容按教育部考试中心指定教程的章节分类编排,并按考试大纲的要求逐考点地对真题进行详细的分析,对相关知识点进行详尽的介绍。通过对真题的分类、分析和相关考点的理论链 ...
计算机图形学C语言版(第2版) ¥65.55元
本书介绍了设计与使用计算机图形学系统所必须的基本原理,讨论了图形学系统硬、软件及其应用,列举了C语言描述了编程实例以展示图形学算法的实现及应用,探讨了PHIGS、PHIGS+、GKS以及其他图珍库的特征。与第1版相比,在反走样、分形及其他物体表示法、光线跟踪、样 ...
三级C语言上机考试试题与题解 ¥19.95元
本书提供了30套最具典型性的全国三级C语言程序设计(信息管理技术、数据库技术、网络技术)上机考试过关试题,并给出与其配套的典型题解。主要内容包括:三级C语言上机考试概要,三级C语言上机考试基本导航,三级C语言上机过关试题与题解。本书深入浅出、简明扼要地 ...
C语言习题与解析(第2版) ¥23.75元
C语言是一种结构化、模块化、可编译的主流程序设计语言。作者编写的《C语言与习题解答》一书自1999年出版以来,受到了广大读者的关爱与好评。由于技术的发展和读者反馈的意见,本书作者对该书内容进行了扩充与修订。本书分为13章,分别介绍了C语言的基本概念、基?...
QBASIC语言(二级)难点、错点解析 ¥21.85元
本书根据教育部考试中心最新发布的《全国计算机等级考试大纲》的要求,由计算机等级考试考前培训班教师根据实际教学经验,专门为大、中专学生参加全国计算机等级考试而编写的考前辅导参考书。本书以对本课程有一定基础的读者为主,介绍有关的知识要点,并分别对笔 ...
程序设计基础(C语言) ¥27.55元
C语言是现代最流行的通用程序设计语言之一,它的简洁、紧凑、灵活、实用、高效、可移植性好等优点深受广大用户欢迎。C语言的数据类型丰富,它既具有高级程序设计语言的优点,又具有低级程序设计语言的特点;既可以用来编写系统程序,又可以用来编写应用程序。因此, ...
全国计算机等级考试系列辅导教材(二级)——C语言 ¥46.55元
本书共16章,其中第1章为学前自测与指导,从2-14章均包括“知识点讲析”、“补充与扩展”、“典型例题”和“本章练习”4部分,内容涉及计算机等级考试二级C语言的各个方面。第15章提供了3套笔试模拟试卷,第16章是上机指导。书后提供了各章练习题的参考答案。本书 ...
AVR系列单片机C语言编程与应用实例 ¥28.50元
本书针对Atmel公司的AVR系列单片机和ImageCraft公司的ICC AVR开发环境,详细地介绍了AT90LS8535的C语言程序设计。全书共有13章,其内容既涉及到了单片机的结构原理、指令系统、内容资源和外部功能扩展,又包含了单片机的编程工具——ICC AVR C编程器的数据类型、控?...
全国计算机等级考试系列辅导教材(二级)——Visual Basic语言 ¥46.55元
本书共15章,其中第2章-第13章均包括“知识点讲析”、“补充与扩展”、“典型例题”和“本章练习”4部分,第15章为上机考试指导。附录中提供了各章练习题的参考答案。本书针对性强,内容深入浅出,实例丰富,适用于报告计算机等级考试二级Visual Basic语言的读者:?...
二级C语言学与练 ¥20.90元
本书根据国家教育部考试中心 2002 年最新颁布的“全国计算机等级考试二级考试大纲(二级C语言)编写,书中以通俗易懂的语言全面详实地介绍 C 语言二级等级考试的重点和难点,从等级考试的角度精心设计出一系列富有代表性的例题和习题,其中包含了大量的等级考试试题 ...
中学生学C语言 ¥18.05元
本书包括入门篇、提高篇和应用篇3部分,通过对典型例题的分析和解答,以生动有趣而又科学准确的语言,讲述C语言的程序设计方法和语法现象,注重实用,突出重点,是一本专门为中学生编写的C程序设计教程。 ...
嵌入式处理器原理及应用——Nios 系统设计和C语言编程 ¥24.70元
本书以Altera工公司开发的Nios嵌入式处理器软核为例,介绍了嵌入式处理器的组成原理和开发应用。全书分为6章:第1、2章介绍嵌入式处理器的组成原理,主要介绍嵌入式处理器的系统组件;第3、4章介绍嵌入式处理器的开发环境,包括硬件开发环境和软件开发工具SOPC Buil ...
MPI 与 OpenMP 并行程序设计:C语言版 ¥48.45元
本书是美国Oregon州立大学的Michael J.Quinn教授在多年讲授“并行程序设计”课程的基础上编写而成的,主要介绍用C语言,并结合使用MPI和OpenMP进行并行程序设计,内容包括并行体系结构、并行算法设计、消息传递编程、Eratosthenes 筛法、Floyd 算法、性能分析、矩阵 ...
C语言程序设计教程 ¥18.05元
本书是为初学计算机程序设计的读者而写的,通过大量的实例较全面地介绍C语言的基本概念、语法和程序设计方法。全书共分9章。结构简洁明快:重点突出,通俗易懂;实例讲解条理清晰,逻辑性强;始终以程序设计为主线,注重培养学生程序设计的思维方式和技术;每章配以 ...

E. 有什么学C语言的好书

你好,很高兴回答您的问题。个人建议看《C primer plus》、《写给大家的C语言书》、《C语言解惑》、《你必须知道的495个C语言问题》、《编程精粹》、《C标准库》等国外优秀着作。 还有一个 ::C语言入门经典(第4版) 作者: 出版:清华大学 出版日期:2008年04月 本书是编程语言先驱者Ivor Horton的经典之作,是C语言方面最畅销的图书品种之一。本书集综合性、实用性为一体,是学习C语言的优秀入门教材,在世界范围内广受欢迎,口碑极佳。书中除了讲解C程序设计语言,还广泛介绍了作为一名C程序设计人员应该掌握的必要知识,并提供了大量的实用性很强的编程实例。本书的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员。读者基本不需要具备任何编程知识,即可通过本书从头开始编写自己的C程序。 新华书店网店新华文轩有卖的 谢谢采纳。

F. 《狂人C程序员入门必备》epub下载在线阅读全文,求百度网盘云资源

《狂人C》(键盘农夫)电子书网盘下载免费在线阅读

链接: https://pan..com/s/1qsqb3Cce39tqAz81itIf5w

提取码: b369

书名:狂人C

作者:键盘农夫

豆瓣评分:7.3

出版社:人民邮电出版社

出版年份:2010-10

页数:482

内容简介:

《狂人C:程序员入门必备》以独特的方式全面地讲述了C语言(C89和C99)的基本概念和编程知识。面向初学孙迅者,对基本概念详尽透彻的剖析,嫌游强调良好的编程习则者此惯和风格,结合软件工程、软件测试的基本理念介绍编程知识,是《狂人C:程序员入门必备》的主要特色。

G. 《狂人C程序员入门必备》epub下载在线阅读,求百度网盘云资源

《狂人C》(键盘农夫)电子书网盘下载免费在线阅读

资源链接:

链接:https://pan..com/s/19pdIWJg_QxlmKpSqgR-40Q

密码:8fck

书名:狂人C

作者:键盘农夫

豆瓣评分:7.3

出版社:人民邮电出版社

出版年份:2010-10

页数:482

内容简介:

《狂人C:程序员入门必备》以独特的方式全面地讲述了C语言(C89和C99)的基本概念和编程知识。面向初学者,对基本概念详尽透彻的剖析,强调良好的编程习惯和风格,结合软件工程、软件测试的基本理念介绍编程知识,是《狂人C:程序员入门必备》的主要特色。

全书分为3个部分:理解程序设计,结构化程序设计与数据的组织和C语言的高级话题。体现了从零基础到C编程高手层次递进的特点。

全书贯穿大量生动实例,讲述从问题的提出、问题的分析、代码的核游编写到程序测试的全部过程,并对C语言学习者和使用者中常见但容易忽视的问题进行了剖析。仔氏睁

《狂人C:程序员入门必备》适合C语言念岁初学者参考和使用,也适合高等院校计算机专业选为教材使用。

H. 程序员经典的书籍有哪些C/C++ 数据结构之类的求指导

c++基础:
《C++ primer》必看,现在到第五弊铅版了把。
《Accelerated C++》看2本基础书还是很有必要的。
c++晋级:

《深入探索c++对象模型》讲的是编译器如果构造c++对象,必看,好书不解释
《Effective C++》
《More Effective C++》
《c++必知必会》
以上三本教你如何更好,更高效的编写c++代码。

程序库
《泛型编程与STL》必看,泛型编程很重要啊
《STL源码剖析》这书比较难,没有扎实的基础不建议看。
算法和数据结构

最经典书籍租游好当属《计算机程序设计艺术》,但是我不推荐,如果你非得看,而且看完了,记得给比尔盖茨发简历磨毕。
我只推荐两本《算法导论》和《算法艺术与信息学竞赛》,尤其是《算法导论》大师之作,里面的代码都是权威,非常值得学习

I. 学习C语言要些什么基础

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种歼培能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

由于C语言简单易学,已经成为学习编程的入门语言之一。在大学一年级,已经安排C语言相关的学习课程。由此可见,C语言的学习并不需要前置课程,可以轻松入门。附件是一本适合初学者入门学习的C语言书籍。其中包括:基本数据类型,运算符与表达式,控制流,函数,指针,数据结构,输入输出等基本基本知识的介绍。能够熟练运用上述的C语言规则,就可以完成C语言入门学习的内容。

一般要掌握基本的微机原理的知识、英文阅读的能力。学习语言注意要多动手,多思考调试,还要能坚持铅改并不懈,最重要的还有兴趣。

只要同学们掌握一些方法,多读,多写,克服心理上畏难情绪,C语言是完全可以学好的并且灵活应用的。

至于看什么书,推荐几本:
1.C语言入门经典
《C语言入门经典》例子简单生活化,而且每个例子分析很细。章节安排合理,章末的例子还特别注重思路的引导,而且分析起来特别有成就感。
这本书是自学过程的一本好书。
2.C primer plus
这本书很适合希望系统学习C语言的读者,正如他的名字,是一本不错的入门和进阶的书。书中的每一个知识点都有很多生动简单的示例,并给出了相应的运行结果。总之,在槐迹看这本书的过程中,有一种一气呵成的感觉。
3.C和指针
这本书和《专家编程》《C缺陷和陷阱》可以并称C语言(进阶书)三杰。本书的部分内容更适合有C基础的人看。如ADT、递归、指针和数组的部分,书中所述的思想是国内教材所缺乏的。看完本书,能得到一个正确的C语言观。
4.C程序设计语言
难以置信的是,这样一本C语言的入门书籍,从hello world开始讲起,却在短小的篇幅里,手把手教你写了stdio.h stdlib.h
string.h当中大部分例程,实现了二分查找、快速排序、二叉树、哈希表这些重要的数据结构和算法。这本书传递着一种简单、优雅、平实和闲适。
5.C专家编程
《C专家编程》展示了最优秀的C程序员所使用的编码技巧,并专门开辟了一章对C++的基础知识进行了介绍。书中C的历史、语言特性、声明、数组、指针、链接、运行时、内存以及如何进一步学习C++等问题进行了细致的讲解和深入的分析。

J. 刚开始学C语言,要看些什么书(介绍几本)

《程序员》推荐C++ 图书三人谈

主持人:熊节(透明),《程序员》杂志编辑,C-View成员
嘉 宾:孟岩(梦魇),联想公司掌上设备事业部应用开发处任职,C-View成员。与侯捷先生合译《C++ Standard Library》一书
金尹(恶魔),上海天宇公司CTO,在《程序员》连载有“自由与繁荣的国度”系列文章

透明:“学C++用哪本书入门”,这是被问得最多的一个问题。但是哪一本书是最好的入门书?似乎很难找到答案。《C++ Primer》太厚,《Effective C++》对读者要求比较高,《Essential C++》又常常被批评为“太浅”。
其实说穿了:no silver bullet。想从一本书学会C++,那是不可能的。有朋友问我如何学C++,我会建议他先去找本数据结构书,把里面的习题全部用C++做一遍,然后再去看《Effective C++》。myan经常说“要在学习初期养成好习惯”,我对此颇不以为然。
个人认为,《Essential C++》适合作教材,《C++ Primer》适合作参考书,《Effective C++》适合作课外读物。

恶魔:很后悔当初买了《C++ Primer》。因为从我个人角度来看,它的功能效用基本是和《The C++ Programming Language》重合。当然对于入门来说,它还是很不错的。但是《C++ Primer》太厚,一来导致看书极其不方便,二来系统学习需要花比较长的时间。对于目前这个越来越快餐化的时代来说,的确有很多不适合的地方,不过可以作为初学哗高厅者乱隐的参考书。现在我以一块K3 CPU的代价把它借给了别人,希望我那位同事能够从中得到一些益处。
如果已经具备了C基础,我建议看国内的书,例如钱能的《 C++大学教程(第二版) 》。(如果没有C的基础还是看谭浩强的C语言)。这本书对C讲得还算比较清晰,有很多习题值得一做,特别是最后的struct和union两个部分。其中的一些算法比较拖沓和繁琐(比如树和链表的遍历算法),读者可以尝试修改这些例子,作为最后对C语言的一些总结测试。

梦魇:这个问题让我想起四五年前的情形。今天对于C++有一点认识的人,多半是从那几年就开始学C++了。那时根本没有品牌观念。从书店里找一本C++书,如果看着还算明白,就买下来。我记得那时候宛延闿、张国锋、麦中凡教授的书都受到很高的念滚赞誉。我个人最早的一本C++书是Greg Perry的一本书,今天想起来,其实是一本打着C++旗号的C语言教程。对我作用最大的一本书是国防科技出版社出版的一本书,书名记不得了,作者叫斯蒂芬·布莱哈。
透明:还记得以前曾批评过一本C++书,是北航出的,整本书就没有出现过class关键字。那本书,说穿了其实只是介绍了C语言和iostream库的用法,根本不能算C++。而当时我常常推荐的一本书是电子科技大学张松梅老师的C++教程。那本书,直到今天来看也没有太大的问题,唯一的缺憾就是由于年代久远,许多东西已经过时了。而对于一本技术书籍来说,“过时”是最不可接受的。
总体来说,那时使用C++的人真是在“盲人摸象”。不过这也有好处,就是对C++的很多细节能搞清楚,以后看到经典好书时比较容易理解;当然坏处就是概念不清,甚至都不知道C++和Visual C++、Borland C++到底有什么不一样。

梦魇:整个90年代,其实大部分人对于C++的认识都似是而非。一开始是等同于Borland C++,后来是等同于Visual C++和MFC。所以一般来说,打着BC和VC旗号的书卖得很好,人们觉得这就是C++。而我比较幸运,布莱哈的那本书虽然从现在的眼光来看谈不上高超,但基本路子是对的。可能是因为原书是给UNIX程序员的培训教材,所以没有让我一开始就形成“C++ == VC++”的认识。
其实一直到1996年,我们那里搞计算机的都是唯Borland C++马首是瞻的,到了VC 4.0出来,一下子格局全变了。1997年VC5推出之后,书店里MFC书铺天盖地,学MFC的人,头抬得都比别人高一些。不过现在看来,那时候大部分的MFC书都是三流货色。我曾经有一段时间认为,那一批程序员中间有不少被误导了。根本原因就是相对的封闭。

透明:我觉得一本书的价值有两方面:第一,教给你实用的技术;第二,促使你去思考。对于一本介绍VC(或者说MFC)使用方法的书,我根本不希望它能促使我有什么思考,所以我就一定要求它在技术上精益求精完美无瑕。我刚开始用VC的时候,买的第一本书就是潘爱民老师翻译的《VC技术内幕》(第四版),没有受到那些“三流货色”的误导,应该说是很幸运的。

梦魇:1999年机械工业出版社开始出版“计算机科学丛书”,其中的《Thinking in C++》第一版受到了广泛的欢迎。其实我一直不认为这本书很出色,虽然拿过一次大奖。然而我们都得承认,这本书在C++书籍领域里第一次建立了品牌观念,很多初学者开始知道,不是随便买哪一本都一样的。再往后就是2000年的《 深入浅出MFC(第二版) 》第二版,以及侯先生在《程序员》上发表的那一篇《C++/OOP大系》,加上整个大环境的变化,品牌观念深入人心,C++书籍市场终于开始逐渐与世界同步。
回想往事,我的感觉是,那个需要战战兢兢选择入门书的时代已经过去,今天的C++初学者,大可以放心地买口碑好、自己读起来思路顺畅的书,入门不再是太大的问题。还有一些程序员已经学了几年C++,但看到今天出版的一些新书,感觉比较陌生,这也不是什么问题。侯先生经常说“凡走过必留下足迹”,所谓“走弯路”,未必不是一件好事。
至于具体的推荐表,就不好一概而论了。总之在我的印象里,《Essential C++》、《C++ Primer》、钱能教授的C++教程,都不错。甚至有人一上来就看Bjarne Stroustrup的《The C++ Programming Language》,只要他喜欢,也没什么不可以。

透明:我同意你的观点。不管怎么说,编程是门实践性非常强的学问。要想对C++对象模型有深入的了解,最好的办法就是写一串程序去看结果;要想学会OOP,也只能从项目中学。对于初学者,最好的学习方法就是不停地写程序,写真正有用的程序,写到有问题的时候就去查书,于是自然就会知道哪本书好哪本书不好。不过我们的教育制度能不能让大学里的学生们有这样的学习机会,我表示怀疑。
以我的经验,学C++有两个门槛:入门和使用。完全看不懂C++,这是一个门槛,但是只要有一本合适的入门书,很快就能跨过。要想真正用上C++,却不是件很容易的事情。尤其对于学生来说,接触到的东西多是“玩具”,很难有实战的机会。所以经常看见有人问“C++到底能做什么”,这是C++学习中一个比较麻烦的问题。我们都是做了相当长时间的C++程序之后才看到一些真正经典的书,也正是因为走了相当长的弯路之后才知道这些书的经典之所在。所谓弯路,我想也是一种必须的积累。就算一开始就看《Essential C++》和《C++ Primer》,没有两三年的时间恐怕还是难有所得。

恶魔:有两句十分有道理的话,一是我大学的C语言老师说的“写程序不如说是抄程序”,另一句是一网友说的“好的设计来自借鉴,天才的设计来自剽窃”。对于我这个理性批判主义者来说,这两句话的确不太适合。但是无论从哪个角度来讲,对于初学者来说,剽窃大师的作品是通向成功的最快捷径。
我个人认为,对于C++的初学者来说,首先要确定自己专业领域内主要使用的特性的方向。因为C++的特性如此众多,初学者想贪多基本是不可能成功的。C++的编程范式基本可以分为ADT+PP、GP和OO三个方向。对于ADT+PP范式来说,初学者的主要问题不是学习C++,而是学习C的使用。对于这样的初学者,国内的几本书还是写得比较清楚,符合中国人的习惯,比如谭浩强的《C语言教程》、钱能的《C++语言大学教程》。这两本书我首推第一本,因为这一本我潜心研究了一年,这本书当中很多程序是可以剽窃的,而且可以对这些程序进行加工和提升。比如结构这一章中,它所给出的用struct来实现链表、二叉树的算法是相当蹩脚的。学习ADT+PP的初学者将这本书揣摩透以后可以尝试修改这两个程序。另外这本书的第二版稍微涉及了一些关于“类”的内容。学习ADT+PP的初学者,可以不被OO中的一些专有特性扰乱自己的思路,对于类层次扁平、无继承、无多态的程序编写是有很大好处的。

透明:你好象比较推崇国内教授写的书。现在社会上有种不好的风气:一捧就捧上天,一贬就贬下地。就好象对待谭教授的书,前几年是奉为经典,这几年又有很多人使劲批评。学C++更是有点“崇洋媚外”,总是觉得初学就应该看《Essential C++》。我看这种观点也是片面的。

恶魔:当然《Essential C++》也值得看看。但是我个人觉得这本书没有谭浩强的《C语言教程》来得好。主要原因是:第一,C++的所有特性都点到了,但是不深,看了以后会三心二意没有方向;第二,可以抄袭借鉴的例子太少。《C语言教程》中有很多有趣的问题,比如猴子吃桃、汉诺塔等等,这些例子对于刚刚涉及C/C++语言编程的人来说是学习编程很好的例子。《Essential C++》只能是前两本书看透以后,作为学习C++特性的一个过渡性的书籍。让读者真正领略到什么是C++的编程、和C编程的不同点在哪里。

透明:我发现一个很有趣的现象:初学者往往喜欢问“哪本书比较好”,这让我很是不解。这有点像一个刚学打篮球的人问“王治郅和科比谁比较厉害”。当然科比更厉害一些。但如果你是想学打篮球,这两个人都非常非常有资格教你,你跟谁学都能学得很强——关键不是在于你选哪个老师,而是在于你自己用多少功夫去学。

透明:回到原来话题。学会了C++的语法,能看懂C++代码之后,必须有些书来指导进阶(或者叫指点迷津)。我觉得《设计模式》很好,能够让读者看到一些精妙的用法。不过正如我经常说的,模式带来的麻烦和好处一样多,甚至麻烦还要更多。而且,C++本身的问题使得在C++中使用GoF模式愈加麻烦。

梦魇:《Design Patterns》这本书绝对是不可以没有的,而且中英文版都不可少。最初我看中文版,说实话看不懂,但是也不觉得人家翻译得不好,所以就想,大概是原文就很难懂,加上自己水平有限。于是总是想着再找几本patterns的书来看。后来找到几本书,口碑还不错,不过水平高下,一比就出来了,还是那本《Design Patterns》最经典,最耐看。英文版出来之后,两个版本对照看,明白多了。现在觉得,其实就设计模式来讲,把这本看明白了就很不错了,不用再花费很多心思找其他的书。我现在的包里始终夹着这本书,随身携带,有备无患。
至于说设计模式的副作用,和可能带来的弊端,我的体会也挺多。不过是这样,我们想一想,究竟什么情况下设计模式可以用得很好呢?一种是有经验丰富的人引导,比如要是Robert Martin带队,你在某个地方用错了设计模式,他就会指出来,说这里不对,将来会产生什么样的弊端。对于他来说,丰富的实践经验足以支持他进行“预测型”设计。但是大部分人没这个能力,因此我们只好走第二条路和第三条路,就是“试探型”设计和“重构型”设计。遇到一个问题,你觉得用某种模式挺合适的,就大胆地用了,成功是积累经验,发现不好,出了问题了,只好改回来,那也是积累教训。这叫做“试探型”。至于重构,应该算是最有组织、成功率最高的工程化方法。先把问题“quick and dirty”地解决了,所有的暗礁都暴露出来,然后再根据实际情况采用合适的模式优化设计。现在XP和UP都高度重视refactory,UP在Elaboration和Construction阶段都鼓励抽出专门的iterations进行重构。所以说如果组织快速的软件开发,当然比较倾向于这条路——打成功率嘛。

透明:讲到重构,我顺便说说《Refactoring》这本书的影响。从工程本身的角度来说,你所谓的“重构型设计”是没有什么问题的。但中国的开发者(也包括我在内)往往比较冲动,比较容易相信银弹的存在。曾经有那么一段时间,我在Java中尝试过了重构的方法之后,又拿到C++中去尝试。结果发现,在Java中速度非常快的重构过程,到C++中就被减慢了。究其原因,就是因为C++和Java的约束条件不同。拿着Java中成功的案例直接套C++,不失败才怪。
所以,我必须说:《Refactoring》这本书很有价值。但对于C++程序员来说,它的价值是让你思考,思考这种方法的可行性。如果一个C++程序员没有打算迁移到Java,那么我必须告诉他:《Refactoring》这本书不是让你照着它用的,甚至不是让你去相信它的。对于C++程序员,《Refactoring》全书可以放心相信的只有第13章,其他的部分,都必须非常谨慎地对待。

梦魇:我还要就“试探型”的方法多说两句,我觉得对于个人发展来讲,“试探”也是必不可少的,撞墙不可怕,高水平的人不都是撞出来的吗?你失败了一次,就知道这个模式有什么潜在的问题,下次再用,就会多看几步,像下棋似的。撞的多了,路数就出来了。
我不知道你们是否有这个感觉:用错了模式,吃了亏,再回过头去翻翻《Design Patterns》,看到人家早就指出来这个问题,不过就是那么几句话,原来看上去干巴巴的,现在觉得句句都讲到心坎上,GoF的形象马上就高大起来,还带着光环,感觉是既兴奋又懊悔。

透明:现在回头来看,我更欣赏myan推荐给我的《Designing Object-Oriented C++ Applications Using Booch Method》。这本书能够帮助C++程序员理清思路培养习惯,可惜国内没有引进。相比后来商业味浓厚的UML系列书籍,我觉得这本书对于面向对象的阐释精辟独到,至今未有能出其右者。

梦魇:刚才我们两人都说到Robert Martin,他可是我的榜样。那本1995年的《Designing Object Oriented C++ Application》,我觉得是每一个C++软件工程师都应该反复研读的书。可惜不仅国内没有引进,在国外的名气也不大。如果你觉得面向对象的那些道理你好像都明白,可就是一遇到实际问题就使不上劲,那这本书就是你的最佳导师。
提到理清思路,还有一本书不得不提,就是Andrew Koenig的《Ruminations On C++》。每个人都应该问自己,我学了这么多年的C++,究竟什么是C++最基本的设计理念?遇到问题我第一个直觉是什么?第一个试探型的解决方案应该具有那些特点?如果你不能给出明确的答案,就应该认真地去读这本书,读完了你就有了“主心骨”。

透明:插一句话,谈谈“推荐书”的问题。入门书基本上是放之四海而皆准的,所以推荐的意义也不大。而入门后的发展方向,每个人不同,这个时候就需要“高人”的指点。举个例子:我学C++的时候,myan还不认识我,所以也没有给我推荐书,我还是学过来了,所以即使你当时向我推荐了《Essential C++》或者《C++ Primer》,我也不会太感谢你;但在我认真研究OO的时候,你推荐Robert Martin那本书给我,对我帮助就特别大,而且我从别的地方也很难找到类似的推荐,所以我就很感谢你。
一个程序员,必须有framework的意识,要学会用framework,还要主动去分析framework(在这方面,《Design Patterns》能有一定的帮助)。但是,真正高质量、成气候的framework的书恐怕也就只有针对MFC的。从这个角度来说,MFC纵有千般不是,C++程序员都非常有必要先去用它、熟悉它、研究它,甚至借助《深入浅出MFC》这样的书来剖析它。不然,很难有framework的意识和感觉。
当然,另一个framework也很好,那就是STL。不管用不用MFC、STL,对这两个东西的掌握和理解都是极有帮助的。最近我又在看《深入浅出MFC》,虽然已经不用MFC编程了,但帮助是一定有的。

梦魇:MFC和STL方面,我还是比较推崇侯先生的两本书《深入浅出MFC》和《STL源码解析》。
《深入浅出MFC》这本书,名气自然是大得不得了,不过也有不少人批评。其实书也没有十全十美的,批评当然是少不了的,不过有的时候我看到有人评论这本书,把它跟Inside VC相比,真的是牛头不对马嘴。
你刚才其实说得很对,程序员应该有一点framework意识。而这本《深入浅出MFC》与其说是在讲MFC编程,不如说通篇是在拿MFC为例分析Application Framework的架构和脉络。所以无论你对于MFC本身是什么态度,这本书对每一个C++程序员都有很大的益处。

透明:是的。《VC技术内幕》会告诉你“DYNAMIC_CREATE这个宏怎么用”,《深入浅出MFC》则告诉你“DYNAMIC_CREATE这个宏是怎么实现的”。所以,如果你只需要在VC下写一些小应用程序,《深入浅出MFC》的价值并不太大;但是,如果你需要设计一个稍微大一点的东西(不一定是framework),MFC的设计思想就会有所帮助。

梦魇:另外,我觉得对于MFC也应该有一个公允的评价。过去是吹捧得天上有地下无,书店里铺天盖地都是MFC的书,搞得大家只知有MFC,不知有C++,甚至直到现在还有人问:“我是学MFC呢,还是学C++?VC++是不是比C++更高级的语言?”MFC成了一尊神像,阻碍了人们的视线。所以得把它从神坛上拉下来。这就是过去一两年有很多人,包括我在内批评MFC的一个目的。可是现在大家视野开阔了,.NET也出来了,MFC不再是神像了,少数人就开始以贬损MFC为乐了。我觉得这种态度是不对的。
什么叫好的框架?我觉得在十几年的时间能够象MFC这样保持稳定并且不断进步的框架就是好的框架。可能我们在一些具体的设计问题上有不同看法,觉得“这个地方这么设计不是更漂亮吗?”很多时候是的,但是这不重要,重要的是MFC成熟稳定、有十几年的成功经验,这是最了不起的东西。
另外一点,MFC中间包括着学习Win32 API编程的最佳资料。这是除了其framework方面之外的另一个亮点。我现在使用Win32 API开发,但是经常参考MFC的源代码,收获很大。

透明:STL方面,我对于剖析它的源代码兴趣并不大,毕竟里面源代码多是算法问题。所以,《STL源码剖析》我也只是随便翻翻就束之高阁了。我觉得这本书用来做计算机系的数据结构和算法教材不错,不知道有没有老师乐意这样做。
对于STL,我的态度一向都是“应用至上”。不过,我一直认为SGI STL本身就是一本精彩的书,一本数据结构和算法的经典参考书,同时也是泛型技术的参考书。想知道一个算法是如何实现的,看看STL源代码就行;想知道如何使用type traits,STL源代码里面也有例子。看别人写的书,总觉得隔着一层纱,有点挠不到痒处的感觉。SGI STL的代码写得非常漂亮,一个C++程序员如果不看看这本书,实在是可惜。

梦魇:至于STL,除了《STL源码解析》之外,我举贤不避亲,强烈推荐侯先生与我合译的那本《The C++ Standard Library》。这本书质量之高是无需怀疑的。我现在手边常备此书,随时查阅,对我帮助很大。

透明:C++和Java相比,最大的优势就是它没有一个专门的公司来管它,最大的弱点也是它没有一个专门的公司来管它。Java程序员在学会简单的语法之后,立刻进入SUN提供的framework,一边用这个现成的framework做实际开发,一边在开发过程中继续学习Java一些幽深的特性。而这个时候,C++程序员恐怕还在问“VC和BCB哪个好”呢。这无疑是浪费时间。

梦魇:刚才你说Java和C++的优劣,这个话题已经成了我们这个年代永不消失的声波了。我也不想再谈这个。不过有一点我得说清楚:现在我们很多用C++的人吃了不少苦头,探过脖子去看看Java,觉得它真是太可爱了,这种印象是不准确的。另外,Java也不简单,而且会越来越庞大复杂。在很多场合,Java还不具有竞争力。至于将来如何,我看有些Java爱好者也过分乐观了,似乎计算机科学界几十年解决不了的问题都可以借着Java的东风解决掉,恐怕没那么容易。

透明:那当然。我再次强调:No Silver Bullet。读书很重要,但古人说“行万里路,读万卷书”,还是把“行路”放在“读书”前面。尤其对于技术书籍,如果它不能帮我解决问题、不能给我带来非常实际的利益,那么我是不会去读它的。恶魔说得对,我们这个社会很快餐,我们这个行业尤其很快餐,我们也只能努力适应它。

阅读全文

与c程序员看什么书相关的资料

热点内容
商君治秦故事中获取了哪些信息 浏览:356
怎么戒频繁交易 浏览:918
罗氏血糖仪如何删除历史数据 浏览:453
联众不锈钢管代理厂家有哪些 浏览:513
电脑版本的交易猫是什么样 浏览:591
交易状态显示竞价交易什么意思 浏览:427
哪里有宝宝尿裤代理加盟 浏览:313
私处养护产品广告怎么拍 浏览:388
两轮车技术哪里学 浏览:907
微信怎么查在steam交易号 浏览:53
会所如何给顾客发信息 浏览:437
如何读取仪器串口数据 浏览:166
高邮华林有哪些产品 浏览:958
怎么找到重启数据里面的重点 浏览:516
阿里巴巴交易的金额去哪里了 浏览:985
痘痘可以涂抹哪些产品 浏览:985
云南蓝菲酒代理多少钱 浏览:284
定西职业技术学校在哪里 浏览:829
哪个学校的数据库卖的最全 浏览:867
司法程序需要务工证明怎么写 浏览:355