5个回答
展开全部
坊间流传的错误的C++学习方法一抓就是一大把。我自己在学习C++的过程中也走了许多弯路,浪费了不少时间。
为什么会存在这么多错误认识?原因主要有三个,一是C++语言的细节太多。二是一些著名的C++书籍总在(不管有意还是无意)暗示语言细节的重要性和有趣。三是现代C++库的开发哲学必须用到一些犄角旮旯的语言细节(但注意,是库设计,不是日常编程)。这些共同塑造了C++社群的整体心态和哲学。
单是第一条还未必能够成气候,其它语言的细节也不少(尽管比起C++起来还是小巫见大巫),就拿javascript来说,作用域规则,名字查找,closure,for/in,这些都是细节,而且其中还有违反直觉的。但许多动态语言的程序员的理念我猜大约是学到哪用到哪罢。但C++就不一样了,学C++之人有一种类似于被暗示的潜在心态,就是一定要先把语言核心基本上吃透了才能下手写出漂亮的程序。这首先就错了。这个意识形成的原因在第二点,C++书籍。市面上的C++书籍不计其数,但有一个共同的缺点,就是讲语言细节的书太多——《C++ gotchas》,《Effective C++》,《More Effective C++》,但无可厚非的是,C++是这样一门语言:要拿它满足现代编程理念的需求,尤其是C++库开发的需求,还必须得关注语言细节,乃至于在C++中利用语言细节已经成了一门学问。比如C++模板在设计之初根本没有想到模板元编程这回事,更没想到C++模板系统是图灵完备的,这也就导致了《Modern C++ Design》和《C++ Template Metaprogramming》的惊世骇俗。这些技术的出现为什么惊世骇俗,打个比方,就好比是一块大家都认为已经熟悉无比,再无秘密可言的土地上,突然某天有人挖到原来地下还蕴藏着最丰富的石油。在这之前的C++虽然也有一些细节,但也还算容易掌握,那可是C++程序员们的happy old times,因为C++的一切都一览无余,everything is figured out。然而《Modern C++ Design》的出世告诉人们,“瞧,还有多少细节你们没有掌握啊。”于是C++程序员们久违的激情被重燃起来,奋不顾身的踏入细节的沼泽中。尤其是,模板编程将C++的细节进一步挖掘到了极致——我们干嘛关心涉及类对象的隐式转换的优先级高低?看看boost::is_base_of就可以知道有多诡异了。但最大的问题还在于,对于这些细节的关注还真有它合适的理由:我们要开发现代模板库,要开发active library,就必须动用模板编程技术,要动用模板编程技术,就必须利用语言的犄角旮旯,enable_if,type_traits,甚至连早就古井无波的C宏也在乱世中重生,看看boost::preprocessor有多诡异就知道了,连C宏的图灵完备性(预编译期的)都被挖掘出来了。为什么要做这些?好玩?标榜?都不是,开发库的实际需求。但这也正是最大的悲哀了。在boost里面因实际需求而动用语言细节最终居然能神奇的完成任务的最好教材就是boost::foreach,这个小设施对语言细节的发掘达到了惊天地泣鬼神的地步,不信你先试着自己去看看它的源代码,再看看作者介绍它的文章吧。而boost::typeof也不甘其后——C++语言里面有太多被“发现”而不是被“发明”的技术。难道最初无意设置这些语言规则的家伙们都是oracles?
因为没有variadic templates,人们用宏加上缺省模板参数来实现类似效果。因为没有concepts,人们用模板加上析构函数的细节来完成类似工作。因为没有typeof,人们用模板元编程和宏加上无尽的细节来实现目标… C++开发者们的DIY精神不可谓不强。
然而,如果仅仅是因为要开发优秀的库,那么涉及这些细节都还是情有可原的,至少在C++09出现并且编译器厂商跟上之前,这些都还能说是不得已而为之。但我们广大的C++程序员呢?大众是容易被误导的,我也曾经是。以为掌握了更多的语言细节就更牛,但实际却是那些语言细节十有八九是平时编程用都用不到的。C++中众多的细节虽然在库设计者手里面有其用武之地,但普通程序员则根本无需过多关注,尤其是没有实际动机的关注。一般性的编码实践准则,以及基本的编程能力和基本功,乃至基本的程序设计理论以及算法设计。才是真正需要花时间掌握的东西。
学习最佳编码实践比学习C++更重要。看优秀的代码也比埋头用差劲的编码方式写垃圾代码要有效。直接、清晰、明了、KISS地表达意图比玩编码花招要重要…
呵呵……在这里给你一些建议:
1、学会自学
2、把谭浩强的那本书仔细看完了
3、在一边看书时要一边上机练习
4、树立信心,要相信你一定能学好的
5、多问别人,多向别人请教
6、遇到程序,一定要先独立思考,实在想不痛了,在去百度找找别人的代码;
下面给你一些参考资料:
《C++ Primer》
《Windows核心编程》
《应用程序调试技术》
面向对象开发设计方面的书籍
为什么会存在这么多错误认识?原因主要有三个,一是C++语言的细节太多。二是一些著名的C++书籍总在(不管有意还是无意)暗示语言细节的重要性和有趣。三是现代C++库的开发哲学必须用到一些犄角旮旯的语言细节(但注意,是库设计,不是日常编程)。这些共同塑造了C++社群的整体心态和哲学。
单是第一条还未必能够成气候,其它语言的细节也不少(尽管比起C++起来还是小巫见大巫),就拿javascript来说,作用域规则,名字查找,closure,for/in,这些都是细节,而且其中还有违反直觉的。但许多动态语言的程序员的理念我猜大约是学到哪用到哪罢。但C++就不一样了,学C++之人有一种类似于被暗示的潜在心态,就是一定要先把语言核心基本上吃透了才能下手写出漂亮的程序。这首先就错了。这个意识形成的原因在第二点,C++书籍。市面上的C++书籍不计其数,但有一个共同的缺点,就是讲语言细节的书太多——《C++ gotchas》,《Effective C++》,《More Effective C++》,但无可厚非的是,C++是这样一门语言:要拿它满足现代编程理念的需求,尤其是C++库开发的需求,还必须得关注语言细节,乃至于在C++中利用语言细节已经成了一门学问。比如C++模板在设计之初根本没有想到模板元编程这回事,更没想到C++模板系统是图灵完备的,这也就导致了《Modern C++ Design》和《C++ Template Metaprogramming》的惊世骇俗。这些技术的出现为什么惊世骇俗,打个比方,就好比是一块大家都认为已经熟悉无比,再无秘密可言的土地上,突然某天有人挖到原来地下还蕴藏着最丰富的石油。在这之前的C++虽然也有一些细节,但也还算容易掌握,那可是C++程序员们的happy old times,因为C++的一切都一览无余,everything is figured out。然而《Modern C++ Design》的出世告诉人们,“瞧,还有多少细节你们没有掌握啊。”于是C++程序员们久违的激情被重燃起来,奋不顾身的踏入细节的沼泽中。尤其是,模板编程将C++的细节进一步挖掘到了极致——我们干嘛关心涉及类对象的隐式转换的优先级高低?看看boost::is_base_of就可以知道有多诡异了。但最大的问题还在于,对于这些细节的关注还真有它合适的理由:我们要开发现代模板库,要开发active library,就必须动用模板编程技术,要动用模板编程技术,就必须利用语言的犄角旮旯,enable_if,type_traits,甚至连早就古井无波的C宏也在乱世中重生,看看boost::preprocessor有多诡异就知道了,连C宏的图灵完备性(预编译期的)都被挖掘出来了。为什么要做这些?好玩?标榜?都不是,开发库的实际需求。但这也正是最大的悲哀了。在boost里面因实际需求而动用语言细节最终居然能神奇的完成任务的最好教材就是boost::foreach,这个小设施对语言细节的发掘达到了惊天地泣鬼神的地步,不信你先试着自己去看看它的源代码,再看看作者介绍它的文章吧。而boost::typeof也不甘其后——C++语言里面有太多被“发现”而不是被“发明”的技术。难道最初无意设置这些语言规则的家伙们都是oracles?
因为没有variadic templates,人们用宏加上缺省模板参数来实现类似效果。因为没有concepts,人们用模板加上析构函数的细节来完成类似工作。因为没有typeof,人们用模板元编程和宏加上无尽的细节来实现目标… C++开发者们的DIY精神不可谓不强。
然而,如果仅仅是因为要开发优秀的库,那么涉及这些细节都还是情有可原的,至少在C++09出现并且编译器厂商跟上之前,这些都还能说是不得已而为之。但我们广大的C++程序员呢?大众是容易被误导的,我也曾经是。以为掌握了更多的语言细节就更牛,但实际却是那些语言细节十有八九是平时编程用都用不到的。C++中众多的细节虽然在库设计者手里面有其用武之地,但普通程序员则根本无需过多关注,尤其是没有实际动机的关注。一般性的编码实践准则,以及基本的编程能力和基本功,乃至基本的程序设计理论以及算法设计。才是真正需要花时间掌握的东西。
学习最佳编码实践比学习C++更重要。看优秀的代码也比埋头用差劲的编码方式写垃圾代码要有效。直接、清晰、明了、KISS地表达意图比玩编码花招要重要…
呵呵……在这里给你一些建议:
1、学会自学
2、把谭浩强的那本书仔细看完了
3、在一边看书时要一边上机练习
4、树立信心,要相信你一定能学好的
5、多问别人,多向别人请教
6、遇到程序,一定要先独立思考,实在想不痛了,在去百度找找别人的代码;
下面给你一些参考资料:
《C++ Primer》
《Windows核心编程》
《应用程序调试技术》
面向对象开发设计方面的书籍
展开全部
楼主要是初学者最好先学习c语言,c语言是基础,等楼主把c语言学好,再学习其他语言就很容易,很轻松啦!!!!
俺看的书是清华大学出版的,谭浩强教授著作,自己觉得还可以吧,很基础,等楼主有了一定的基础后可以再看些,高级一点的用法!!!!
关于怎么看书的问题;有点自己的看法(针对于c语言);
首先对于初学者来说,刚开始看书的时候一定是迷茫的,不知道书上讲的是什么东西(俺刚开始就是这样的),但慢慢的俺适应过来了,俺从第一章认真的看,把不会的都做上标记,要是讲的是后面的内容就先放一放,记住用法就可以啦,等学到后面再回过来看看!!然后每看完一章就把后面的习题,自己动手编一编,要并把每一题都搞懂,搞会,理解。有时候一个小小的错误就困扰俺半天,
然后自己实在解决不了就找老师或问同学直到自己搞会!!就这样坚持一段时间,你就会发现其实编程很好玩的。但对于不同的人来说是不一样的,只有你发现其中的乐趣,每编完一段代码能找到无比的乐趣的时候,你就喜欢编程啦,只有如此你才有动力,有毅力去坚持下来,成为编程高手!!!
记住要想成为高手不动手是不行!
好运哦!!!
俺看的书是清华大学出版的,谭浩强教授著作,自己觉得还可以吧,很基础,等楼主有了一定的基础后可以再看些,高级一点的用法!!!!
关于怎么看书的问题;有点自己的看法(针对于c语言);
首先对于初学者来说,刚开始看书的时候一定是迷茫的,不知道书上讲的是什么东西(俺刚开始就是这样的),但慢慢的俺适应过来了,俺从第一章认真的看,把不会的都做上标记,要是讲的是后面的内容就先放一放,记住用法就可以啦,等学到后面再回过来看看!!然后每看完一章就把后面的习题,自己动手编一编,要并把每一题都搞懂,搞会,理解。有时候一个小小的错误就困扰俺半天,
然后自己实在解决不了就找老师或问同学直到自己搞会!!就这样坚持一段时间,你就会发现其实编程很好玩的。但对于不同的人来说是不一样的,只有你发现其中的乐趣,每编完一段代码能找到无比的乐趣的时候,你就喜欢编程啦,只有如此你才有动力,有毅力去坚持下来,成为编程高手!!!
记住要想成为高手不动手是不行!
好运哦!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
学习C++有C的基础更好,没有的话也不要担心,因为二者的思路是不一样的,学好C++已经掌握了所有语言的90%,给你两个网址,一个是视频教学站,一个是电子书全集,祝你好好学习天天向上,写程序要多练,熟能生巧。网址的内容比较全,希望能够采纳:视频教学:http://www.enet.com.cn/eschool/video/c++/
电子书:http://bbs.ghtt.net/thread-83825-1-6.html
电子书:http://bbs.ghtt.net/thread-83825-1-6.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
弄个电脑,多练!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-07-26
展开全部
开始上机做题,做算法
然后做软件,做项目
然后做软件,做项目
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询