background image

一个

C++程序员的学习经历(转贴)

 

正在上网的时候有这个念头的,所以急急忙忙找了一些学习编程的高人的感想,下次争取帖一个好的。谢谢。

我开始学

VC 时就是自己一个人在啃,也没什么人指导,当时没有条件上网,资料特别少,在书店里随便买本书就

学了,在学

VC 的过程中走了许多弯路,现在回想起来觉得做了很多无用功。看见大家在这里畅所欲言,有高手也

有新入门的

ddmm,我也来谈谈学 VC

的一点 捷径 吧,这条 捷径 纯粹走的是

C/C++的路子,不考虑学习其他语

言。(我只会

C/C++,略懂 VB 和 Java,所以对于通过其他语言来切入 VC

 

的没有体验,不置评论)

1.必须对 C/C++

 

非常熟悉

如果

C 不熟,可以看清华谭浩强的书,经典之作。(学习时间 1 到 2

 

个月,对函数、指针和链表须滚瓜烂熟)

如果

C++不熟,可以看电子工业出版社的《面向对象的程序设计于 C++教程》,张国锋写的,既讲面向对象的思

想又讲

C++的语法,是我见过的讲 C++最全最好的书,里面的例子都是精心设计的,值得好好体会。好像清华也

出过一本张国锋的,不过我没看过。(学习时间

2 到 4 个月,关键在于理解 OO 概念和 C++中的多态,对此应挥洒

 

自如)
2. 最好/应该对 Windows

 

结构相当熟悉。

如果你很牛,非要从

MFC 下手来了解 Windows 结构,当然也不是不可以,但我以为从 MFC 来学习 Windows 有雾

 

里看花的感觉,很容易陷入迷惘中,我吃过这种苦头,希望后来者不要走这条路。
如果对

Windows 结构不熟,可以看 Microsoft Press 的 Windosw95 Programing,清华翻译出版了中译本

Windows95 程序设计》,后来北大翻译出版了最新的版本。清华版的译得不错,北大版的没看过,好坏不知道。

这本书讲的是怎么样用

C 语言编写 Windows 程序,不讲什么 MFC 或 OWL 的,看过后对 Windows 能有相当清晰的

认识。(学习时间

3~6 个月,GUI 对象和消息很熟,多线程、dll

 

有一定认识)

3.以上两部为准备工作,OK 后就可以 continue 学习 VC

 

了。

VC 看 Microsoft Press 的《Inside Visual C++》清华翻译出版了中译本《Visual C++技术内幕(第

四版)》比较容易上手,看《技术内幕》一定要看清华,有一本希望出版社翻译出版的第五版技术内幕翻译的太
烂了,看希望的不如直接看英文原版。(学习时间

4 到 7

 

个月)

4. 学习 VC 是为了在 Windows 平台下做开发,所以当你对一上三步都很熟后应该进一步深入学习 Windows 体系
才能开发出高性能的

Windows 程序,你也只有在这个时候才会明白为什么说 VC 是真正程序员用的工具而 VB 只是

玩具。如果你在

finish 第三步之后已经忘记怎样在 Windows 下用 C 语言编写一个 Windows 程序,那么你应该

把第

2 步 Refresh 一下。在这一层次应该深入研究 Windows 操作系统内的进程、线程、虚拟内存等知识,还应

该了解

Windows 网络程序的设计。这一步推荐的书是 Microsoft Press 的《Advanced Windows》清华翻译

出版了此书的中译本《

Windows 高级程序设计(第三版)》,读此书时很多东西有相见恨晚的感觉。机械工业出

版社翻译出版的《

Windows 核心编程》是这本书的第四版,结构上重新组织过了,内容没有细看过,应该还可以。

网络编程有一本也是

MicrosoftPress 的,好像是叫《Windows Network Program》吧,机械工业出版社翻

译出版了此书的中译本《

Windows

 

网络编程》还不错的。

5. 往后你就看自己需要了,有兴趣可以学习 COM/DCOM/COM+,这套东西是现在 Windows

 

系统的核心架构。

VC 学 VC 两年了,自认为不是什么高手,精通更谈不上了,因为 VC 的功能实在太强大了。我只想谈一谈自己的

 

学习过程和体会,总结一下自己的编程之路。
一开始也和大家一样,对

VC、VB、DELPHI、JAVA 非常感兴趣,但是学什么好呢?毕业设计来了,导师要求要么

VB 要么用 VC,听说 VC 难学但很有用,于是狠狠心用 VC 吧。对于一个对编程一点都不感兴趣的人我想他是学

不好的,没有强烈的动力和恒心也很难掌握一门知识。怎么办呢?你总要毕业吧,这就是我的驱动力,而且编程

 

还可以挣钱:),学吧!
对于一个一点都不懂的人来说,下面的知识应该补一补:程序算法和数据结构,

C 语言的变量、数组、指针、内存、

文件、函数等等基本概念和用法,有的人说学

c++可以不用学 c,我个人认为还是从 C 学起好,因为 c++对 c 是

 

兼容的。
有了最根本的编程基础之后,我们就可以学习

c++的编程思想,就是面向对象(oo),自然对于什么是类、对

象、成员、成员函数、构造函数、析构函数、虚函数、模板,最开始可能用不上析构函数虚函数什么的,但要想
精通深入就必须掌握(当然可以以后再学)。可以说面向对象是

c++对 c 的一个最重要的扩展,而这也恰恰是我

 

们理解和深入的基础,这部分越扎实以后理解和掌握就越快。
再下来就是

MFC 了,MFC 是一个很好的封装类库,它诚如大家所说对用户屏蔽了很多实现机制,以致很多人只知

其所以然,而不知其然。要想知其所以然,当然是学习

windows 编程,熟悉 windows 的消息、窗口、api 函数。

可惜当初我只是为了快,没有深入地学,留下了现在地恶果,对

MFC 及其机制仍不甚明了。一则 MFC 已经封装好

了,二则自己觉得麻烦和累,一大堆长长的函数名和长长的函数参数把我吓晕了,大家千万不要学我

^-^。基本观

点就是如果只求使用,不学

api 也可以,如果想做得更好精通,非学不可。对于 MFC,对我帮助最大是

www.codeguru.com、程序员大本营、和 MSDN,有了这三大法宝加上自己的刻苦钻研,一定可以成为大虾。前
提是有一定的英文基础,并且已经知道如

MFC frame 及 application 的基本运行机制,对对话框、编辑框、组

合框、列表框、进度条、标签

.......等控件的基本功能都自己试过。我就是从这些开始学习 MFC 的,另外还学

了一些和数据库打叫道的东东,如

ODBC 之类的,我觉得如果仅仅是界面开发,这些东西还是可以胜任的,都是些