C++未眠夜----我学习C++的心路历程

amstrongest 2003-05-14 11:17:48
加精
(一)

曾经因为自己的一些帖子在网上引起了大家对C++学习和使用的讨论,再回想起自己接触C++三年多,一年前鼓足勇气重新开始再次学习的情景,现在的我心中多了几份感慨,更多的是觉得自己学习的过程颇具普遍性,几次想把自己的一些心得写下来,对自己算是个总结和回顾,对别人即使谈不上帮助但相信也能算是个学习C++的案例分析吧。但开始几次提笔总是过于追求完美,想把所有的东西都写下来,但几次提笔和几次放弃后,我终于打消了“完美”的这个想法,等一下还要和自己女朋友打电话,就这一个小时内,能说多少算多少吧,毕竟我是说出来写下来了。

接触C++是在99年,那个时候自己已经有一些C语言的基础了,刚开始会用的关键字比起C来说也许只多了Class吧,那个时候在学校,也学了VC++,写了几个很简单的游戏程序,然后就因为很多琐事没有再在C++上有更多的深入,这也是我现在非常遗憾的事情,也许那个时候我能够投入进去,现在应该是能颇有小成了。

02年开始了一个新的里程,我自己有充足的来支配时间。就在那一年的暑假,开始了新的C++学习,我知道我以前的基础对于学习C++来说,几乎不会有什么更大的帮助,所以我选择了重新开始,从IF….ELSE这样的语法开始。选择的第一本书是好友友情赠送的《C++ PRIMER》,当时我只是看了不到三天,我就没有继续看了,我知道这本书非常不错,但是肯定不适合当时的我,因为从一开始就有过多的东西给我困惑,类,模板,重载……,这样东西几乎让我放弃学习C++,因为我那个时候觉得自己C还是有一定功力的,就把C搞透对我来说那个时候也是个不错的选择,但毕竟C的内涵无法让我有更多的激情,重复的东西我向来就不喜欢。然后我开始考虑++这个两种语言唯一的标示区别到底意味和蕴涵着什么?同时我开始考虑到底程序设计语言是什么?随后我在图书馆借了本书《程序设计语言的概念和实现》,无论别人如何看待这本书让我明白了很多,因为这本书最大的特点是抽象出了现代程序设计语言的各种语义和其中蕴涵的思想,让我对语言本身这个概念有了更深刻的认识,让我建立去了各种语言自身的不同的语法都代表实现一种对于所有语言都共有的语义,而一个富有逻辑的语义系列却反映出了更一般的程序设计思想。在有了这个概念后,我接触到了《C++设计与演化》这本书,在学习C++过程中这本书对我的帮助是最大的,这本书让我明白了C++的设计理念和各种语言设施所代表的实现语义,既各种纷繁的C++语言特性都是为了实现某种功能并且在不违反C++设计哲学基础上建立起来的。这样的对于C++的宏观基础,让我在以后的学习日子里受益非浅,而《C++设计与演化》这本书我也同时具有中英两种版本,每当我对很多关于C++特性困惑的时候我都会把英文版(随便炫耀一下,这本书上有B.S的亲笔签名:))拿出来,再好好的看看。就象前阵子对于C++的学习,可谓讨论颇多,我自己也再次把这本书拿出来,评价自己所持有的观点是否正确。从此我认为自己算是走入了学习C++正确道路。

10月B.S来到中国,那个时候的我对于C++可以说只是个完全初学者(呵呵,给大家举个例子,那个时候我在杭州碰到了cber,他开始告诉我他的网名,我却说你的姓名是什么?后来他写下他的名字和联系方式我却还不知道我对面站着的是个C++顶尖高手,幸亏那个时候的我还和他合影了一张相片,这算是我比较明智的地方吧,至少没有留下遗憾。)我虽然是个初学者,但我不认为我应该错过这次和大师亲密接触的机会(尤其是在反复拜读过他的书和大部分论文后),自费来到杭州(其实也花了不少那里同学的钱:))听了B.S在浙大的报告,我很早就去了,坐在第一排,整个报告会也是我第一个问问题,回想那个时候我的问题多少显的幼稚,但我告诉自己无论自己现在怎么样,这样的机会一辈子也许不会有了,所以我始终保持了十分积极,B.S的答复十分详细以至与我到后面就基本处于假听的状态:》但B.S的大师风范却让我颠倒,从此对于C++的学习我也不再功利。

学习就是积累,期间我看过《C++编程思想》,又对C++有了更感性的了解,三个月后再次拿出《C++ PIRMER》,这个时候我已经能非常明白LIPPMAN这本经典大作的巧妙用心了,它绝对不是给初学者看的,但对于入门后完全的学习和理解C++效果却十分明显,从书的一开始就直接进入C++的主题,前面五章都用类设计一个数据结构,让读者完全明白了各种用户定义类型所代表的抽象能力,然后直接进入第六章标准库中的容器类,这样的设计让读者十分清楚的建立容器和类这两个C++中十分重要的概念,之后的学习自然是非常富有满足感。以前学习编程的经验告诉我,写程序才是学习的中心,所以并且我把《C++ PRIMER》中的大部分代码都调试通过了,样例的代码连贯性也是这本书的最大的特点,而另外一大特点就是代码没有一个是可以直接通过的,都需要自己的调试,在调试这样的代码过程中更加深了我多C++的认识。不到两个月的时间就把《C++ PRIMER》初看了一遍,加之在CSDN上面和大家的交流,感觉已经建立起了对C++的完整的基本认识。

没有看过《C++程序设计语言》,算是学过C++吗?在我眼里,如果连语言的创作者的书都没有读过,如何去理解这本语言?去年12月我花了整整一个月把这本书好好的看了两遍,唯一的感觉是这本书才是真正有资格称为《C++编程思想》的。书和《C++ PRIMER》是完全的不同风格,后者告诉你的是完整C++的语法和其支持的语义。而前者是真正告诉你如何去用C++思考问题和编写符合C++设计理念的代码。你能明白C++的设计理念极其理念下的程序设计思路和代码编写规范。到今年元旦,感觉自己比起当初已经是进步不小,所以没有继续看书,而是在寒假看了几个大点规模的C++程序源代码。

之后,我也读了一些C++大家的作品,在这里需要提出来的是《C++标准程序库》和《C++沉思录》,前者写作方式通俗易懂,但全书内容却十分丰富,对于学习标准库可以说是最佳表现的作品。而后者,阅读感觉和《C++程序设计语言》一样,思想性非常强,读这样的书很累,脑子必须一直思考问题,思考作者里面提出的问题和他提出的解决方式。这本书最大的特点是非常直接的把C++语言的核心暴露出来-----三种抽象模型和极其语言设施本身对这三种抽象模型的支持。而《C++沉思录》给我的更深层思考是什么才是运用C++最合理的方式,这也是后来我发帖说明自己对于C++的学习和使用的一些见解的原始思想来源。

再后来,自己慢慢的用C++实现了一些小程序,有的是书本上的,有的是自己想的,写程序和调试的过程给我的感觉就是烦恼和满足的交替过程也许就是这样的反复过程才是程序员追求的。文章至此,多数记载了自己的历程,对很多看到这里的读者来说相信并没有什么帮助,下面我非常直接的说出自己的学习C++感受,从前面我的经历大家都可以看的出来我不是什么高手,但我保证我下面写的东西对于初学C++的是十分有帮助的,毕竟我刚刚走过那一段时的灰暗日子。


...全文
858 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
贼野 2010-06-05
  • 打赏
  • 举报
回复
有些感触 谢谢分享~~~
yeyumin89 2010-06-05
  • 打赏
  • 举报
回复
看来我的路程还很遥远 对于一个学的还不深的学者 课外读物我想从essential C++开始看起 这样合适吗
swuxd 2010-06-04
  • 打赏
  • 举报
回复
UP!
ybco 2003-05-15
  • 打赏
  • 举报
回复
不愧是社设体会, 很有道理!!!

“花了整整一个月把这本书好好的看了***两遍***” 老兄这速度也特快了点!
amstrongest 2003-05-15
  • 打赏
  • 举报
回复
对不起,刚才只发了一部分:》

完整的:

http://expert.csdn.net/Expert/topic/1785/1785249.xml?temp=.6502191
alan118 2003-05-15
  • 打赏
  • 举报
回复
hehe
support
merlinran 2003-05-14
  • 打赏
  • 举报
回复
再根据自己的经历,给各位C++学习者提个醒:请尽快转向对OO思想的全面理解,比如设计模式、对象原理(www.objectmenter.com上的文章特别有用,www.c-view.org上也有不少翻译)等。对具体应用领域也不要忘了,光会C++,对技术领域没有深刻的理解,也是做不了程序了。

一句话,学习C++,但不要崇拜它。高手都是经过多年的淫浸,不要光看到他们会C++,他们会的别的东西更重要。

其实我也是此中新人,但这点浅薄的理解,还是正确的,因为是自己的教训。
THEBEST 2003-05-14
  • 打赏
  • 举报
回复
我想对我有一定的启发!

我可能就是你三年前的你一样的情况!

不过可能因为现在的我没有你三年前那么厉害点!

因为我还没有写过什么大一点的C程序所以.......

一些C++的演讲让我想去接触它!所以----让我有如此的冲动!

但我还是想把C学实一点!再去世学C++!

不知道有没有什么建议?
lezi1022 2003-05-14
  • 打赏
  • 举报
回复
支持!
偶才接触c++2个月,没什么时间看!
学校还有许多基础颗要上!
烦死了,有些课都不知上了有什么用!
merlinran 2003-05-14
  • 打赏
  • 举报
回复
呵呵。我和这位老兄的经历可是差不多。也是二度学习C++,也是2002年重拾。不过我就没有机会和大师接触了。上次gigix回重庆,也没能见成面。

现在开始以程序员作为职业了,才发现自己自学6年,最大的一个遗憾:没有写多少程序。理论是掌握了不少,真正写起程序来,就又不一样了。看来amstrongest老兄还是比较明智。

希望继续和大家一起,不断地努力。C++只是小小的一个阶梯,我们需要学的东西还多着呢。
chinajiji 2003-05-14
  • 打赏
  • 举报
回复
amstrongest 真是大手笔啊!
lifanxi 2003-05-14
  • 打赏
  • 举报
回复
支持一下!
hongyanzaiyun 2003-05-14
  • 打赏
  • 举报
回复
非常好
来顶顶
我正在学c++
将继续努力
向你和学习
hddhddhdd 2003-05-14
  • 打赏
  • 举报
回复
收藏

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧