Programming 版 (精华区)

发信人: Scorpion (Generic<Programming>), 信区: Programming
标  题: [FAQ] C++ 书籍导读(1) - 引言 (zz)
发信站: 哈工大紫丁香 (2002年11月19日19:45:45 星期二), 站内信件

标  题: [FAQ] C++ 书籍导读(1) - 引言
发信站: BBS 水木清华站 (Wed Oct  9 10:12:32 2002), 站内信件

[FAQ] C++ 书籍导读(1) - 引言

文本为水木清华BBS C++ 讨论区所作。欢迎转载,转载时请保留完整的标题
和作者信息。如需修改本文请致函:exbluesea@hotmail.com。作者 exbluesea。

一直承诺为这个版的 C++初学者以及其他感兴趣的读者写这篇东西,深感困
难。一方面,我不可能通读所有的著作;另一方面,去 兰壑 位大师的著作总是
心感不安。好在可以换一个角度,从一个学习者、消费者的需要出发,来看看选
择书籍过程中所需要考虑的问题。

很多的作者和大部分出版商都会声称自己的书适合你,甚至适合从初学者到
高级读者的所有人群,尽管理由可以头头是道,遗憾的是这是不可能的。不过本
文的观点也只代表一家之言,任何事情都不能绝对化,因此仅仅作为参考。

要想选择一本适合自己读的书,第一步最好是要对你自己的情况以及 C++本
身有所了解。这听上去好像是要取锁在屋里的钥匙。不过,如果你不认识钥匙是
什么样子的,即使你进了屋子也白搭。

学前动员

在动员之前,我还是想泼一下冷水。C++ 可是目前大多数通用编程语言中最
难学的一个。如果应付一时只需或希望有很快的上手,Visual Basic、Java可能
会是更好的选择。掌握他们也很可以在公司找到差使,甚至如果你看些资料,满
口英文,还可以混到一个不错的职位。

至于 C++和其他语言的比较,我们准备另出 FAQ。我只想说的是,C++ 像一
个健壮和智慧的男子,学习和掌握他,你可以像他一样健壮和智慧。

学前准备

初学者的情况会比较复杂,知识掌握的程度参差不齐。我认为在学习一门计
算机语言之前,特别是你如果要学习 C++的话,应当对计算机的基础知识有所了
解,包括 CPU、指令系统、存储器、虚拟存储器、二进制与十六进制数字、操作
系统等。这些知识也可以随 C++的学习而渐进,但是不掌握这些知识对运用 C++
会有很大的障碍。特别是那些没有接触过编程的人,要特别注意这一点。

另外,应该清楚编一个完整的程序实际上要和四个东西打交道: 1、语言本
身; 2、语言的开发工具; 3、操作系统的应用程序接口(API);  4、应用领域
的应用程序接口。例如,编写一个收取邮件的程序,我们可以完整地描述为:

我“用 C++ 语言”“使用 Microsoft Visual C++ 7.0开发工具”
“在 Microsoft Win32平台(NT/2000/xp)上”“使用Winsock API” 开发一个邮
件收取程序。

C++ 是一个编译语言,就是说,书写的 C++源程序,需要经过编译器等工具
进行编译、连接,变成操作系统能够使用的可执行文件,程序才能运行。常见的
编译器包括Windows 下常用的 Microsoft C++,以及 Unix/Linux 下常用的g++;
源程序编辑器、编译器、连接调试工具经常组合在一起形成一个产品,提供更方
便的开发环境(IDE),例如 Microsoft Visual C++ 和 Dev C++等。

学习 C++还需要了解常用数据结构的概念,包括向量、队列、表、树,以及
时间复杂度、空间复杂度等,因为C++ 的标准库就会经常和这些东西打交道。

C++ 从发明至今已经有十几年的历史,可以说历史上大约有两次 C++的市场
高峰,一个是 C++面世不久,Microsoft/Borland 推出了自己的 C++产品,特别
是大家熟知的TC/BC++ 3.x;另一个高峰就是 1998年 C++的ANSI标准通过后直到
今天,C++ 的应用得到空前的推广和普及。我要学习的现代 C++就是指符合ANSI
标准的 C++,而不是早期的 C++。

学习步骤

学习C++ 本身大致分为 5 个步骤:

不管 C 语言的 C90 版本如何,我们仍然可以说,C++ 的单句语法是基本继
承了 C 的单句语法。学习 C++ 的第一步是掌握单句语法,包括变量、表达式、
条件转移、循环语句、指针等;

第二步是学习 C++的面向对象的抽象机制,包括类、类的派生和继承、多态
等。早期的 C++ 大致就是这些了;

第三步是学习 C++的泛型编程的抽象机制,包括类和函数的模板。这个是早
期 C++所不具有或不完备的;

第四步是学习 C++标准模板库(STL) 的使用。把库提高到语言的高度,说明
了STL 的重要程度。这个是前人经验的总结,熟练使用 STL,实际上能够把编程
的效率提高一个档次;

第五步可以穿插在上述四个步骤中,就是学习和掌握 C++的高级特性,包括
异常、运行时刻类型机制、操作系统API的使用、线程和进程以及其他使用技巧。

学习过程

初学者本身的情况实际上就是学习的起点;

还应该为自己设立一个目标,至少是一个里程碑,是希望对 C++有所了解呢,
还是希望成为一个 C++高手;以及希望在哪些方面有所特长?

有了起点和目标,决定学习时间长短的就是你的能力和付出的努力了。大致
的说,学过其他编程语言的,粗粗学完第二步大约只需要1-2个月,即可上手甚
至编写一些复杂的东西,而比较精细和完整地掌握大部分东西,可能需要至少一
年时间甚至更长。

弹性之大完全是因为每个人的学习情况完全不同,格外的努力和聪明、格外
的懒散和笨拙,对学习时间都和结果都影响很大。

书籍介绍

随后的书籍介绍大致会按照:书籍本身介绍的摘录、大致评价、适用者以及
比较、采购等几个方面来进行。新书会层出不穷,本系列也随之更新。


--

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 211.93.35.162]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.435毫秒