你是如何学习 Java 的?
2021/12/4 22:17:43
本文主要是介绍你是如何学习 Java 的?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
给您推荐Java学习路线图,是菊厂童鞋做开发经常使用的一些技术和工具,希望能帮助到您~
前端部分:
1)HTML:网页的核心语言,构成网页的基础
2)CSS:使网页更加丰富多彩灿烂的利器
3)JavaScript:使网页动起来的根本,加强了网页和用户之间的交互
4)HTML DOM:换一种更加形象化的角度来看待网页,让我们更加方便的控制网页
5)HTML BOM:与浏览器交互不可或缺的工具
6)JavaScript库,主要是:jQuery及其插件、YUI及其插件,使编写网页更加的方便快捷和健壮的强大工具
7)AJAX:异步提交,增强了用户使用网页的良好交互体验
8)JSON:比 XML更小、更快,更易解析的数据传输工具
9)FLEX:提供丰富多彩的动画效果
10)普元工作流:更加清晰明了的帮助用户处理业务流程上面的工作
11)JSP:Servlet的展示层,使网页逻辑与网页设计的显示分离
12)JSTL:加强和简化了JSP页面的开发
13)EL:使JSP页面写起来更加简单
后台部分:
1)JAVA语言编程基础部分:内容丰富是Java知识体系结构的核心和基础
2)JDBC:提供了一种基准,据此可以构建更高级的工具和接口,使Java开发人员能够编写数据库应用程序
3)JavaMail:用于电子邮件的相关的编程工作
4)JUnit:单元测试,整个变成工作测试的地位始终非常重要
5)Log4j:使我们能够更加细致地控制日志的生成过程
6)Servlet:JavaWeb的核心
7)Struts2:JavaWeb编程中明星级的框架,优点多功能强使编程工作更简单,主要用于控制跳转
8)Spring:JavaWeb编程中明星级的框架,同样优点多功能强使编程工作更简单,主要用于管理对象
9)iBatis:JavaWeb编程中明星级的框架,同样也是优点多功能强使编程工作更简单,主要用于程序和数据库之间的交互
10)SQL:与数据库交互式编程的必备工具
版本控制:
1)SVN:版本控制,方便团队协同工作
WEB服务器:
1)Tomcat:优秀免费的中小型WEB服务器
2)Weblogic:功能很强大的WEB服务器
开发工具:
1)Eclipse:开源强大的Java编程工具
2)MyEclipse:在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境
数据库:
1)Oracle:数据库业界老大,这个常用一点当然,也仅仅是常用一些常用的功能而已,需要加强
2)MySQL:最好的关系型数据库之一
3)SqlServer:最好的关系型数据库之一
数据库客户端:
1)Toad:非常棒的数据库客户端软件
操作系统:
1)Windows
2)Linux
远程登录的会话工具:
1)SSH:一直在用,非常不错
其他:
各种种类和版本的浏览器(推荐使用FireFox)、office办公软件系列、各种文本编辑器(推荐Sublime)、各种阅读器等等
下面是从网上找的三幅图片,比较好的说明了作为一个Java程序员的学习路线图,这里作为一种自我提醒的工具,不时看看,并且会赶紧修补自己的知识树!
1、Java的知识体系结构
2、JavaWeb开发的基本学习路线图
3、JavaWeb开发的成长路线图
第一部分:Java高级学习课程大纲
1、工程化专题
我们的工程化专题有五大内容:Maven、Nexus 、jenkins、代码审查 、Git/SVN
一共耗时一个月
2、源码分析专题
源码分析有三大内容: spring的源码分析,里面包括FactoryBean和MVC和事务处理与Spring源码中设计模式分析;持久层 ;企业级开发前瞻,一共耗时2个月
3、高并发与高性能
高并发与高性能有四大内容:并发编程, 里面又包含有线程安全和NIO和AIO 。异步通信,里面包含有本地队列和消息中间件。分布式协调技术,里面包含有Zookeeper和服务锁 。NoSqI: 里面包含有 MongoDB和Redis和Memcached 。一共耗时2个月
4、高可用性与可扩展
高可用性与可扩展有两大内容: 分布式架构介绍,里面有导流技术和服务设计和存储设计。服务调用,里面包含有WebService和Dubbo。 一共耗时2个月
5、性能优化
性能优化有四大内容:优化技巧,如何寻找性能瓶颈。JVM优化。数据库优化。服务器优化。一共耗时2个月
上面这五大专题,是几位工作经验十多年的大牛,根据自己往年的工作经验与经历,在根据现在科技发展的实际情况,历经几个月的时间编写而成,换句话说,上面的五大专题,也就是他们这十几年精华总结,现在,您只要按照上面的课题学习,只需要花费掉七个月多的时间,就能够学会与理解几位大牛十多年总结出来的精华。学完这些,还怕公司老总不给涨工资和升职么?
第二部分:阶段性的学习
学什么东西都一样,小宅相信大家也是一样,在学东西的时候,总会安排好自己阶段性的学习,这样才能有效的提升自己与有效的理解和认知所学的知识。合理安排好,才能起到事半功倍的效果。
阶段一:
阶段二:
阶段三:
阶段四:
阶段五:
更多关于Java内容可以关注 华为云技术宅基地
编辑于 2018-09-11 11:46
赞同 90335 条评论
分享
收藏喜欢
收起
继续浏览内容
知乎
发现更大的世界
打开
Chrome
继续
更多回答
hasaki
5,983 人赞同了该回答
举个例子好了:我现在是个懵懂的小白,老师让我用java做一个图书管理系统:
- 图书管理系统得有页面吧,页面我该怎么开发呢?于是你百度:前端入门,然后你就知道了,原来我使用 html js css就可以写一个页面出来了。
- 假设你坚持到了这一步,你发现用js写这些东西好麻烦啊,特别冗长,关键是原生的JavaScript还有各种浏览器兼容性的问题,你写出来的东西在chrome上能用,在ie上就展示的不正常了。于是乎你又百度:js框架。浏览器告诉你js的框架有很多:JQuery,React,Vue,
- 假设挑选了Jquery来做你的项目,你会发现,额 是比之前爽多了,毕竟框架会集成好很多方便的功能,你觉得你的效率在提高。
- 现在你坚持到了第四步,但是你又发现了新的问题,虽然相比之前JQuery操作起来是简单了许多,不过还是要我主动操作dom对象,有没有办法:我只关心我当前页面所用的数据是啥玩意就行了,改了数据之后,跟数据绑定的页面元素能够自动改变呢?这样我不就不用自己操作dom了吗?哦,对了,我之前搜索js框架的时候还有Vue和React,这都是啥玩意,于是乎,你百度:Vue入门。
- 好了,你开始使用Vue来写你的前端页面了,相比之前效率又高了很多,使用Vue的过程中,你可能接触到越来越多的概念,前端的模块啊,打包啊等等。你也许觉得写前端真他妈好玩,于是乎你关闭了这篇文章,去搜索:前端学习路线图。。。。
PS:我现在很难受,我是来跟你们一起学习java的 - 终于到后端了:现在你已经会写页面了,可是管理系统的数据我怎么展示在页面上呢,总不能写死在页面上吧。要是能有个地方存这个图书管理系统的数据,并且我的页面可以从那个地方拿就好了。
- 存图书数据的地方肯定就是叫数据库啦,于是你百度:数据库入门,书上告诉你数据库有好多种:sql server、mysql、oracle、db2 ..... 但是无论是哪一种都要先学习一下SQL,不管了,程序员就是爱学习,学呗
- 你现在学会了sql了,你按照网上的说明安装了mysql数据库,知道了怎么用sql操作数据库里面的数据,真是个天才。但是没用啊,我给别人用的是系统哎,我不能跟他说,你过来,我给你用sql展示一下数据库里面有哪些数据吧。
- 既然是个图书的管理系统,图书的增删改查肯定都得放在后端来做吧,毕竟前端只是做页面样子和交互,后端才是处理数据的,对图书的增删改查就是对数据库的增删改查呗。哦,我记得之前java书上看到JDBC可以操作数据库,把这块知识点捡起来,试着写一段程序操作一下吧。
- 好厉害,你竟然已经学会了java操作数据库,现在哪怕不打开数据库,不借助数据库的各种客户端你也能通过你的java代码查到库里面的内容了。但是还有个问题,我前端页面怎么跟后端打交道呢?换句话说,我前端页面写的花里胡哨的,可是该怎么告诉后端程序:你给我展示一下数据库里面有哪些书?数据库里面有没有一个叫java从入门到放弃的书?于是你百度:js前后端交互
- 你发现了Ajax,js中的这种技术可以请求后端的接口,拿到数据。然后用数据做相应的展示、交互之类的。并且你也知道了json,他几乎成了前后端交互事实上的数据标准。于是乎,你通过简单的百度之后,知道了该怎么向后端发起请求(当然了 也许在前5步的时候,你已经知道了怎么向后端发送请求,并且你有各种不同的姿势来发,什么原生的js啊,vue啊,react啊,jquery啊。各种姿势都不在话下)
- 页面写好了,也知道在页面上怎么向后端发送指令了,现在就差后端接口了。我刚刚写的java操作数据库,花里胡哨的,但是没用啊,我要先接收到前端发给我的指令,我再开始查询,或是各种管理吧。前端都没说话呢,你一顿操作,不是个沙雕吗?
- 好吧,那我的java怎么能接收前端发给我的指令呢?你百度:java http接口。于是你知道了 servlet ,tomcat。原来我只要写一个servlet,接着将其放到tomcat中执行,就能对外提供一个接口了呀。
- 天哪,我的servlet成功接收到了前端请求,根据前端的各种命令,后端开始尽职尽责的执行各种java指令,返回json数据给前端。
- 完美啊,我做完了,关闭这篇文章,打游戏去了。。。
- 等等,首先那个jdbc操作的是在是太麻烦了吧,open connection 各种try catch 。上面不是有个mybatis说是可以简化jdbc操作吗,怎么玩的?百度一下:mybatis入门
- 嗯,mybatis确实太香了。优雅的orm映射、灵活的sql编写。都让你觉得使用原生jdbc操作起来真是太费劲了。
- 不对,我觉得用servlet也有点麻烦,每次建立一个servelt之后,还要在web.xml配置,而且写起来也不优雅,json数据都是各种拼装起来的,真麻烦。
- 是时候学习一下spring了,大家都说spring是java程序员必学的,他到底好在哪呢,我的程序能不能用一下spring?让我百度一下spring入门。
- 果然spring确实方便,有了spring,我再也不用new对象了,我想要的,她都懂我,给我提前准备好了之后,我直接拿就行了。并且啊,她还会贴心的把依赖关系给我搞好。没错,这就是Spring核心的容器和DI功能。
- 你发现,spring家族竟然还有个东西:spring mvc,他是一个MVC框架,大家都在用,你也尝试了一下。十分钟后你觉得:我再也不会用servlet去写了,用springMVC写效率提升十倍不止。
- 爱好学习的你在项目中用了spring,springMVC,mybatis。额,这tm的不就是SSM三大框架吗。嗯,不错,可以出去装逼了
- 同学啊,你这个管理系统怎么那么慢啊,我查了一本书 :java从入门到放弃,每次查询都要好几秒,程序太烂了吧。你很难受,你的程序被大家吐槽了,要是我能快一点就好了?
- 加个缓存吧,大家都说redis很好,性能高,支持事务,还能持久化。你一顿操作,在项目中集成了redis。
- 班上的同学都很满意,见到你就说,同学,你现在好快啊,每次都不到3秒。用户体验哗哗的提升。你很满足,很自豪。
- 学校新进了一本书,刘慈欣的《三体》,大家都很喜欢看,一听到书籍上架的消息都去用你的系统。结果由于人数太多,你的系统没有抗住,挂掉了。。。
- 不行,有点丢人。加机器吧,我要是能有十台机器,每台上面都部署我的程序,并且这十台都提供给用户服务。那么自然每台的压力就小很多了。但是该怎么做呢,总不能告诉他们说:一班的同学你们使用135的这台机器,二班的同学你们使用136的这台机器吧。
- 要是大家都有统一的入口,但是通过该入口,请求会自动分配到这10台机器上就好了。于是你搜索一下:负载均衡。你发现了nginx还有h5负载均衡器等各种软件或是硬件实现的负载均衡(当然nginx不止这个功能)。
- 加一台nginx吧,毕竟不要钱。你按照文档配置好10台机器的权重。现在用户的请求能被10台机器处理。学校又进了一批热门的图书,这次你的系统没有垮掉。真厉害。
- 又来了一个需求,系统加了一个关注的功能,用户可以关注某本未上架的书,等它上架的时候,系统要通知用户。所以该怎么做呢,现在的你可能想着,我写个程序不停的去询问数据库,看这本书有没有上架。但是这么做有个问题,就是及时性的问题,你该设置多久询问一次呢?所以,是时候使用mq了,当书上架的时候,将书的信息放到消息队列中,消息消费者一监听到消息,立马就去发送通知。怎么样,这样做是不是逻辑上也解耦了,代码写着也不累了。
- 你闲着蛋疼,往系统里面新增了各种各样的功能:当用户预约的书到了的时候,发送提醒。一些淘汰的书籍你还给加上了公益拍卖的功能,用户只要竞拍,就可以获取到这个书籍,为公益做贡献。真是个商业奇才。
- 你越写越多,想法犹如泉水一样连绵不绝,然后你发现了一个问题,系统实在是功能太多了,你随便改一下东西可能都影响到别的功能,启动一次动不动五六分钟,关键是有一些新的小伙伴加入你的时候,每个模块的功能他都要了解,否则一不小心就像拍仓鼠一样,一个bug改了,又冒出来一个。
- 拆分吧,装个逼。拆成微服务。用户一个服务,图书的管理一个服务,拍卖一个服务,短信一个服务。每个服务由不同的人来负责,大家都对自己的业务比较熟悉,项目小而精致。但是拆分会面临以下很多问题:
- 怎么拆分,如何划分颗粒度
- 拆分后怎么协作
- 下游服务频繁的失败怎么办
- 怎么保证高可用
- 怎么保证数据的一致性
- 系统间怎么监控?(调用链路、日志、报警机制、)
- ....
- 后面的路,只要有好奇心和不安分的想法,你就会控制不住自己的双手打开谷歌:xxxx 该怎么办?祝你入坑愉快 哈哈哈哈哈
- 哦对了,别忘了早点准备好《颈椎病康复指南》和《如何预发脱发》
展开阅读全文赞同 5983316 条评论
分享
收藏喜欢
继续浏览内容
知乎
发现更大的世界
打开
Chrome
继续
萝魏紫
春暖花开,知乎有你,滴-
谢邀
感谢 @拉勾 邀请创作
209 人赞同了该回答
其实关于如何学习JAVA这个问题,知乎上隔三岔五都有相关的邀请,很多时候问题都重复了,希望可以增强问题合并功能。所以有的时候我已经不回答了。不过上次我有个回答,随手用了拉勾教育的几个图来说明我对现在线上培训的认可。没想到官方来联系我了。把我吓一跳,刚开始还以为要问我收图片版权费呢。笑。
和线上教育机构的交流也不是第一次了,所以就聊了聊,拉勾教育是想邀请我,以我过来的经验给他们的课程把把关,所以我和拉勾深入聊了一下。看了看他们的课程,提了不少建议。同时被邀请来这个问题,再好好地梳理梳理,提供些经验。所以现在我可以肆无忌惮地用他们的图啦。
桀桀桀桀。
我入行的时候,是2004年的时候,那时候JAVA还不是十分流行。线上培训班这种互联网时代的东西,是完全没有的。线下培训班倒是有一些,老师都是公司里淘汰下来的。当时的学习过程主要还是前辈带。我其实算是0基础入JAVA行业的,因为我们那时候大学并不教授JAVA,除了计算机专业课以外,编程我用的是VB6.0和C,还不是C++。我入行的过程并不曲折,其实和现在的孩子的流程差不多。首先我是内推的面试。我的毕业论文老师的前几届学生在那个公司,学长就把我内推去了那家公司。因为有学长内推,同时他们还不单单内推,还讲解了一下主要的面试技巧,然后我就通过了那家公司的面试。一干就是十年。
事实上,我个人的JAVA能力,是在工作中提高起来的。主要分成两个阶段,一个是入门阶段,大概是前1,2年的时候,然后是第二个阶段,差不多5年左右。两个阶段的主要内容是不同的。
第一个阶段,主要还是培养从学生学习,到JAVA生态的过度。事实上,我入行的时候,JAVA的难度和你们现在相比,可以说是既更难了,又更简单了。当时JAVA的东西还没现在那么多,但是每一个都充满了坑,连JDK自己都充满了坑。。。而现在对于新手,学生啊,转行的来说,JAVA入门的难度在于广度太广。JAVA牵涉到的知识点太过于庞杂。一个项目,牵涉到的技术,可能有几十种,比如一个基本上能通用在各个领域JAVA公司的项目,大约是这么些技术,
PS: 这张图只是这个项目所需的知识点介绍,想要完整的项目介绍可以从这个链接获取
https://kaiwu.lagou.com/crmForm/form/b5ae93ca3b68417797f784a91a5df97e
你可以考虑下,对于学习这些技术,会需要多少时间?自学的话,除非是天赋异禀,极端聪明了。反正我是做不到的。不过幸好,当时我去的公司,有不少学长。在实际项目上学习JAVA是一个重要的方法。为什么?原因出乎意料。因为JAVA生态之所以如此庞杂,主要就是因为他们要解决层出不穷的实际问题。所以有很多东西,如果你只是像网上的“JAVA学习大佬”讲的,“看Spring源码!写编译器!写操作系统!”这样闭门造车,是一辈子不会明白,为什么这个技术会产生,为什么这个技术要这样使用。比如我们随手从图上挑几个技术。springboot为什么要用,初学者对springboot最大的疑惑在于“为什么这个东西这样一搞就跑起来了?”过去我们的application依赖于大量的参数,也就是配置文件,spring在早期被称为XML地狱,拥有海量的xml参数配置,如果你只是看看源码,玩玩,是没感觉的,但是实际上个项目,就能体会到XML地狱带给你的精神伤害,所以spring团队在spring4.0之后提出了springboot这个概念,其最重要的两个概念就是开箱即用和约定优于配置。通过注解来减少配置,通过约定优于配置,减少了大量的配置工作。这在spring4之后的发展当中,属于主流概念了,对于初学者来说,就造成非常大的困惑,但是一旦上了实际项目,实际做一下以后,就会发现,这样子减少了相当多的额外配置,这种体会和学习,不上项目是学不会的。
又比如docker技术,事实上,如果你只是玩玩,docker技术比传统的装个tomcat把jar,war包往里扔更麻烦,还要写docker file,还要跑docker服务,乃至于后面还要和k8s集成,一集成,又多了一大堆东西,什么仓库啊,路由啊,负载均衡啊。但事实上,如果是实际项目当中去走一遍,从开发环境到测试环境,从测试环境到集成环境,乃至于客户的各个环境跑一圈,你就会充分理解docker的概念,他的优势,以及解决的问题。解决了容器在不同环境的依赖,这能省下非常多的精力。
比如现在最流行的前后端分离,很多人来和我聊过,说学不会,觉得太复杂。关键是因为学的方法不对,没有上实际项目。虽然框架很难,但其实,没有这些框架更难,而且难得多。我曾经在项目上手写JS,HTML,CSS为了控制一个简单的外观需要上百行jsp,而使用框架,就马上解决了。
所以说,第一个阶段,也就是入门,要学得好,就是要上手做项目。不管你JAVA基础多烂都应该上项目。我当时进公司之前,只买了几本书,看了几个星期,再之前,连JAVA这个词都没接触过。要说基础弱,当时的我没人比得上。我觉得JAVA这么复杂,用上初中高中的方式学,是没用的,只有实际上项目,就像毛主席讲的,在游泳中学会游泳,在战争中学会战争。比如int转string,这种,可能大部分人会去背书,而我就是在要做这个事情的时候,去项目中其他的代码里找而学会的。这样子,比背出来记得更牢的多。我现在入行15年+,我仍然能清晰地记得我入行前几年写的垃圾但可用的代码的逻辑,就是因为这是实操。
当然有人会说,你运气好啊,能进个单位有学长教。现在哪有这样的机会?对也不对。现在有很多线上的培训机构都有实操项目的培训,与其上网刷抖音,不如上网看培训?现在的一线线上培训机构,比如拉勾教育等等,实战项目的累积,已经非常丰富,几乎可以说比普通中小型企业的实际项目还要多。毕竟线上培训拥有资料面,合作面广这个巨大优势,和互联网发展一结合,实战项目是非常丰富的。
第二个阶段,我自己的体会是大约从我自己工作三年到五年左右,一个提高的过程,这个过程伴随着我的三次连续加薪升职,从薪水是当时上海房价的一半,到一倍的样子。JAVA世界如果要精进事实上是比入门更难的事情,因为有很多内容其实完全和纯写代码无关,没人告诉你,或者无法接触到的话,你根本不知道该学。有很多人长期囚困于增删改查想提高却无法提高就是这个原因。事实上,这层纸是很容易捅破的,但是没人指导是最为致命的。幸好当时我遇到了我一辈子的恩师,当时带我的老大,现在人家早已经是那个公司的总架构师了。
有很多内容,在日常编码过程当中是接触不到的。比如我们再拿个例子,看看下图
同样的,想要完整的大纲内容可以从这个链接拿到
https://kaiwu.lagou.com/crmForm/form/b5ae93ca3b68417797f784a91a5df97e
一般来说,高并发在日常你看不到,一到生产环境就是生产责任事故。尤其是你如果自己做研究,更难研究通,不太会有人像我一样自己买上五六台电脑组个网来玩分布式的,我会这么做,也是因为工作中有需要研究的地方。很多时候,在5年这个节点上,要摒弃的是“手里有个锤子,什么都是钉子”这个想法。因为到了四五年工作经验的时候,很多人在一个公司掌握的内容都差不多了,非常数量了,这时候非常容易自己的视野被困死,什么样的工作,都想要用之前的技术解决。这是很致命的。在五年以上,精进技术的方法是广,要更多的接触其他大厂,大佬的技术栈,充分去了解市场上,最常见,最稳定,大家用得最多的技术。比如分布式,比如云计算,比如容器化。虽然大家都会讲高并发,但是实际上真正的高并发,只有很少人见过,那么高并发的时候,系统是怎么样的情况,用什么软件监测,用了容器和没用容器的区别,在本地集群和云集群的区别,同步的高并发和异步的高并发,这些都是不同的。要去实际了解,没有通过现实的,真实的项目,以真实的方式去学习,靠自己去想,事实上是无法想象的。
我曾经处理过一个负载均衡集群。两个软负载完全一模一样,版本,配置什么都一样,但是就是一个常挂,一个基本运作正常。最终发现是因为系统采用了粘性连接,负载均衡实际上没有起很大的作用。这种层面的理解,不是遇到过,或者真实遇到过的人给你讲,靠你自己去设想来学习,是根本不可能的。
过去十五年,我指导过很多很多我们JAVA的后辈,有刚参加工作的,也有工作很久的,现在的JAVA学习,也可以说既更容易了,也更难了。
过去我们那时候学习,最难的难度在于学习资料的缺乏。整个互联网上,本来JAVA的资源就很少,那时候我们也没有视频资料,乃至于成形的网课。都是靠论坛,BBS,邮件组口口相传。而现在,不仅仅视频已经普及了,而且网课已经发展得非常好了。我们那时候,正规的渠道只有买书,而书,在IT技术这种急速发展的过程当中,就像传统媒体被新媒体取代了一样,逐渐由于更新速度不够快而淘汰了。这是更简单的部分。
而更难的部分在于,信息太多了以后,又造成了良莠不齐 。我们常说,中文技术里面,一直有一个CSDN博客地狱。经过五六年无数人弃而不舍地复制粘贴,你在中文环境下查任何东西,都能在百度前三页看到无数一模一样的错误答案。这其实导致了很高的自学成本。我前几天教一个工作五年的孩子一个新技术,他查了一整个星期都没查对,就是因为这个CSDN博客地狱。而我用一份英文的资料,半小时就给他讲通了。
比如你去百度里面直接搜JAVA学习路线图,一定会出现各种各样的脑图。
很多里面还有struts这种根本不再主流的框架,或者是CVS这种早就落后的版本控制工具,更不要说对于各种技术的理解完全错误,很多脑图的作者根本不懂什么是框架,什么是技术,什么是技术的实现,什么组件,什么是容器,总之就是一堆词堆上去。我可以负责的说,我review完了以后,上面每个图,起码每个能找出5个以上的错。
这是因为过去十年,中国的软件行业蓬勃发展,导致很多质量不佳的内容出现在网上。过去内容还不多,八九不离十,尚且没太大的伤害,而现在技术存量太大了以后,就出现了通篇的错误。
我和拉勾的专家聊他们的课程的时候也专门聊过这个问题。中国的软件大发展已经过了野蛮生长的过程了,需要更多的,专门的专家来搞专门的教育,而线下肯定做不过线上,唯一的原因就是线上的培训,师资力量是灵活的,所以可以以更合理的价格提供更恰当的教育。
比如他们的基础课里面,以XML,HTML,CSS,JS的顺序来讲,这个就是更恰当的
因为HTML本身就是基于XML的,而JS又能通过操作CSS和HTML对网页进行改变。又比如用RabbitMQ作为知识点,而不是常见的activeMQ,这就是比较专业的做法。因为虽然同样是MQ,但是一个是ADMQ,一个只是JMS。在商业领域的应用量级完全不同。
事实上,专业的线上培训已经非常常见了,每个大型跨国公司都在使用,我自己所在的公司也购买了线上培训作为一种员工福利提供给技术人员。而现在的线上培训已经做得非常成熟了,从知识的深度和广度,到实战项目的“实际度”,再到培训推荐一体化,都已经脱离了十几年前一个线下教室加一个被大厂淘汰了的程序员当老师的线下模式了。
现在的技术世界发展和规模,和十几年前完全不同了,那时候,最大的还是十八摸,现在灯,等等灯灯早已经被FLAG甩到天边了。连oracle都要报价收购抖音海外版了。这个最大的变化对我们来说,是学习的周期和频率变得越来越快。过去你可以通过1年的学习来获得的知识,现在逼迫你6个月就学会,否则就落后于技术的变化。这样以来,自学的性价比就没有那么高了,虽然你省了几百块人民币,多吃了两顿火锅,但是你的比其他人多损失了一年时间,这其实是得不偿失的。
这篇关于你是如何学习 Java 的?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解