网上看到一首诗:“代码尽头谁为峰,一见秃头道成空。编程修真路破折,一步一劫渡飞升。”感觉还挺有意境的,之后又看到一句:“欲练此功必先自宫”哈哈,其实大可不必,你只要背好下面篇{绝世武功秘籍之java学习路线图}那你的代码之路必定畅通无阻!

第一部分:Java 基础篇

这个阶段就是编程入门,掌握 Java 这门编程语言的基本语法,为后面的修行之路打好基础。

包括的知识点有:

  1. 环境搭建——Intellij IDEA 一站式搞定
  2. Java 基础语法
  3. 面向对象——封装、继承、多态
  4. 数组
  5. 字符串
  6. 集合框架
  7. IO
  8. 反射
  9. 注解
  10. 网络编程
  11. 并发编程

这方面的资源我给大家梳理下:

1)针对 Intellij IDEA,GitHub 上有一份简体中文版教程:

https://github.com/judasn/IntelliJ-IDEA-Tutorial

2)针对 Java 基础知识总览,我这有一份 GitHub 上星标 115k+ 的教程,我亲自整理的,包括 Java 基础、Java 容器、Java 并发、Java 虚拟机和 Java IO,可以说非常全面了。

太赞了,绝世武功之路非他默许了GitHub 上标星 115k+ 的 Java 教程!

大家可以通过这份教程先过一遍。

并发编程是其中一块难点,所以我在这给大家整理了另外一份牛逼的学习资料,几位阿里大佬写的,名叫《进阶Java 并发编程》,非常强!丝777拿

以后面试再也不怕被问Java并发编程了,多亏了这本PDF电子书

所涉及的知识点我用下面的思维导图汇总下。

第二部分,数据库

虽然数据库是SQL Sever 有些书上的语句执行不了,貌似书采用的是Oracle数据库的SQL,不过没关系,初学我们最重要的是掌握其思想,很多思想和方法语句在其它数据库都是通用的,大同小异,只是有可能一些实现语句不同而已。首先要学习一下 SQL,然后是 MySQL,再拓展的话,还有 Redis,互联网技术领域中使用最广泛的存储中间件,还有 MongoDB,非关系型数据库。

第三部分:框架

其实框架,就是别人写好了包装起来的一套工具,把你原先必须要写的,必须要做的一些复杂的东西都写好了放在那里,你只要调用他的方法,就可以实现一些本来要费好大劲的功能。形象一点说吧,假如你盖房子,你是自己一砖一瓦的盖简单呢,还是拿一个现成的架子往上面添东西简单呢?结果不言而喻吧,有一个半成品的架子,你只需要添上一些你自己额外需要加的东西就好了。这就是框架的好处。假如,好多好多地方都要用这么一套逻辑,那么我们会定义成一个方法(函数),就免去了写同样代码的麻烦,其实这个方法,就是一个框架啦,只不过非常小而已。

大部分 Java 程序员都要从事 JavaWeb 的相关开发工作,要开发 JavaWeb,自然就离不开 Spring 的系列框架。甚至可以这么说,没有 Spring 的 Java 项目是不存在的。Spring 框架正在变得越来越庞大,但核心的概念仍然是 IOC 和 AOP,也就是控制反转和面向切面编程。这个两个概念对于初学者来说,学习曲线有点陡峭。

目前流行的内容主要是:

  • Spring
  • Spring MVC
  • MyBatis
  • Spring Boot
  • Spring Cloud

要学习 Spring,能读的书不多,我能想到的只有《Spring全家桶》

还有这篇2022八股文面试合集,很合适大把人的。有需要学习的小伙伴,可以伽维:bjmsb12

然后是 MyBatis,不用找书看了,直接看官方文档就行,讲得特别好。本身 MyBatis 也没有特别难的东西,就是一些 XML 配置和动态 SQL。

https://mybatis.org/mybatis-3/zh/index.html

Spring+SpringMVC+MyBatis 这三个框架学完,可以说你就具备了开发企业级应用的能力了。至于 Spring Boot,我推荐看纯洁的微笑的博客,访问量在千万级别以上,影响了无数的初学者,我个人强烈推荐。

http://www.ityouknow.com/spring-boot.html

最后是 Spring Cloud,是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。

博客的话,推荐纯洁的微笑。

第四部分:练手项目

到底是不是一个好的 Java 练手项目,关键的因素在这个项目的文档是否全面!这个因素我认为是最重要的,GitHub 和码云上有成千上万的项目,真正能脱颖而出的不在这个项目有多牛逼,作者的技术有多厉害,而在于这个项目的文档能不能让大家看得懂!

我不给大家推荐太多,多的话,就乱,不知道该从哪个开始。

1)电商秒杀

SpringBoot 完整电商系统 Mall:包括前台商城系统及后台管理系统,基于 SpringBoot+MyBatis 实现。

miaosha:秒杀系统设计与实现。

2)博客论坛

vhr:微人事是一个前后端分离的人力资源管理系统,项目采用 SpringBoot+Vue 开发。

halo([ˈheɪloʊ],意为光环,也可以当成拼音读(哈喽)):一个优秀的开源博客发布应用。

这些项目都非常适合作为练手项目。

后端技术栈

  • Spring Boot
  • Spring Security
  • MyBatis
  • MySQL
  • Redis
  • RabbitMQ
  • Spring Cache
  • WebSocket

前端技术栈

  • Vue
  • ElementUI
  • axios
  • vue-router
  • Vuex
  • WebSocket
  • vue-cli4

第五部分:简历+算法+面试

到这一步,基本上理论知识也有了,经验也有了,剩下三件事:

  • 准备简历
  • 刷算法题
  • 刷面试题

这个学习路线图是真的强,各位学弟学妹们看到的话,一定要收藏, 毕竟等于学会呀!

总结:

现在公司的现状是码农太多,但能独立带队的人太少,简而言之,不缺干活的,缺PM。

也许这也是这个行业的现状,也是传说中的“35岁危机”的最好解释,如果你马上35岁了,但是你能干的,毕业生也能干,老板还要你作甚?

最近也有很多好友在群里问我,Java知识体系庞大,按照什么顺序学习才是最高效的呢?

学好以上这些就致力于知识的扩展和学习,争取有朝一日能成为Java架构师,成为能独当一面的那个人,成为一个公司的技术老大,目标一年。

如果你是一个大学生,现阶段很渺茫,如果你是一个转行者,不知如何来学习,那么,我们就是志同道合的人啦!这篇文章非常适合您,建议收藏,好酒还需细品。