之前因为写了一篇博客如何学习C++,讲解的不够全面,今天这篇主要是对上一篇的补充,学习C++的路线和方法,当然,也包括java;
在正式内容开始之前,我想谈谈我对学习的看法和建议,学习编程语言是从0到1再到无穷;注意,是无穷,我见到很多人抱着对黑客以及逆向破解等高深的技术一时兴起而去学习编程语言的,然而,当一门编程语言还没掌握基础的时候,就觉得编程语言什么的太无聊了,跟我想要的技术完全不一样,1还没开始,便放弃了,殊不知一切高深的技术都源于底层的操作
当然,当你有了基础后,也就是1到无穷的过程,这个过程是需要你不断的扩展你的知识树的.有那么一部分人,有了一些基础后,感觉自己已然无敌,知道一些基本的计算机以及编程原理,听到别人评论计算机知识就满脸瞧不起的样子,其实自己只是踏进了计算机世界的大门,却没跨进去几步,管中窥豹,只见一斑,拿着自己狭隘的见识对别人指手画脚,这样的人,走不远,同时连以前学过的知识甚至都忘的差不多.对于任何人,我们玩技术的都不应该骄傲,因为技术这东西是无穷无尽,不断更新的,只有保持谦虚,同时关注着前沿的技术才能走在前面.
这样的人固然可怕,但我觉得最可怕的还是一时兴起的学习,就比如说,今天某某某看到了学习C++好处的文章,学着学着的过程中觉得很枯燥,这时,恰逢看到一篇写着C++已过时的文章,就仿佛找到理由般放弃了,于是,重新安装了王者荣耀或者吃鸡而心中还沾沾自喜的认为自己已经努力过了,无悔了.我承认,学习编程的中间过程非常枯燥乏味,经常有坚持不下去的念头,因为人学习的热情会在过程中消损的,针对这一问题,我是采用C++和java交叉学习的方法来保持我对其的热情,每当这一门觉得枯燥时,就学另一门,当然,这种方法可能也会导致学而不精,如果你是一个学霸,那我想你肯定能维系好你的热情,不采用这种歪门邪道的方法(诚如所言,在现实中我是一个成绩处于中下等的学渣),不过学习源于热爱,而热爱归根究底就是能在学习的过程中获取成就感,我相信,没有什么比学会C++获得的成就感更多了,而相对于对于游戏,这是获得成就感最简单,最低级,最有趣(因为玩游戏的人多),对学习最友好(因为打游戏也是处在一种学习,但只是不耗脑子,容易).
所以,在这里我想奉劝各位,如果没有下定决心,耐不住寂寞,乘早把你因为对编程的三分钟热度而卸载的王者荣耀重新装上吧,反正你迟早得重装的.
好了,废话就到这,回归主题,C++以及java的学习路线和方法,我学习的路线是从
C->java< – >C++,先学的c,再学的javaSE(基础),javaEE(服务器),之后又和java一起学的C++(ps:什么时候累了就换另一个学习,还有,告诉各位一个彩蛋,C++和java是有办法相互调用的,至于方法,自己百度吧)
我把学习过程分为三个阶段
第一阶段:
如果你对编程零基础,那么我推荐先学习c语言,它没有C++的特性那么多,是较为简单的,也可以称之为现代编程技术开端的一门语言(我是这样认为的),它能够让你知道计算机的基本原理,在这里,我推荐一门教程:腾讯课堂的奇牛学完rock老师讲的c语言课程(ps:C++课程就不要在这里面看了,因为要给钱,还不便宜),当你学完c基础后,你会对编程语言有了通俗的认识,编程的本质其实就是在操作计算机的地址
(ps:我推荐你学习的过程中可以看看c的书籍,因为书上介绍的详细,我就不推荐哪本书了,因为c在国内流行的也就那么几本了,都差不多,还有,不推荐新手看英文翻译过来的书籍,因为真的很难看懂)
ps:我估计c的学习过程应该在3个月左右;这是指学通学透的时间,如果只是基本了解下语法1个月都嫌多.
c语言部分学完了,你会感到有点迷茫,主要表现在对编程语言的认识上,不知道它到底干什么的,以及感觉它仿佛设计不出计算机上的软件,这是自然的,因为c语言主要运用于嵌入式设计和单片机等等,它是最接近底层的语言,让人们从繁琐的汇编中解放出来;c学习完之后,我不推荐你直接学习C++.因为C++会让你绝望的(_),即使你硬着头皮学了点C++基础,你也不知道C++能干什么,或者说是如何在开发中使用.
ps:
我把编程语言一般都称为两个部分:基础部分(基本语法,数据类型,特性,标准库);高级部分(针对某个领域需要用到的接口,框架,各种配置等等,ps:新手可能很朦胧,不过学着学着就懂了,无法解释,只能意会)
第二阶段:
你可以去学习一门面向对象的语言的基础部分:比如C#,Python,java等等,在这里我就主要拿java打比方了(因为我也没学过C#和Python,不过他们之间的区别主要表现在你想要从事的领域上,下面会介绍),java可以说是一门大众化的语言了.它的语法简单,特性不是很多,它的作者高司令正是因为厌倦C++烦人的内存控制而开发的,尽管java的运行速度比C++慢20倍,但在很多领域,它是不可或缺的,在这一阶段你要学习的部分是javaSE(就是java基础,自己百度).至于为什么要学这个基础,也可以说是为以后学C++做准备,java基础能让你知道编程语言的面向对象究竟是怎么回事,以及编程语言是干什么用的,不会像c那么朦胧,当然,你也可以换成C#或者python,因为这几个语言基础虽然语法不同,但是编程思想基本相同
这部分的学习我保守估计学会基本语法和常用标准库两个月,学通3个月;
(ps:最后一个月主要是巩固和加强,也就是多练练);
java基础学习路线推荐:
书籍:java编程思想;
教程:b站里面尚学堂的java基础;
网站:how2j.cn
(ps:我在学习java的过程中都是以这个网站为主,教程和书籍为辅的方式学习的,这个网站很良心,java是一站式学习,从基础到高级;在这里我忠心感谢这个网站的站长,从这个网站我学会了很多知识,而且是免费学习的)
第三阶段:
好了,这一部分学完了,你现在有两条路,
第一条,是返璞归真,开始艰难的C++修行之路,C++的修行之路那可以说惊天地泣鬼神了,因为我第二条路列举的所有领域它啥都能做,啥都做的好,但学习过程是相当的艰苦,而且企业用的不多,但一旦找到工作那都是月薪上万,
(ps:因为会C++的人不多,虽然岗位不多,但不会出现java那种饱和的情况,培训班说什么3个月学java月薪过万都是骗你的,找不找的到工作不一定,但工资肯定不高,当然也有工资高的,但那都是干了java好几年的老油条).
学习C++目前主要应用的领域是游戏服务器,驱动,系统开发(Android底层就是用C++开发的),科学计算(骚年,你想实现你小时候当科学家的梦想吗;快加入C++的大家庭吧,有点洗脑了,呵呵~~),虚拟现实,数字图像处理,软件开发,嵌入式,还有大家都喜欢的逆向破解(不要违法哦).
(ps:虽然C++做什么领域都好,但并不是所有领域都会用C++,因为C++结构严谨,难以维护,而且这些领域对效率的要求不是那么高,比如说登录一些不可描述的网站时,它是不是反应的很慢,你都要等老半天,而且视频一卡一卡的,排除服务器的原因,主要是它内部处理太慢了,小产业谁会愿意用C++做服务器^ _ ^).
C++的学习路径:
基础部分:现在网上你一搜基本都是推荐小甲鱼的C++的,但是我强烈不推荐这个(我也看过),因为它太老了,而且讲的不够详细,系统,我推荐的是黑马程序员2017C++教程,在b站上能搜到,它不仅容易入门,而且对底层的讲解也非常详细(ps:C++最注重也是最难的就是程序员自己分配内存,其他语言做不到);…
高级部分:开始高级学习前,我建议你先看一本书,这本书叫做Windows核心编程,它里面介绍了很多Windows系统下软件架构的方法,思想很值得学习(C++程序员基本人手一本,而且想当黑客也是必看),之后,如果你选择游戏服务器你要先学会Linux系统的基本操作,如果你想搞破解,你要先学习汇编,如果你想搞嵌入式(这个…还是算了吧,你不想学),如果你想搞界面,可以学习MFC或者QT(MFC太老了,而且难,但是它的思想还是值得借鉴的,现在界面开发基本用C#的.NET框架,而且就算找到MFC的工作也主要是维护以前的老代码,至于QT,跨平台的,学着也快,自己搞着玩玩也还是不错的,实际开发也用的不多),其他我就不一一列举了,关键看你想从事哪个领域,就可以学C++对应的内容;
至于C++高级的学习方法嘛,因为C++擅长的领域太多,所以你想学哪一个就到b站一搜,什么都有,虽然我上面推荐的腾讯课堂的Rock老师也有C++的高级课程,而且讲的也挺好,不过价格太高,这里就不做推荐了.当然了,C++从事领域我还是推荐游戏服务器方向的,因为赚的多;呵呵~~
第二条:你可以继续你上一上一阶段编程语言的高级学习,所谓高级,就是说你可以选你想要从事的领域了
如果你想从事软件界面设计(俗称UI工程师),3D建模,那你可以在上一阶段选择C#;
如果你想从事前端开发(就是你平常上网所看到的界面),或者后端开发(就是设计服务器,主要内容是业务,逻辑,处理,高并发等等),或者说,你想从事Android开发,那么你可以学习java(或许这就是学习java人那么多的原因吧,web和Android太抢手了);
如果你想从事人工智能(人工智能需要你超高的数学天赋,我是学渣,绕过_),大数据,自动化脚本,那么你可以选择Python(ps:据说只会Python基本找不到工作,而且Python语法极为简单,就是为了让你把更多的时间放在逻辑的实现上,不要被培训班学python年薪过万骗了,它需要你很好的数学能力,ps:不过把python当成一种辅助语言也不错,它的胶水性能力很强的(不懂就百度));
ps:你会发现除了python的设计者的头发没秃之外,其余全秃了,而且当属C++设计者的头发秃的最严重^ _ ^;
在这里推荐下java前端后端的学习路线(ps:因为我就是学的这部分):结合我上面给的网站:how2j.cn;以及b站的教程(28天完整版)JavaWeb视频教程(ps:给你们b站传送入口:AV37452727,或者在b站上直接搜javaweb视频教程,也能搜到:上面写着广陵散啥啥啥)的,之后再学习ssm框架(不懂百度),b站也有教程;
===========================================================
我是java和C++一起学的,我想就学这两门够了,再多学一门我估计也学不精,不过如果你想两门同时学的话,我推荐的是C++和python一起学,一门为主,一门为辅(一定要选好哪个主哪个辅),一个学累了换另一个,另一个学累了换这一个,不过如果你不给足充分时间可能学而不精.
(ps:有人说"我怎么可能学累了!",我只想说:如果学习编程的过程你不会有那么一段时间觉得枯燥,那你肯定没好点学;除了两种语言一起学的降压方法,你也可以用其他方法(百度一搜什么都有));
最后,再告诉大家一个技巧:编程语言只是一种手段,相当于一个工具(刀,剑,菜刀,手术刀,等等),因为到了后期你是针对某个领域的需求,使用一把合适的工具去打磨雕刻,所以学完我所说的第一阶段后乘早知道未来自己想走的方向领域,然后选择对应的编程语言去学习;(ps:如果有什么领域你想涉及我没有列举的,你可以在下方留言)
ps:
C语言必学!!!
学习笔记必须整理!!!
结束语:
各位小伙伴们有什么想补充的或是觉得我说的不对的,请在下方留下建议或者发送到邮箱2836782639@qq.com,我最近在学习C++的基础,我会根据<C++primer>以及我看的黑马那啥教程 把重点整理,再深入的写成笔记到我博客上,欢迎各位留下建议,如果各位有想要java基础和javaweb笔记的,在评论区发留言或者发邮箱,我会及时的整理出来;
亲,恭喜你看完了所有内容哦,如果觉得好别忘了点赞哦,我也是最近才开始写博客,不知道写的好不好^ _ ^;
来源:CSDN
作者:weixin_45483906
链接:https://blog.csdn.net/weixin_45483906/article/details/102086850