以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 编程心得 』   (http://bbs.xml.org.cn/list.asp?boardid=42)
----  如何自学C++,写给初学者  (http://bbs.xml.org.cn/dispbbs.asp?boardid=42&rootid=&id=54588)


--  作者:goodtolove001
--  发布时间:10/29/2007 3:18:00 PM

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

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


--  作者:goodtolove001
--  发布时间:10/29/2007 3:18:00 PM

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

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

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

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


--  作者:goodtolove001
--  发布时间:10/29/2007 3:19:00 PM

--  
问:学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++经验再来反查此书,或有较大帮助。


--  作者:goodtolove001
--  发布时间:10/29/2007 3:19:00 PM

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

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

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

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


--  作者:hocker
--  发布时间:1/6/2008 1:50:00 PM

--  
good
--  作者:zhenzixiong
--  发布时间:1/4/2009 8:56:00 PM

--  
不错,很好的总结!
--  作者:zb1201
--  发布时间:3/6/2009 4:45:00 PM

--  
谢谢楼主,初学者受教了
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
5,467.773ms