C/C++初学攻略
最近有朋友问我C++(or C)怎么入门,其实这个还真不是很好回答的,想了下就写下这篇博文以说下我自己的学习路程吧!
正儿八经的,其实我觉得自己也学得不咋地,不管是C还是C++都是如此的强大,要真正的说精通C++的,我觉得至少得花好几年的时间吧。我是大学里边才接触到计算机语言的(现大二),学校课程安排是大学二年级才开始学习C++的,上手就是C++,还真有点惊讶,听其他朋友说都是先学习C,然后再学习C++的,当时就觉得,看来我们学校对我们挺有信心嘛(心中美滋滋的)。
------------------------------------------------------------------------------------------进入正题啦
呀,这一不小心就偏了。(平时思想很跳跃,见谅)
接下来,我就说说从我开始学习C++开始谈吧,当然C语言也差不多,具体的就是C++有面向对象方面的知识,但对于初学者来说,本文讲解的内容相差不大,但如果你想学得更深入的话,就我自己的观点来看,C和C++差别还真不是一般的大,不管是编程思想还是具体应用实现,我觉得真的把C和C++分开还是比较好,当然现在就是分开的(不然怎么叫C语言、C++语言呢,你说是吧)
态度决定一切
对于初学者来说,首先应该有一个积极的学习态度(这个很重要)。毕竟学计算机可是一门苦修(我是这么认为的,哈哈哈),哎呀,刚开始怎么就说这气氛,其实吧,什么都有两面性,当你认真投入学习,你会发现,这真的是一片新天地,时刻关注前沿,学习技术,不知不觉自己连聊天内容都不一样了,吹牛也有说的拉(哈哈哈,开玩笑)
教材很重要
你得需要一本或者几本学习教材。我这里推荐呢还是希望你们用大学里边正在用的教材,具体的书籍名称呢,我就不给你说啦,(反正我用的是《C++程序设计(第3版)》 谭浩强),当然你拥有了书还不完全够哦。这本书主要是学习语法等基础知识,真正的能力还是得实战中学习,建议一边学习一边做书上的程序,自己想些或者网上搜些程序来写,在学习期间,你若没有编写几百行代码的程序的经验,你谈何学习呢。当然,当你学习到后期,也就是基础知识学得差不多了后,你就应该尝试上千行代码的程序了(记得我第一次写[通讯录管理系统](http://download.csdn.net/detail/chensanwa/9867525)写了6个小时六百多行代码,[银行管理系统](http://download.csdn.net/detail/chensanwa/9866922)用面向对象编程,编写+调试总共用了两天的时间一千三百行左右的代码,还记得那时我们正放五一)(大家也可以关注下我的CSDN哦!!!),当你写了这种大型点的程序并正确运行,测试成功后,你心中那滋味,就跟刚耍了女朋友一样,不信你试试!
视频学习不可少
建议一边学习书本知识,一边看视频学习。在课堂或者是自己学习C++的时候,加上在网上看视频学习,效率会高很多,高到自己都不敢想象。我记得当时我学习的时候,上课都认真的听讲的(我们老师讲得很好,知识点都讲得很细,挺不错的老师,为老师点赞),然后自己回寝室有时间就看[慕课网](http://www.imooc.com/)上的视频教学,(额,这里打个广告拉,见谅),不过还真的有必要推荐各位看下,我看这个视频学到了很多很多的知识,当然你得先自己学习过后,再看上边的视频,我看都是加速看的,主要是体验那种和老师不一样的讲课思路,对同样的知识,不同的讲解,这真的学得很透彻也很有趣,然后再从整体上把握知识体系。当然,其他的很多教学网站上的视频也相当不错,我看过的还有[网易云课堂-大一计算机入门课程](http://study.163.com/series/1001245003.htm),这个也是相当不错的,上边都是名校名师讲解。至于其他网站的呢,就等你自己去发现了,我就不一一列举了(学计算机的就是要有强烈的探索和求知欲望哟)
实践吧,少年
到了这里,其实你应该就有了相当不错的基础知识了,现在你需要提高下你自己的编程能力啦。首先,你需要提高下你自己编程小程序的能力,因为小程序考验的才是真正的编程能力,大程序我觉得考验的主要是逻辑方面吧,当然逻辑过后就是编程了(说明下,我这里说的大小之分是以1000行代码为划分的啦,只是为了说明问题,还望不要专牛角尖哦)。推荐你网上搜索下一些刷题的网站,当然,对于初学者来说呢,我建议就到一些入门级的OJ网站就行了,当然很多学校都有自己的OJ,我当时是在[C语言网](http://www.dotcpp.com/)上刷了一百道题目左右吧,然后就基本就没怎么在上边刷题了,当然,有很多的OJ都相当的不错(POJ等),你上网搜索下就有很多推荐的,按照自己的学习目标来学习阶段来选择不同时期的OJ是最明智的选择。这里推荐的C语言网呢,主要是推荐初学者,但希望你们不要专上边的某些题目,不要问我为什么,因为这样有益身心健康。
----------------------------------------------------------是不是感觉挺累的,不用担心,接下来更累(一个挑事的微笑)
算法才是大佬
到了现在,编程能力有所提高,你可能就会感觉怎么OJ上边的一些题目怪怪的,其实,这不叫怪啦,这叫深沉(哈哈哈,开玩笑)。这就关乎到了我们接下来要讲解的重点了,那就是[算法](https://baike.baidu.com/item/%E7%AE%97%E6%B3%95/209025?fr=aladdin),这也是计算机专业学生的核心基础课程(我个人挺喜欢算法)。换句话说,就是你现在没有学习到相应的算法,你可能会上网搜索下题目的答案,或许能看懂,但不是很明白,那么现在你就需要学习新知识了(恭喜你啦),那就是基础算法的学习,(我准备再写一篇博文,关于我算法入门的,一些经验和感悟吧)(哈哈哈,又有广告了是吧,不急,我们接着看。)。
我这里就简单的说下基础算法的学习,同样的,按照上边的讲解,你需要书籍,推荐刘汝佳的《算法竞赛入门经典(第二版)》(我现在也还在学习),挺不错的入门书籍,还有其他的就自行百度吧,还有就是你最好还是找点视频资料学习,我看过哈工大的算法设计与分析入门课程,上边也讲得挺不错的,是根据《算法导论》的体系结构来讲得,至于其他的一些资源呢,就读者自己去探索吧,还有很多哦。
一展身手
到了这里,其实你已经有了一定的能力了,你可以去参加一些算法的比赛了,当然我建议一边学习的时候就应该关注一些线上或者线下的算法比赛,在很多的OJ系统,比如前边推荐的几个网站上边每个月都有举行比赛,其实还有很多算法比赛(GCJ,百度之星,编程之美,ACM等),就交给聪明的你啦
-------------------------------------------------------------唔,终于要写完了
抽象?
面向对象编程。在这个部分呢,我就简单的讲下面向对象的一些认识吧,这也是C++区别于C的一个板块,因为有了面向对象,有人称C++为“带类的C”。我个人理解的面向对象是一种思维,一种逻辑,大家在初学的时候不必纠结什么叫做面向对象编程,面向过程编程,你现在的任务应该是我要用编程来解决这个问题,然后你就想方设法的去想解决的办法就行了。当然,如果你实在是想深究下呢,就推荐以看看一些牛人博客论文吧,(如果看到说得好的,记得给我留言分享哟,在此先谢谢啦)。然后就是MFC的学习,这个类库呢我这里就不讲解了,对于初学者来说,只需要知道具体的类的使用就行,推荐上网看下资料啦(偷下懒就不给链接啦)
说明栏目
说的也差不多就是这些了,如果有什么遗漏的地方我会在后边补充。对于这篇博文呢,我是按照自己的学习经验来写的,如果有什么地方写得不对的,欢迎留言评论。若有侵权,还望留言,我会及时删除。
交友栏目
QQ-1-4-8-6-9-0-4-0-6-9,欢迎各位朋友来扰,博主喜欢交友噢