2021年了,我们该怎样学Java?

Posted YChen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年了,我们该怎样学Java?相关的知识,希望对你有一定的参考价值。

 前言   

 Java技术层出不穷,对于初学者的我们好像觉得学着学着就很迷茫,感觉学不过来!那么我们怎么样可以把Java的学习给坚持下去呢?在这里给大家分享一下我的大表哥他的一个学习经验和方法啊!

首先我们如果要把Java学好,就得确定好两个问题:


到底要学什么?

       就是我们入门破局的时候, 一定要十分谨慎! 一定要多问多了解! 有的小伙伴一听说Java技术很火呀,就开始闷头学习啊, 报班学习啊! 这对我们的时间和金钱成本都是一个很大的浪费!在觉得学Java之前,我们应该了解行业的发展趋势!了解这个技术是干嘛的!最后再确定要不要学. 而且还有一个重要的点就是要了解自己的兴趣. 你得问问自己是不是兴趣在这一块,学习本就枯燥,即便是学霸也觉得学习永远也没有游戏吸引人. 如果你觉得可以了,你才来开始认真学Java,把它作为一个吃饭的工具! 回过头来,既然你选择了Java就不要再怀疑,努力把它学好,学扎实!


怎么学 ?

(1) 协调好工作和学习

       有的小伙伴找到工作了就全身心地投入,没有留有自己的时间来考虑自己的技术到底有没有一个长进,真正做到开发三年就有三年经验,而不是一个经验用三年!怎么去做到呢?往下看

(2) 持续学习与阶段性总结

        我们要定期地做学习总结, 看看自己技术有没有长进,如果你发现自己的技术在原地踏步!那就是一个很危险的信号了!所以我建议小伙伴们学习Java可以分为以下几个阶段来进行学习:


(一) 熟练开发单体应用,快速上手找工作

       这个阶段我们可以找一些简单项目来学习,像一些管理系统(例如微人事),数据报表系统啊! 这个时候我们的目标不要钻牛角尖! 要注重熟练度! 我们要把握脉络, 再扣细节! 一定要把自己的项目练熟练! 一定要注意多从零搭建项目! 很多小伙伴技术学的很多,但是当自己从零开始搭建个项目就很吃力,连maven依赖怎么分析都不明白! 有的小伙伴跟着视频一学, 很顺利的跑起来了, 当自己脱离教程时, 就感觉无从下手! 甚至跑不起来, 连怎么分析问题都无从下手.  所以在这个阶段一定要牢牢掌握自己的基础!

       这里介绍这一阶段我们应该学习哪些方面的知识

        Java基础 : 基础语法,流程调度,集合,多线程,设计模式,网络通讯...

        前 端 : html css js, ajax...

        数据库 : mysql, Oracle, SqlServer

        开发工具: Eclipse, IDEA, VsCode, tomcat, postman, git, maven, gradle, svn, jenkins...

        并且啊! 我们可以通过写博客的方法记录自己所学与理解; 奕臣在这里推荐几个博客社区啊! 像CSDN,掘金这些都不错啊! 像Github, Gitee这些"同性交友网站"也非常热门啊! 还有像一些记录博客的工具: 语雀,石墨,  Typora, ProcessOn...这些都是不错的选择!

       开发框架 : 

              前 端 : Vue, React, Angular 了解

              后 端 : SSM -> Spring, SpringMVC -> SpringBoot, Mybatis -> MybatisPlus --> JOOQ(以java面向对象的思想写sql语句), Spring Data, JPA, 还有早期的Hibernate;

              权限认证框架 : RBAC(能够手写这种模型), Shiro, Spring Security -> OAuth2.0;

       定时任务 : Timer, Quartz, Elastic-job, XXL-job

我们需要对这些技术有一个快速的了解和实战, 并且在这个阶段不需要太深!不需要纠结与某一个点!我们只需要能够灵活的整合这些框架到项目中就ok了!


二 分布式架构

        这个时候项目会开始逐渐复杂起来,这个时候一定要注重理解,注重横向对比! 当单体应用过渡到分布式架构时,会遇到很多技术体系的改造,这个时候一定要注重理解每一个技术解决了什么问题,可能某一个领域会有很多的技术,这个时候要注意横向的对比!不要闷头只看用到的技术!

学习目标如下 : 

       前端 : nginx, LVS, CDN,

       后端框架 : SpringCloud -> Eureka(注册中心), Fiegn + ribbon(服务调度), Gateway(网关), hytrix(熔断)...  SpringCloudAlibaba -> Nacos(配置与注册中心), Dubbo(服务调度), RocketMQ, Sentinel(限流), Seata(分布式事务)...

我们一定要理解它们的用处!这个阶段的API还是比较好学的, 但是重点是我们应该理解他们是怎样解决分布式问题的!

       分布式协调框架 : Zookeepr, Redis, Mongodb, MQ(消息中间件: kfaka, RabbitMQ, RocketMQ) --> 与SpringBoot融合/集成 --> SpringCloudStream(以SpringBoot的方式对MQ的整合,企业常见方式)

       数据库 : 分库分表: ShardingSphere, MyCat

       分布式数据库产品(NewSQL) : PostGreSQL, VoltDB, TiDB...他们在传统数据库的基础上加了分布式的功能

       项目部署 : Docker, K8s

       大数据体系(用到了再学, 注重理解) : Hadoop(Hdfs(解决数据存储),MapReduce(大数据计算)); Hive(大数据索引,在大数据层面写SQL);HBase(做存储); Spark(计算); ES -> ELK; Storm, Flink, KafkaStream(流式计算)   


三 高并发性能调优

    这就好比是修炼内功,破茧成蝶,这个阶段的目标一定要注重实战,运维开发一体化,要多发现问题;注重交流,一定不要闷头学习!跟身边的学习小伙伴一起交流,这样才会加深你对很多技术的理解!当你掌握这一阶段的学习的话,说明你对Java体系的掌握已经到很高的境界了!

       操作系统 : 计算机基础原理,计算机网络, Linux系统

       JVM : 底层原理: 累加载, 内存模型, 锁, 多线程, JVM参数调优 -> JVM问题排查(Arhtas, JVM Tools) -> 性能调优,数据结构和算法, 网络编程 -> BIO/NIO/AIO Netty

       各种框架 : 底层原理, 高级特性 -> 源码阅读(深入了解) -> 手写调优-> 贡献开源代码(业务代码/文档)

       分布式理论 : CAP -> 数据一致性算法: paxos, zab, Raft; 分布式事务; RPC远程调用 -> Netty; 分布式存储 -> hdfs, fastdfs; 分布式ID; 缓存 -> 缓存雪崩, 缓存击穿, 缓存穿透, 缓存一致性...

       细化解决方案(兼收并蓄) : 

              分布式日志 : Skywalking(生成分布式日志号), kafka(日志传输), ELF(FileBeat, LogStash, ElasticSearch, Kibana) , Prometheus(数据收集), Grafana(报表开发工具)

              开放式权限认证 : OAuth2.0, SSO, 多端登录...

              大数据计算(用到就学) : 用户画像, 大数据风控 -> 机器学习,深度学习;

              虚拟化技术 : Docker, Swarm,k8s -> 云原生

      项目实战 : 抽取核心项目,精准问题,精准分析(电商秒杀,微信抢红包,千亿级搜索...)

最后!

四 架构思维 掌控全局

        技术反哺业务,找准封口,引领技术潮流!你要对行业的新发展和新技术保持一个好的敏感度!形成架构思维!你需要全局地把控整个项目的落地!

还有一个很重要的: 一定要提高自己的行业影响力和团队影响力!


为什么社区团购这么火? 从技术上来说并没有太多突破, 就只是拿技术能力去突破新的技术场景,到了这个阶段需要我们了解:

业务体系设计 : 

        Serverless; 中台战略; 云原生架构... 能够从这些新的架构体系找到新的突破点

保持技术敏感 : 

        对新技术把握脉络: Fintech(金融和科技相结合) -> 业务驱动,技术落地,开发管理 -> DevOps, 迭代开发, 敏捷开发, 自助式运维体系, 3D打印...

培养自己的影响力 : 

        团队影响力 -> 公司影响力 -> 行业影响力


经过这四个阶段的学习,那么你的Java水平就会达到一个很高的领域啊!

大家可以对准自己的学习位置,找准学习方案,也希望大家的学习之路不再迷茫!








以上是关于2021年了,我们该怎样学Java?的主要内容,如果未能解决你的问题,请参考以下文章

怎样才能一步步学透java

怎样才能一步步学透Java?

零基础怎样学Java? 要学哪些内容?

怎样学python

都2021年了,还有必要学Flutter吗

Java学习之JDBC