关于C++的学习,对一位网友的回复

这篇文章有灌水的嫌疑,毕竟其实我也只是个小菜,不应该这么公开的说C++学习方法,尤其刘未鹏老大榜样在先了。其实,我更多的是希望获得更多交流的机会,也是对自己的学习历程的回顾,学了很久的C++,对C++其实还是一知半解,寻地洞深藏遮羞中!不过这也让我想起周国平先生的一句话,我将永远困惑,也将永远行走;困惑是我的诚实,行走是我的勇敢,下面说的大部分其实都是我自己没有做到的,囧啊,呜呜,我现在大四,回顾自己的大学生活,觉得太多东西都没有把握好,并没有学精深,算是知耻而后勇,知不足而后愤吧,希望在以后的日子里,我也能以下面说到的这些来要求自己,以示共勉!另外,请看到这篇文章的大牛们也能给出一些批评建议。如果各位觉得这篇文章不合适发表,我可以删除本文~

***************************************************************************

关于对C++的学习。若你对C++的各种语法已经有了基本的了解,那么我认为有一本书是不能不看的,这就是《Effective C++》(最新是第三版,注意每一版都有较多改动)。有人称它为C++程序员的分水岭,足见其分量。关联的当然就有《More Effective C++》《Effective STL》,这些书都是以条款的形式给出,如果你对C++已经有了整体的了解,阅读起来应该是很快的。读完一本的话,你会很快喜欢上其它两本。全部完成后你会发现很多散乱的知识会联系起来,以前很多不清楚的细节会明朗起来。

The C++ Standard Library》也很好,讲述了C++标准库的各方面,可以随便看看,也可以作为参考书,比直接查C++标准要方便得多了。

你跟我说过,你现在在看《C++ Primer》,囧啊,这本书我没有看过,我看的是Bjarne Stroustrup的《The C++ Programming Language》,说实在的,我个人觉得,C++世界里真没有比BS老大更牛的人,到底人家是C++他爸嘛!静态类型识别早在cfront就有,直到大约20年后 C++98 标准订立的时候却拒绝该特性,认为实现太困难,想想吧倒是可以理解,毕竟世界上就一个 Bjarne Stroustrup,这不 C++0x 再次有了这个议题,大约过了30年,现在的专家才达到Bjarne Stroustrup cfront 当时的那个水平...当然,这也只是我的个人感觉吧。所以我还是推荐一下这本书,尽管这本书有一些骂名,比如翻译不好(那就看原版嘛,我看的就是原版),比如文字艰深,这个...我也犯难呀~呵呵,不过书读百遍,总会读懂~

当你经过了前面的学习历程之后,就可以考虑考虑《Essensial C++》,很薄,不到300页,作者是Lippman(写《C++ Primer》那位),翻译是侯捷。完全可以当小点心享用,简洁明了但同样内涵却并不单薄,对于迅速复习C++内容真的很好。

一般来说,这么几本书对个人比较熟练掌握C++语言应该是差不多了,可能对于悟性比较高的人来说,看了Bjarne Stroustrup一本《The C++ Programming Language》就足以写出很潇洒的C++程序了。但是仁者见仁,CSDN上很多老大对此都有自己的见解,最著名的可能就数刘未鹏老大了,他的博客在这里:http://blog.csdn.net/pongba/archive/2007/12/11/1930150.aspx。我觉得如果时间充裕,你完全可以翻遍刘老大的博客,一定收益不浅。

就我个人来说,如果你不满足于仅仅掌握C++编程,接下来就得做好四件事情:

  1. 博观约取。C++的好书可谓汗牛充栋,到了这个时候,你自己都会知道自己想看什么书,比如你对异常感兴趣了,你自然而然就会找到Hurb SutterExceptional C++系列,讲得确实是好!对模板痴情,自然而然就会找到《C++ Template大学啊,太美好了,时间TMD就是多,所以尽可能多读C++名著真的是很好,具体有那些书,其实你去Google一下就会有一大堆,如果这时候依然读C++抱有热情,那么看到越多的书就越会满足于个人求知的欲望;
  2. 基本的算法和数据结构知识要熟练,最好,用C++自己动手实现数据结构和数据结构,甚至可以试试做一做中等难度的ACM训练题,因为我们念大学的时候项目经验很少有的,能写代码的机会不多,这个时候写写数据结构的实现,对提高个人编程水平应该很有帮助;
  3. 你可以关心一下各种技术,不光是C++编程技巧方面,还有其它。例如,各种系统功能(多线程、进程通信、网络通信、多媒体)的编程,各种平台无关/平台相关的C++(比如STLboost),等等。比如如果对Windows编程感兴趣,MFC很值得学学,MFC骂名很多,但在我看来,MFC的确有自己的不好,但是它一直都有改进,而且在WindowsC++程序设计中的地位那真的很稳定,如果你用QT去开发Windows程序,总觉得有点非主流,呵呵。说到这一点,我觉得学C++最好尽量离开IDE,去Linux下学用g++gdbmake,个人感觉了,也不好多说什么,你可以试试,觉得不过瘾的话再折回VS或是CodeBlocksEclipseIDE也很靠谱~
  4. 那就是经常上上论坛或是写写博客和人交流交流,尤其,如果英语好,去DDJ这样的网站耐心看帖子,一定功力暴涨。关于这个我就不多说了,只是为了思维的全面性与说明的稳当性提到这一点。

对于C++, 可以这么说,你选择了C++,就是选择了与复杂性相斗争,同样的,这也意味着重大成就感的可能性。有人说C++程序员的水平比JavaC#高,这并不客观,但是学习C++并坚持到底及至终有所成的过程,你个人的学习的韧性、钻研的劲头、调试的耐心,都会有极大的提升。这个过程,就是博观而约取,厚积而薄发

说了这么多,其实大部分都是我自己个没有做到的,囧啊,呜呜,我现在大四,回顾自己的大学生活,觉得太多东西都没有把握好,并没有学精深,在以后的日子里,我也希望以上面说到的这些来要求自己,算是共勉吧!

 

你可能感兴趣的:(数据结构,编程,C++,c,windows,mfc)