网上看到一首诗:“代码尽头谁为峰,一见秃头道成空。编程修真路破折,一步一劫渡飞升。”感觉还挺有意境的,之后又看到一句:“欲练此功必先自宫”哈哈,其实大可不必,你只要背好下面篇{绝世武功秘籍之java学习路线图}那你的代码之路必定畅通无阻!
第一部分:Java 基础篇
这个阶段就是编程入门,掌握 Java 这门编程语言的基本语法,为后面的修行之路打好基础。
包括的知识点有:
- 环境搭建——Intellij IDEA 一站式搞定
- Java 基础语法
- 面向对象——封装、继承、多态
- 数组
- 字符串
- 集合框架
- IO
- 反射
- 注解
- 网络编程
- 并发编程
这方面的资源我给大家梳理下:
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架构师,成为能独当一面的那个人,成为一个公司的技术老大,目标一年。
如果你是一个大学生,现阶段很渺茫,如果你是一个转行者,不知如何来学习,那么,我们就是志同道合的人啦!这篇文章非常适合您,建议收藏,好酒还需细品。