如何用6个月搞定C++


提到c++做过项目的人,都会扔下一句,这玩意短期内很难学的很熟练,更不要说弄的精通,没有做过项目的人觉得C++和java差不多啊,就是面向对象一些基本应用,掌握了对象的一些概念,以及一些属性基本上差不多了。其实整体而言c++的里面的泛型编程,以及类模板,模板类等基本概念特别在初级做项目的小伙伴来说,能把程序编译通过简直太难了。

那么为什么要学习c++?

C++算是距离C语言比较近的语言,算是比较靠低的语言里面还能展示面向对象,越是年龄大点的程序员越是觉得C++越用越有意思,对开源代码有点研究的或者看过开源代码的人,很多很标准的开源软件里面对于C++编程技巧运用的炉火纯青,第一眼的感觉是让你看不懂,然后等你费劲巴拉的把源码看懂之后,然后对作者倍加佩服,如同品老酒一番,越来越觉得编程有意思,C++有味,从知识体系框架完善程度来看也是有必要玩耍之。

目前linux开源软件里面以及windows程序里面,C++程序的占比还是相当大,特别是现在很流行的游戏开发用c++用法的占比也很高,所以从语言的普及率上面也是要有必要拿出精力学习。在移动互联网迅猛发展的中国,一位C++自身工程师感叹了一句,发现周围的人都去转行去做java了,在中国应用级的开发已经远超底层框架的设计人员,不知道从长远来看是好事还是坏事,其实c++程序的占比在欧美还是极高的,还是主流的开源语言,这也就是为什么开源软件大多数都是c++的原因。

如何自学C++,怎么才能学好?

第一步:确立学习的决心,因为很多学习编程,学校开设的第一个编程课大部分是C语言,很多开设C++的同学就觉得怎么开始上来就学习C++啊,是不是有点早了啊,自己真倒霉之类的词语。其实无论是先学C语言还是c++其实从本质上来说差别不是特别大,因为都是比较靠近底层的语言而且对于自己知识框架的完善都有着极大的好处,关键是既然选择了,就要拿出学习的魄力,有些刚工作的小伙们可能有这样的疑问,觉得自己同学入门java拿到的工资比做C++高很多,就觉得自己没有希望了,觉得选错了方向,其实C++学到深层次,对系统体系把握性很强的话,基本上都是底层系统支撑人员,工资以及发展方向,还能差哪里去,关键还是持之以恒的决心。

第二步:选择一到两本经典的教材,学书本学习是最原始的学习方法,用书本学习能让你全心的去思考一个理论的框架,然后根据在大脑中建立的知识框架去实践去理论,去在电脑上面操作,反复的这么去思考,去练习。这其中肯定会遇到不懂得,想不出的,就可以找到对应的视频,看看找到思维的疑惑点,然后按照教材的顺序继续学习。教材后面的课后题目还是要独立的去完成,在电脑上都有所体现。在这过程肯定有人会疑惑为啥不直接参加培训,参加培训起码有点基础,而且现在培训所有的日程都安排的满满的。很难有自己调整的时间。基础差的在培训的时候很多,在中途就退出了。受不了这种煎熬。小编觉得c++ primer plus这本书比较经典适合,有人可能觉得c++ primer 更加有名气,其实个人觉得c++ primer 更加适合当做字典来使用,里面的细节讲的太繁琐了。一家之言,不喜勿喷。

第三步:选择一个编译器,目前来说市面关于c++的编译器真是多入牛毛,而且现在大量小伙伴还在用vc++6.0,建议大家不要去用这个了,和最新的标准有些差异,而且调试的时候容易崩溃退出。

编译可以使用vs系列,或者dev c++,或者codeblocks,选择一个顺手的就可以,找到正确的编译之后就要学会调试程序,很多小伙伴在看书的时候,发现没见调试的章节啊,做过项目的小伙伴都知道有些大型程序出现问题了,崩溃或者内存泄露问题了,只看一对眼睛是远远不够的,所以就需要一种工具,就是编译器的一种功能调试,开始学的时候不要觉得程序简单,就不想学习调试,调试是编程基本功的一种。

第四步:开始具体的学习,具体学习过程中,不要着急去实践,先把基本的理论彻底搞清楚再进一步实践,假如学习for循环,所谓的循环就是一遍遍的重复去执行,但是重复的次数是有循环条件满足的次数来决定的,不满足条件不循环,这就和do while有了本质的区分。那么我们举例说明一下

#include<iostream>

using namespace std;

int main()

{

int i;

for(i=0;i<= 10;i++)

cout<<i<<endl;;

}

这个程序主要循环判断点就在i <= 10 这个直接决定了循环的次数这个决定循环的关键。如果有关循环的不懂,就可以在网上找对应的视频去学习,或者加一些技术群去学习,在互联网上面自学的人还是喜欢找一些和自己水平差不多的人一起学习的。每个基本概念都这么搞定理论然后再去实践,坚持下去基础慢慢也就有了。

第五步:在基础部分学的差不多了,所谓的学的差不多了,基本上面向对象的基本概念以及指针,文件流操作这些基本概念差不多的情况下,算是初级基础,下一步的学习就是泛型编程的级别了,比如常见list,vector等模板类的使用了。在这学习泛型之前就可以做一些简单的操作了,比如简单的小项目,简单计算器,电梯的模型,贪吃蛇小游戏等等,这些里面可能还涉及到线程或者进程的概念,同步或者异步的概念。尝试去修改一些这些程序的代码或者自己设计一套解决的方案。在有了这些的基础上就可以,进一步学习泛型编程,泛型编程学到差不多一半,或者直接去公司学,都可以。其实学到这种阶段,基本上算是初级入门阶段已经完成,可以考虑写好自己的简历,去参加工作了。如果觉得还是学的不过瘾,可以学习Qt开源,去做一些小工具,让自己玩的更嗨,到这个阶段其实也是编程到了比较有意思的阶段,因为心里会想着能做什么软件了之类的等等,如同刚学会了开车,见到车就想开境界。

基本上能坚持到第五步的阶段,基本上算是到入门阶段了。其实做到第五步,起码需要三个月的阶段甚至更长的时间,整体来说c++比c语言更加难学一些,因为规则上面繁琐的多,不像c语言那么随意

真正的刻苦的有方向的,自学的话,半年的时间更加准确些。在这个方向之下6个月时间结束之后,基本上就能加入码农的阶段。兴趣和毅力在学习编程过程中缺一不可。加油吧,noob

本文属原创,禁止转载

针对想学习C++小伙伴联盟推出(如何学习C++)系列读物

优质内容筛选与推荐>>
1、Windows服务创建及安装(转)
2、poj 1363. rails
3、创立初始的MySQL权限
4、实验报告一
5、js排序算法总结——冒泡,快速,选择,插入,希尔,归并(转载)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号