之前因为写了一篇博客如何学习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笔记的,在评论区发留言或者发邮箱,我会及时的整理出来;

亲,恭喜你看完了所有内容哦,如果觉得好别忘了点赞哦,我也是最近才开始写博客,不知道写的好不好^ _ ^;

C++以及java学习方法和路线相关推荐

  1. 【大学到研究生自学Java的学习路线】这是一份最适合普通大众、非科班的路线,帮你快速找到一份满意的工作

    这篇文章主要针对初学者来写的,因为,在我刚刚开始学习的时候,也是很迷茫的,根本不知道怎么入手,因为需要学习的技术太多了,没有明确的目标就效果很差,所以,今天给大家梳理一下Java的学习路线,这个是我的 ...

  2. java学习方法和经验

    谈谈我的 java学习方法和经验.首先初识语法的阶段,必须要学会怎么操作对象,操作if和for,操作list set map,然后是线程.IO和jdbc什么的,其余的,若是一时不理解,可以后边需要时再 ...

  3. 从菜鸟到高手演变-----Java学习方法

    前段时间逛论坛,总会有很多新手很迷茫,问到:到底该怎么学好Java,这个问题很重要,尤其对于像我们这样大多数都是靠自学的人来说,找到一个好的学习方法至关重要!于是乎,我就给大家回答了很多,突然间想到了 ...

  4. JAVA学习方法:不走弯路,就是捷径

    JAVA学习方法:不走弯路,就是捷径 0.引言 1.如何学习程序设计? 1.1 培养兴趣 1.2 慎选程序设计语言 1.3 要脚踏实地,快餐式的学习不可取 1.4 多实践,快实践 1.5 多参考程序代 ...

  5. 初级java开发学习路线_成为初级全栈Web开发人员的10分钟路线图

    初级java开发学习路线 So you have started your journey into the world of web development. But what do you lea ...

  6. java基础不好框架能学会吗_转行Java能学会吗?零基础学习Java的学习路线

    Java的跨平台性.通用性.安全性.高效性决定了这门语言在未来10年都会是最热门的语言之一.Java技术的安全性和平台移植性足够让他应用到不同的领域,它的工作需求足够大,现实一点来说即使Java濒临o ...

  7. 成都两年JAVA工程师_成都Java工程师学习路线

    成都Java工程师学习路线.java分成J2ME(移动应用开发),J2SE(桌面应用开发),J2EE(Web企业级应用),所以java并不是单机版的,只是面向对象语言.建议如果学习java体系的话可以 ...

  8. Java新手学习路线

    ------Java新手学习路线------ 第一阶段:J2SE(java基础部分) java开发前奏; . ①计算机基本原理,Java语言发展简史以及开发环境的搭建,体验Java程序的开发,环境变量 ...

  9. 开课吧:Java开发学习路线-基础知识

    一般来说想要成为Java开发工程师,需要先了解清楚Java开发学习路线,而基础知识部分是整个路线里面最最重要的部分,也是后续进行框架学习.能看懂开源项目的前置基础,这部分是最不能忽视的! 基础知识: ...

最新文章

  1. python逐行读取文本
  2. Spark(1)——spark基本原理与启动
  3. 【MySQL】Linux端-实现Mysql数据定时自动备份
  4. python装饰器带参数函数二阶导数公式_一文搞定Python装饰器,看完面试不再慌
  5. 潜流式湿地计算_人工湿地计算书
  6. Java集合:Collection接口
  7. 关于msi格式的程序包的安装
  8. 《Storm企业级应用:实战、运维和调优》——1.6 本章小结
  9. oracle表空间扩容方法
  10. html站内消息列表,WebSocket实现站内消息实时推送
  11. MySQL 各类问题及解决办法汇总
  12. Project: Individual Project - Word frequency program
  13. Kubernetes架构图 Architecture Workload Networking Storage RBAC
  14. sci的figure怎么做_一文看懂SCI论文中都有哪几种Figure
  15. python安装numpy库出错_numpy安装失败-小失误
  16. 一个使用kindle近3年的菜鸟的几点建议
  17. oracle优质图书,Oracle经典图书之-Optimizing Oracle Performance
  18. 微软云+Servlet实现图片上传接口
  19. 华为云RDS全量备份恢复到自建数据库(数据库qp文件恢复)
  20. 阿里、京东、美团等主流互联网公司的最新招聘标准

热门文章

  1. 简单聊聊FPGA的一些参数——后篇
  2. 鲜为人知的PCB抄板常识,您了解多少?
  3. opcache 缓存_缓存帽子戏法:Zend Opcache,Etags和查询缓存
  4. 使用TKMapper主键的坑
  5. The Bucket List 题解
  6. python中label函数_python tkinter label标签怎么使用?
  7. easyexcel读取合并单元格
  8. 广数928te_广数928te使用教材
  9. 十年磨一剑:蚂蚁集团可观测性平台 AntMonitor 揭秘
  10. Fresco图片加载+EventBus+Butterknife+Retrofit+RxJava+RxAndroid