不知不觉踏入互联网行业已经四年了。
回顾当初第一次接触Java,是在大学的课堂,晦涩难懂的知识点,现在还能想起被期末考试支配的恐惧。
直到踏入互联网这个行业,再回想一下自己整个入行到工作的历程,总结了一下学习Java的路线,希望可以帮到各位初入行的Java小白。
多数事情,都要有目标的行动,行动为了完成目标。还可以把目标写下来或打印出来,贴到身边明显的地方,有利于督促自己。
学Java,但是不能只学Java,因为在计算机这棵大树中,Java只是一片叶子。
一个合格的Coder,除了Java,还需要熟悉操作系统、计算机网络、数据库、前端、中间件、框架等等这些东西,如果要成为一个Top Coder,项目管理、英语、沟通、算法也很重要。
就针对就业来说,个人觉得掌握 Java基础、计算机基础、工具的使用、数据库、web前端,Javaweb,框架使用、Linux、中间件,就算一个入门级的Coder了。
我把 Java 基础部分真正要学的内容列一下。
01、Java 简介
02、Java 控制语句
03、Java 数组
04、Java 面向对象(1)
05、Java 面向对象(2)
06、Java 面向对象(3)
07、Java 异常处理
08、Java 集合
09、Java 队列
10、Java Map
11、Java Set
12、Java 字节流
13、Java 字符流
14、Java 并发编程
15、Java 虚拟机
怎么系统化的学习呢?
推荐一套视频,动力节点老杜讲的Java零基础教程,在 B 站上看。
https://www.bilibili.com/video/BV1Rx411876f
计算机基础都包括哪些呢?
计算机组成原理、操作系统、计算机网络、数据结构与算法。
计算机组成原理
先说计算机组成原理,这部分内容主要涉及
计算机基础知识的学习建议学习《计算机专业导论》
计算机专业导论可以帮助你对即将学习的学科有一个大致的了解,知识注重广度而非深度。
软件工程专业的同学也可以去看《软件工程导论》
如果你既想写出质量杠杠的 Java 代码,又想追求开发效率,用 Intellij IDEA 准没错!
可以去 B 站上看一下这个 Intellij IDEA 的教学视频。
www.bilibili.com/video/BV14t411z77T
大家都知道,版本控制系统非常重要!!!!!!
即便你只是一个人在编码,它也可以帮助你创建项目的快照、记录每个改动、创建不同的分支等等。
如果你参与的是多人协作,它更是一个无价之宝,你不仅可以看到别人对代码的修改,还可以同时解决由于并行开发带来的冲突。
版本控制系统有很多,其中最突出的代表就是 Git。
想要把 Git 学好的话,可以看看这套Git教学视频。
www.bilibili.com/video/BV1iv411p7ap
Java 实习工作,不外乎增删改查嘛,不要抱太多幻想,基本上任何一个人的实习经历,都是从 CRUD 开始的。
要学习MySQL 的话,推荐看下边这套
www.bilibili.com/video/BV1fx411X7BD
B站上很经典的视频教程,好评如潮,涵盖MySQL的全部知识点了
这一套组合拳打下来,找一份实习工作我认为是完全没问题了。
这也是一个 Java 后端程序员必须掌握的技能点,缺一不可!
虽然是作为Java后端开发Coder,但是面对一个完整的项目,与前端有着不可或缺的关系。
简单的前端知识我们还是需要了解的。
还有就是,也不是所有的公司都是区分前后端的,全栈工程师显然更厉害。
前端基础技术(HTML/CSS/JavaScript)
HTML:
www.bilibili.com/video/BV11t411K74Q
CSS:
www.bilibili.com/video/BV1tt411M7Vj
JavaScript:
www.bilibili.com/video/BV1Ft411N7R3
另外推荐一些你会遇到的知识学习教程
Linux基础知识(用于做web服务器)
www.bilibili.com/video/BV1Li4y1V7pG
Vue.js(最容易上手的前端框架)
www.bilibili.com/video/BV1q54y1v7T7
Web阶段过后,就是JavaWeb了。
推荐这两套视频,不同版本的,直接跟着视频学
JavaWeb【IDEA版本】
www.bilibili.com/video/BV1Yz411B7Pk
JavaWeb【Eclipse经典版】
www.bilibili.com/video/BV18z411i7g
要找到一份 Java 实习工作的话,Spring 的系列框架是要懂一些,不要求多熟练,如果可以掌握一个框架,尤其是 Spring Boot,那对你也有帮助。因为如果你不会这玩意的话,基本上是做不了项目的。
关于 SSM(Spring+Spring MVC+MyBatis)的学习,可以看下面这个视频。
www.bilibili.com/video/BV1Ug4y1i7W7
关于 Spring Boot 的学习,可以看下边这个视频
www.bilibili.com/video/BV1pK411G7aw
学了 SSM + Spring Boot,就可以上手实战项目了,像 GitHub 上的 vhr 和 mall,都是不错的练手项目,强烈推荐。
这时候你的水平还是仅仅存留在对框架的简单运用上,要想进一步学习,还要找一些框架的源码,进行深入了解。
除此之外还有这个时候的你应该对设计模式了如指掌,还需要看一些关于代码编写优化的书,提高自己的代码能力。
可以学习分布式架构、微服务等提升自己的技术。
随着我们的业务量越来越大和越重要,单体的架构模式已经无法对应大规模的应用场景,而且系统中决不能存在单点故障导致整体不可用,所以只有垂直或是水平拆分业务系统,使其形成一个分布式的架构,利用分布式架构来冗余系统消除单点的故障,从而提高整个系统的可用性。
同时分布式系统的模块重用度更高,速度更快,扩展性更高是大型的项目必不可少的环节。
而微服务架构引入策略 – 对传统企业而言,开始时可以考虑引入部分合适的微服务架构原则对已有系统进行改造或新建微服务应用,逐步探索及积累微服务架构经验,而非全盘实施微服务架构。
既然已经踏入互联网圈子,成为程序员中的一员,就要秉持“一直学习”的观念,经常更新自己的技术库,对于专业的java程序员来说真的不夸张!
推荐视频:
Dubbo视频教程:https://www.bilibili.com/video/BV1Sk4y197eD
Redis视频教程:https://www.bilibili.com/video/BV14t411H76W
Maven多模块管理:https://www.bilibili.com/video/BV1kg4y187td
Linux视频教程:https://www.bilibili.com/video/BV1dt411W7N1
SpringCloud视频教程:https://www.bilibili.com/video/BV1ZV411y7ix
SpringCloud Alibaba视频教程:https://www.bilibili.com/video/BV1nK4y1j7gL
Nginx视频教程:https://www.bilibili.com/video/BV11V411C7r9
Spring Session视频教程:https://www.bilibili.com/video/BV1iK411p7dZ
FastDFS视频教程:https://www.bilibili.com/video/BV1ta4y1v7Kw
RabbitMQ视频教程:https://www.bilibili.com/video/BV1Ap4y1D7tU
MyCat视频教程:https://www.bilibili.com/video/BV1gK4y1b7iU
Docker视频教程:https://www.bilibili.com/video/BV1QA411L7B5
Kubernetes(k8s)视频教程:https://www.bilibili.com/video/BV1KU4y147g3
MySQL集群视频教程:https://www.bilibili.com/video/BV1Rg4y1i7VR
SVN视频教程:https://www.bilibili.com/video/BV1ux411j7H2
Apache Shiro视频教程:https://www.bilibili.com/video/BV14T4y1g75M
大型互联网电商项目:https://www.bilibili.com/video/BV1RQ4y1K7Pq
总之,先把主要知识点掌握彻底掌握,慢一点是正常的,求快得不偿失,等把底层基础知识打牢,在学东西的时候就会快很多,以后完全可以多找项目练手,学习效率嗖嗖的,有时候慢就是快。