如何自学C++,写给初学者

lovesi3344 2010-02-05 11:59:57

如何自学C++,写给初学者


本人2000年开始学习程序设计,2002年开始学习C++,现在使用C++从事开发靠底层的高性能数值计算应用程序,从vc6到.net03再到vs05,也写了不少行了,虽然大家的开发方向可能与我相距较远,但我还是想把这些年来写代码的心得和如何入门告诉大家,如果您是高手,全当娱乐一笑,如果您还未入门,希望这篇文章能对您有所帮助。

我是在信息工程学院读的大学,现在叫北信科大了吧,实际上,想靠学校上课老师教就学会一门语言,是不可能的。总看到有人问学C++要先学C么的问题,个人理解,标准C89和14882C++是比较不同的两种语言,由于C没有泛型库,想写程序,一定要学好数据结构。C++则不然,除了要求掌握红黑树外,其他如链表等数据结构并不需要会实现,取而代之的是要求熟练掌握迭代器的运用。中心意思:如果你确立要学C++,不必先看C。下面还有一些问题,是我经常看到的,在这里回答一下。

问:我想学C++,要有计算机基础么?
答:基本不需要,如果您很踏实,甚至可以在身边没有电脑的情况下,先用本子练习写小段程序,当您写了一个本子的时候,再去上机编译,事半功倍。

问:学习C++,要有英文基础么?
答:如果只看书,不需要。如果上机很多,又去看msdn,则需要至少cet4的水平。

问:学习C++,要有数学基础么?
答:虽然C++本身不需要,但所学的范例较多是数学问题,大概要高中毕业的水平。

问:学C++,是自学还是去什么班好?
答:无论从哪方面来讲,都是自学好。看书学的话,至少是作者一级的人在教你,然自学即苦闷又吃力,恰逢C++十分庞大,坚持下来者恐怕不多。

问:学C++,得多长时间才能学会?所谓学会了又是什么水平?
答:至少5年。“纯”的C++语言已十分庞大,再加上环境提供厂商的类库以及各种多如牛毛的小变动,掌握已属不易,所谓5年的学会,应已可编写小规模代码,但若想解决自己使用电脑中实际所碰到的问题(例如:导出媒体播放器播放列表内的媒体文件到指定文件夹),仍然不够。

问:怎样自学?
答:最开始先集中看一阵,然后写一阵代码以便熟练所学,再看接下来的一部分。如果看不懂,反复研读,如10遍仍不会,跳过看后面的。最好用实体书学习。不要指望在一本书上学会C++。在小有成就后,可放松学习进度,不少思想是要假以时日的。

问:学C++,要看哪些书?
答:入门书这三本是必须入手并且要一起用的:C++ Primer第三版,潘爱民 张丽 译,中国电力出版社,此书作教材。C++标准程序库,侯捷 孟岩 译,华中科技大学出版社,此书是对C++ Primer的补充,讲解标准库部分。这两本书来说,“C++标准程序库”比较容易看懂,“C++ Primer第三版”则稍难。第三本书:C语言大全 第四版,赫伯特·希尔特 著,王子恢等 译,电子工业出版社,此书提供常用函数,如求平方根的sqrt(),但若用vs05编译环境的话还要看联机手册(它的crt库改写了较多接口)。不作推荐的书:Essential C++,侯捷 译,此书号称“轻薄短小,适合初学者”,但其实进度过快,比较晦涩,初学C++,用此书看不过100页。C++程序设计教程 钱能 主编,此书为国内C++大学教科书权威,但至少从我手中的版本(02年10月版)来看,已与14882标准有较大出入,并且有些吹捧面向对象思想的意味,会给人不好的暗示。C++程序设计语言 特别版,裘宗燕 译,此书不适合初学者,有几年C++经验再来反查此书,或有较大帮助。

问:谭浩强的那本“C语言程序设计”我要看么?
答:谭浩强的C为国内经典,我看到有不少学生认为自己能写出比书中例子要好的代码,便看不起此书,实在不该。此书指针那部分的讲解堪称酣畅透彻,浅显易懂。又,对编程感到困难重重而失去信心者可看此书。

问:学C++也有一段时间了,看到别人聊语言,每每仍听不懂,怎么回事?
答:隔行便隔山。人家聊JSP你当然不懂了,这没有什么。人家讲UML、XP你又不懂了,不要紧,一定要明白一个道理,便是:方法是给会者准备的,还不懂win2000框架便要写WinMain(),急功近利,急于求成,迷信速成,都是于己有害的。语言讲究,库讲究,编译器的使用还讲究,哪个看不起都不行。

问:我自学了一段时间,卡住了,怎么办?
答:不会的,C++是如此庞大,以至于你不会遇到什么东西卡住而绕不开。

其实,学习知识,各人有各自的方法,自学一路颇艰险,非大毅力者不能成。最后祝大家工作顺利,生活愉快。

...全文
18026 483 打赏 收藏 转发到动态 举报
写回复
用AI写文章
483 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jeson_Yang 2012-06-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
如何自学C++,写给初学者


本人2000年开始学习程序设计,2002年开始学习C++,现在使用C++从事开发靠底层的高性能数值计算应用程序,从vc6到.net03再到vs05,也写了不少行了,虽然大家的开发方向可能与我相距较远,但我还是想把这些年来写代码的心得和如何入门告诉大家,如果您是高手,全当娱乐一笑,如果您还未入门,希望这篇文章能对您有所帮助。

我是在信息工程学院读……
[/Quote]

学习不仅完全靠自己,一个好的老师也是很有必要的
xuehurong 2012-06-01
  • 打赏
  • 举报
回复
....这样的已经没什么意义了
zhangxun2007 2012-06-01
  • 打赏
  • 举报
回复
如果是妹妹,果断先成为好朋友!
qingcairousi 2012-06-01
  • 打赏
  • 举报
回复
最重要的,要有爱,没有爱学不了C++的。
iqy 2012-06-01
  • 打赏
  • 举报
回复
问:我想学C++,要有计算机基础么?
答:基本不需要,如果您很踏实,甚至可以在身边没有电脑的情况下,先用本子练习写小段程序,当您写了一个本子的时候,再去上机编译,事半功倍。

能用本子写一个小本子而不出错,能够编译,已经是高手了。
iEverX 2012-05-23
  • 打赏
  • 举报
回复
有些点不赞同,比如用小本子写程序,根本就是事倍功半。。
mountain310 2012-05-23
  • 打赏
  • 举报
回复
谢谢楼主及各位高人的出招~~定心了 也有动力了~~~
didijiji 2012-05-23
  • 打赏
  • 举报
回复
哈哈哈哈,有点用。
清竹小雨 2012-05-06
  • 打赏
  • 举报
回复
[Quote=引用 83 楼 的回复:]

记不得哪位C++大牛在哪本学习C++的书的前言里面说过
“用C语言1000行源码能完成的工作千万不要用C++重写!”
[/Quote]
啊哈,有些方向了,原因呢?
是不是执行效率问题?
lonky6545646 2012-05-06
  • 打赏
  • 举报
回复
感谢前辈的经验分享和解惑
Glkate 2012-05-05
  • 打赏
  • 举报
回复
帮顶。一定要有毅力,不然不行,我也不能放弃
heiyemohe 2012-05-05
  • 打赏
  • 举报
回复
现在学C语言,,,学完再学C++
zhangbinwuying 2012-04-23
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]
引用楼主 lovesi3344 的回复:

问:我想学C++,要有计算机基础么?
答:基本不需要,如果您很踏实,甚至可以在身边没有电脑的情况下,先用本子练习写小段程序,当您写了一个本子的时候,再去上机编译,事半功倍。

起码得能自己装装开发环境什么的吧?在小本子上学习编程,写了一小本子再去上机,事倍功半


问:学C++,得多长时间才能学会?……
[/Quote]

关于谭浩强的书真的特么不敢恭维。特么不懂为啥这么多人在吹捧……
___羽0 2012-04-23
  • 打赏
  • 举报
回复
谢谢楼主。
leiSniper 2012-02-21
  • 打赏
  • 举报
回复
谢谢楼主
一朵时光_bobo 2011-11-22
  • 打赏
  • 举报
回复
正在学习中啊体会到了艰难 .
dsgadhdf 2011-11-22
  • 打赏
  • 举报
回复
不错
J神 2011-07-01
  • 打赏
  • 举报
回复
努力就好
CN_zt 2011-05-06
  • 打赏
  • 举报
回复
看一看,没有发现什么
longdenghua 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 lovesi3344 的回复:]
靠 我再说一次
我这篇文章是转载的

我学C++到现在才3个多月
[/Quote]

lz发飙了
加载更多回复(424)

64,653

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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