最近有朋友问我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,欢迎各位朋友来扰,博主喜欢交友噢

C/C++初学攻略的更多相关文章

  1. Cross-Site Scripting XSS 跨站攻击全攻略 分类: 系统架构 2015-07-08 12:25 21人阅读 评论(2) 收藏

    原文:http://a1pass.blog.163.com/blog/static/2971373220087295449497/ 题记:这是我在<黑客X档案>08年第5期发表的一篇文章, ...

  2. php连接微软MSSQL(sql server)完全攻略

    http://www.jb51.net/article/98364.htm php连接微软MSSQL(sql server)完全攻略 作者:吵吵 字体:[增加 减小] 类型:转载 时间:2016-11 ...

  3. Anaconda使用教程全攻略

    Anaconda使用教程全攻略 本文转自 https://zhuanlan.zhihu.com/p/32925500           〇.序 Python是一种面向对象的解释型计算机程序设计语言, ...

  4. 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法

    若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...

  5. 微软MVP攻略 (如何成为MVP?一个SQL Server MVP的经验之谈)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 初衷 什么是微软MVP? 成为微软MVP的条件? 如何成为微软MVP? (一) 申请时间划分 (二) 前期准备 (三) ...

  6. Windows下LATEX排版论文攻略—CTeX、JabRef使用介绍

    Windows下LATEX排版论文攻略—CTeX.JabRef使用介绍 一.工具介绍 TeX是一个很好排版工具,在学术界十分流行,特别是数学.物理学和计算机科学界. CTeX是TeX中的一个版本,指的 ...

  7. linux下安装apache与php;Apache+PHP+MySQL配置攻略

    1.apache   在如下页面下载apache的for Linux 的源码包    http://www.apache.org/dist/httpd/;   存至/home/xx目录,xx是自建文件 ...

  8. 生成 PDF 全攻略【2】在已有PDF上添加内容

    项目在变,需求在变,不变的永远是敲击键盘的程序员..... PDF 生成后,有时候需要在PDF上面添加一些其他的内容,比如文字,图片.... 经历几次失败的尝试,终于获取到了正确的代码书写方式. 在此 ...

  9. Java数组技巧攻略

      Java数组技巧攻略 0.  声明一个数组(Declare an array) String[] aArray = new String[5]; String[] bArray = {" ...

随机推荐

  1. 简单的Maven+SpringMVC

    一.SpringMVC非注解编程 1:修改pom.xml文件(相当于非Maven项目的导入jar包) <!-- https://mvnrepository.com/artifact/org.sp ...

  2. Django之视图和URL配置

    1.在创建项目时,Django会自动创建URL配置,在urls.py文件中 文件的默认内容如下所示: """mysite URL Configuration The ur ...

  3. Cisco交换机与路由器命令总结

    1.查看信息 show version    查看版本及引导信息 show running-config     查看运行设置 show startup-config     查看开机设置 show ...

  4. 十四、MySQL UPDATE 查询

    MySQL UPDATE 查询 如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作.. 语法 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 S ...

  5. SpringBoot日志输出至Logstash

    1.springboot项目pom.xml文件下添加如下配置 2.resources目录下创建logback-spring.xml文件 <?xml version="1.0" ...

  6. 科学计算库Numpy——数组形状

    改变数组维数 给数组的shape属性赋值,改变数组的维数.数组的大小是不能改变的. 增加维度 使用np.newaxis增加维度. 删除维度 使用squeeze()删除维度是1的维度,也就是删除shap ...

  7. python-01 spider原理

    用Python可以做什么?可以做日常任务,比如自动备份你的MP3:可以做网站,很多著名的网站包括YouTube就是Python写的:可以做网络游戏的后台,很多在线游戏的后台都是Python开发的.总之 ...

  8. [BZOJ3524]区间问题(主席树)

    Description 给一个长度为n的序列a.1≤a[i]≤n.m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2.如果存在,输出这个数,否则输出0. ...

  9. 【转载】2015年8月编程语言排行榜:Java遥遥领先

    Java以4.5%的差距遥遥领先于第二名,回顾以前Java有这样的成绩还是在2008年.Java version 8的成功主要是因为函数式编程习语的添加.Java出现下滑是在2010年 Oracle收 ...

  10. 【转】Oracle AWR 报告 每天自动生成并发送邮箱 Python脚本(一)

    Oracle 的AWR 报告能很好的提供有关DB性能的信息. 所以DBA 需要定期的查看AWR的报告. 有关AWR报告的说明参考: Oracle AWR 介绍 http://blog.csdn.net ...