一个
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 之类的,我觉得如果仅仅是界面开发,这些东西还是可以胜任的,都是些