小伙伴们,大家好,我是程序羊

上周有几天晚上肝得有点狠,连很多小伙伴通过公众号私信给我提的问题有些都是晚上12点左右才回复的。年龄大了真肝不动了,熬个夜搞得满嘴起泡,浑身不自在。身体要紧,大家都少肝点吧...

本篇文章跟大家再来唠一唠关于Java自学路线的规划问题吧!

是的,关于这个问题,已经在公众号私信里被大家频繁的问起。其实该话题早在去年的视频里已然做过一期聊过了,可能很多小伙伴并没有看到。

得嘞,那就正好通过本篇文章,一五一十地全部写出来吧,不当之处还请指出,大家一起交流进步!

本文讨论的Java学习路线泛指Java后端开发学习路线,因为这无论在哪家公司,哪个业务,后端开发都是项目的大头,也是一个极其重要的工作岗位!


 全局脑图 

先上一张学习路线脑图,这样用图形的方式展现出来,我觉得内容好像也不多 . . .


 基础知识 

该部分是整个路线里面最最重要的部分,也是后续进行框架学习、能看懂开源项目的前置基础,这部分是最不能忽视的!

一、语言本身

如下一些重点必须掌握:

  • 语法基础

  • OO编程思想:类、对象、封装、继承、多态、接口

  • 容器

  • 异常

  • 泛型

  • I/O

  • 注解

  • 反射

  • ~~图形化界面,如 swing的东西跳过不看~~

二、数据结构和算法

  • 几大基础数据结构类型得烂熟于心,比如:字符串链表二叉树队列等等;基本的几大算法要了如指掌,比如查找排序动态规划等等。

三、TCP/IP协议栈

  • TCP/IP协议栈可以说是当下互联网通信的基石,无论如何一定要对TCP/IP的协议栈了如指掌,包括:ARP协议IP协议ICMP协议TCP和UDP协议DNS协议HTTP协议HTTPS协议等等

四、设计模式

  • 倒不需要23种设计模式全部很熟悉,常见的几个,比如:单例模式工厂模式代理模式策略模式模板方法模式等几个熟练于心即可

五、数据库和SQL

  • 数据库基本原理了解,SQL语句熟练书写


 项目工具 

Linux系统基本命令会使用, Linux系统上常用的服务会部署 

代码管理SVNGit 二选一,持续练习,熟练使用 

基于 MavenGradleJava项目管二选一,熟练使用


 应用框架 

一、Spring全家桶

了解Spring、Mybatis等框架的基本原理 

Spring Boot框架会熟练使用、开发业务、掌握基本原理 

SSM组合框架会上手搭建项目、开发业务、掌握基本原理

二、中间件技术

消息队列,主流的如 RabbitMQKafka等 

RPC通信框架,主流的如 gRPCThriftDubbo等 

NoSQL数据库:主流的如 RedismemcachedElasticSearch等 

NIO网络通信框架,主流的如 Netty

这些成熟的中间件框架在企业级产品里应用得广泛而深远,建议先是要会熟练使用,要是能了解底层原理实现那就更加分了!

三、分布式微服务

当下微服务盛行,是个公司都说自己在搞微服务,所以诸如 SpringCloud这样的微服务框架怎么能不学,要求也是先会使用,再尝试搞懂原理

四、虚拟化/容器化

虚拟化、容器化平台是未来发展的大趋势,很多规模化企业都在搭建各SaaS/PaaS/IaaS平台,在此过程中诞生的一系列关于该方面的技术在学有余力的情况下最好也涉猎一下,典型的比如:Docker容器、 kubernetes编排技术。


 关注源码/性能 

在如今这个流量极其密集的互联网时代,关注到源码和性能层面的程序员才是顶级好码农,所以:

  • 关注JDK源码和设计思想
  • 关注Java并发编程原理和实践
  • 关注JVM细节原理与调优
  • 关注上述应用框架的核心思想和内部源码
  • 关注数据库深度优化
  • 等等...

则成了走向顶级程序员之路的必备技能。


 共   勉 

越总结发现自己会的越少,太可怕了......

前文大致列举了这么多要学的东西,不当之处还请指出,大家一起交流。还是那句话,基础最重要实践不可少,多思考总结回顾实践。

学习有时候也不在快,稳一点才能走得更远,慢一点才能走得更快,一起共勉!

知道了路线就趁早学,不拼搏,枉少年

Peace!

2019.12.18 深夜于 南京·秦淮


©著作权归作者所有:来自51CTO博客作者mb5fdcae83766b7的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 艿艿连肝了几个周末,写了一篇贼长的 Spring 响应式 Web 框架 WebF
  2. 如何开发跨框架组件?[每日前端夜话0xA6]
  3. 用纯 JavaScript 撸一个 MVC 框架[每日前端夜话0xA5]
  4. 如何设计一个 RPC 框架
  5. 基于ssm框架实现民宿管理系统
  6. 基于代理的数据库分库分表框架 Mycat实践
  7. 刚入门学习GO语言需要注意什么?有哪些框架?
  8. 使用Python开发客户端和服务端程序 理解应用层协议和表示层
  9. Spring Boot日志框架实践

随机推荐

  1. 关于Weex你需要知道的一切
  2. 使用OpenGL ES 2.0将YUV420P转换为RGBA。
  3. Activity的onStop和onPause的调用时机
  4. Android多渠道打包(三):美团多渠道打包
  5. 编译和测试android的驱动程序学习笔记
  6. 浅析Android的资源打包和安装后Apk文件的
  7. android:打造自定义searchView
  8. Android开发之Android Context,上下文(Act
  9. 安卓消息处理机制
  10. 向Android操作栏中添加操作项和浮动菜单