学习Java开发按此路线规划,从10K到40K全都有了,我就是这样过来的

news2024/11/19 8:37:28

如果有一天我醒来时,发现自己的几年Java开发经验被抹掉,重新回到了一个小白的状态。我想要重新自学Java,然后找到一份自己满意的Java工作,我想大概只需要6个月的时间就够了,如果顺利的话,4个月也差不多。如果我再想重新回到高级Java工程师的水平上,我只需要3年的时间就可以,当然这是让我带着记忆重新去学习。

上面这段话只想表达一个观点,那就是我的工作经验被抹掉,但是我带着记忆重新学,我就不会走弯路,会避免很多坑,知道怎么样的学习效率才会高,知道自己所学的内容是工作中常用的,达到就业的水平自然会很快。我们都知道自学Java很困难,在没有大佬带的情况下,就会走很多的弯路,弯路一旦走的太多,就会越来越迷茫,看不到自己进步以及就业的希望,最后导致信心逐渐丧失而放弃学习。

所以我写的这篇文章,就是要为大家的学习进行合理的规划,避免走太多弯路,高效率的快速达到就业的水平。

以下学习规划路线的安排,完全是根据我个人真实学习经历写的,是从初级到困难进行学习,目标薪资从初步10K到40K的技术水平进行循序渐进的学习,大家可以根据自己的能力进行选择性学习,如果觉得自己学习能力弱,就学最简单的部分,如果觉得自己学习能力强,并且有更多的时间,就可以学习后面更难的技术,为冲击大厂做准备。
 

学习前小提示:
  • 选择最新的视频学习,两年以前的视频都不要去看。
  • 想要学好编程要靠动手写代码,而不是刷视频,不是背代码。
  • 学习编程的各种工具都提前准备好,开发工具,笔记本软件等。

Java基础

  • 基础语法、数组、面向对象、抽象类、接口、枚举、常用类、集合、泛型、注解、异常处理、多线程、IO 流、网络编程、反射。

学习目标:打下扎实的语言基础,深刻理解面向对象的抽象概念,具备初步编码能力,培养对于编程的兴趣,拥有良好的理论与实操的水平。

学习建议:推荐书籍《Java核心技术》,把书上的代码都跟着敲一遍,你的基础理解水平会比大多数人都要好,过了这个阶段后,你就具备了基本编码的能力。

MySQL数据库

  • 概念、SQL 搭建、语句编写、约束、索引、事务、表设计、性能调优。

学习目标:掌握基本的增删改查SQL语句编写,可以独立设计数据库表。

学习建议:大量的SQL语句练习必须跟上,根据具体的需求场景来锻炼设计表的能力,其实学习数据库没什么难的,真的是熟能生巧的过程。

常用框架

  • JavaWeb
    • 网页应用开发基础、前端基础、XML、JSON、Servle、Filter、Listener、Cookie、Session。
  • Spring
    • IOC、AOP、事务。
  • SpringMVC
    • 请求与响应、Restful API、拦截器、配置、执行过程。
  • MyBatis
    • 增删改查、全局配置、动态 SQL、缓存、和其他框架的整合、逆向工程。
  • MyBatis Plus
    • 引入、通用 CRUD、条件构造器、代码生成器、插件扩展、自定义全局操作。
  • SpringBoot
    • 常用注解、资源整合、高级特性、本地热部署。
  • Redis
    • 数据类型、常用操作、Java 操作 Redis、主从模型搭建、哨兵集群搭建、日志持久化、应用场景。

学习目标:掌握现代企业常用的主流框架的应用,可以应付日常项目的开发工作。

学习建议:Java语言衍生出的生态特别庞大,技术是永远学不完的。所以对于普通人来讲,只需要掌握企业普遍使用的框架就好,根据个人能力的大小,进行自我学习提升。以上我列出的知识点,基本是现代企业必用的技术,一定要按照我写的顺序进行学习。框架主要在于实际应用,所以千万不要懒,光看是没有用的,一定要自己去实际应用,先把代码敲出来再说,很多抽象的概念暂时理解不了没关系,以后会慢慢懂的。

其他

  • Maven、Git
    • 项目开发中常用的管理工具,掌握其基本操作即可。
  • Linux
    • 做开发必备的Linux服务器,很多项目都是运行在Linux上,需熟悉Linux的基本操作和脚本编写。
  • Docker
    • 开发中最常用的容器,提高开发和维护的效率,很容易学习。

以上内容全部学完,大概可以找一份工资10K-12K月薪左右的工作,就是初级程序员的水平。这些知识点是最保守的学习内容,一个知识点都不可以落下,都是目前企业对于Java程序员最基本的要求。到此为止,想要找到一份初级开发工作的内容学习就结束了,下面就是面试前的一些准备,以及还想学习更多内容的后续......

需要以上学习内容的最新视频教程、文档、工具、资料包的可以加我的Java交流群进行下载获取。

面试前的准备

只是学习Java体系里面的基本内容,在目前的行业发展趋势来看,那是远远不够的,或者是不具备一定竞争能力的。目前企业招聘对于数据结构、算法、计算机组成原理、计算机网络、操作系统等,都有一定的考察,尤其是数据结构与算法,基本是企业笔试中必考的一项,所以在面试之前,我们还要学习一些面试需要的内容。
  • 数据结构与算法
    • 数据结构是算法的根本,而算法可以说是优秀程序员的灵魂,学好算法有助于我们更好的理解代码,开拓思路从而写出更加简洁健壮的代码。而根据目前招聘来看,很多公司必考算法题。所以我建议大家在学完Java基础后,要坚持每天去LeetCode刷两道算法题,算法这关过了才有可能拿到好公司的offer。
    • 推荐书籍《大话数据结构》《算法导论》《剑指offer》。
  • 开发规范
    • 想要成为一个优秀的程序员,或者想要进入更好的公司,那么开发规范就是必须遵守的,这会提高项目开发效率、降低维护成本。而大多数学习者对这方面根本不在意,所以我们能看到就是大多数人永远只是“码农”,最后逃脱不了被淘汰的命运。
    • 推荐阅读:阿里巴巴 Java 开发手册:Alibaba Java 技术图谱-阿里云开发者社区
  • 面经/面试题
    • 大量的去刷面经,刷面试题,这相当于高考前2个月的冲刺,一定会大大提高你获得更多offer的概率。

自学Java会很坎坷,遇到问题自己解决不了,找工作碰壁,不知道如何练习项目,这是大多数人自学Java都会遇到的难题,也是我曾经自学过程中体验过的痛苦。如果你有上述的问题,可以跟我们一起交流,一起进步,我建立了五年的Java交流群,如果你也想找一个组织一起学习,欢迎你的加入~

如果这些你都准备好了,你可以放心的去找工作啦!!!

如果你不满足于这些,请继续阅读下面进阶部分!!!

计算机基础

如果你有很好的校招资源,想要进入到大型互联网公司,那么计算机基础三剑客就是必须要学的,好公司必考的计算机组成原理、计算机网络以及操作系统。或者你想进入好的公司,想要成为更优秀的程序员,你也可以利用空闲的时间补习计算机基础理论。
  • 计算机组成原理
    • CPU
    • 内存
    • 主板
    • 输入/输出设备
    • 硬盘
    • 显卡
  • 计算机网络
    • HTTP / HTTPS 协议
    • 网络模型
    • UDP / TCP 协议
    • 网络安全
    • 域名解析
  • 操作系统
    • 进程、线程
    • 进程 / 线程间通讯方式
    • 进程调度算法
    • 进程 / 线程状态
    • 死锁
    • 内存管理

学习建议:这部分内容偏理论知识,主要是拓展知识面,一般都是大厂对于应届生知识面宽窄的考察,学起来可能会枯燥一些,所以自己尽量要对计算机建立起一些兴趣。推荐的书籍有《图解HTTP》、《深入理解计算机系统》、《自下向上的计算机网络》。
 

设计模式

如果我们可以学好设计模式,那么对于我们提升薪资会有很大的帮助。设计模式是项目开发中解决某一类问题的通用解决方案,类似于算法一样,算法其实就是一系列问题解决的方案。我们工作中常用的框架,里面就有很多设计模式的体现,在后面如果要学习框架源码时,如果你不会设计模式,是没法进行源码学习的。
  • 23种设计模式
    • 单例模式、工厂方法模式、抽象工厂、建造者模式、原型模式、适配器模式、组合模式、装饰器模式、代理模式、享元模式、外观模式、桥接模式、迭代器模式、模板方法模式、策略模式、命令模式、状态模式、责任链模式、备忘录模式、观察者模式、访问者模式、中介者模式、解释器模式。

学习建议:设计模式的学习在于逐个击破,先理解好每一种模式的基本概念,以及每一种设计模式适用于哪种应用场景,然后在把每一种设计模式应用到实际项目的开发中,也是熟能生巧的过程。推荐推荐经典的一部书籍《图解设计模式》,吃透这本书,足可以让你掌握好这23种设计模式应该如何应用。

消息中间件

不同的公司会使用不同的消息中间件,作用一般都是解决具体项目遇到的问题,提高项目运行效率、维持项目的稳定性。不过常用的消息中间件主要就是以下4个,如果在面试的过程中被问到,可以成为自己很好的加分项。
  1. RabbitMQ
  2. ActiveMQ、
  3. Kafka、
  4. Nginx

学习消息中间件并不难,跟着视频操作一下很快就能学会,了解它们各自的应用场景,然后在项目中进行使用,上手很容易。

微服务

如果你想拿到20K以上的薪资,那么微服务框架Sping Cloud是你必须要掌握的技术,Spring Cloud是微服务系统架构的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。
  • Spring Cloud
    • 注册中心
    • 配置中心
    • 网关路由
    • 熔断保护
    • 负载均衡
    • CAP事务
    • 幂等原则
    • 微服务架构

这部分内容有一些难度,而且涉及的内容体量较大,同时也需要良好的基础,以及对于之前Spring系列框架良好的理解才能上手学习。如果觉得自己之前掌握的不错,并且有较好的学习能力,可以着手于微服务的学习。

以上拓展内容就是大多数普通人可以达到的极限了!

如果你想收获30K以上的offer,请继续为自己的技术栈进行下面的拓展!
 

高并发

如果你有机会进入到大厂,那么并发一定是大厂考察的重中之重,大厂开发的各种项目中,存在着各种并发的情况出现,所以在大厂的Java后端程序员是必须要懂得并发编程的。但是学习并发编程需要一定的开发经验,需要有一定的学习能力,所以这部分的内容要上一个台阶。
  • Java并发编程
    • Java NIO
    • Reactor模式
    • 分布式锁
    • 分布式ID
    • 分布式缓存
    • 高并发架构
    • 多线程
    • 线程池
    • 内置锁
    • JMM
    • CAS
    • JUC
    • 高并发设计模式

虚拟机

成为一个优秀的Java高级程序员必经之路,真正了解Java语言底层构造原理,掌握虚拟机性能调优的方法,写出占用内存最小且性能最高的程序代码,到这里你已经战胜了90%以上的技术人。
  • JVM
    • JVM生命周期
    • JVM体系结构
    • JVM内存区域
    • 类加载机制
    • 垃圾回收
    • 垃圾收集器
    • 性能调优

学习建议:学习Java虚拟机看这本最经典的《深入理解 Java 虚拟机》就够了。

源码

如果你对技术非常痴迷,如果你想要做系统架构师,你可以到这步开始阅读框架源码了。都说程序员到了35岁就会被淘汰,但是任何一个行业最后被淘汰的人,一定是那些早早就停下了学习脚步的人,作为可以轻松阅读源码的技术人,你只会成为这个行业中稀缺的技术人才,因为你已经具备了自己核心竞争力和不可替代性。

框架源码

  • Spring
  • SpringMVC
  • MyBatis
  • SpringBoot
  • SpringCloud

学习建议:能达到这步的人很少,如果你已经达到了这步,说明你具备了非常优秀的自学能力,搜集资料的能力,解决问题的能力,持之以恒的意志,剩下的就都靠自己去摸索了,技术论坛是你每天必逛的,技术性书籍是你每天必看的。

Java程序员三个发展方向:


1. 技术

资深技术工程师,对于技术比较痴迷,有这方面的钻劲。以后可以去做技术顾问,可能一周只去公司两天,但是拿的工资是非常高的。

  • 初级程序员(薪资6k-15k)

刚刚进入IT行业,做一些简单的项目,写一些简单的代码。写代码的时候还是会依靠复制粘贴的方式完成代码的编写,他们不考虑程序的质量,代码也写的很乱,也没有注释,他们只要求程序能够运行就好。

  • 中级程序员(薪资16K~30K)

到了这个阶段,已经掌握了较好的技术,可以靠自己去做一些项目了,不在需要靠复制粘贴别人的代码了,开始关注代码的质量,代码的规范,把该注释的地方,注释好,开始做很多实用的项目。并且在团队中担任重要的技术人员职位。

  • 高级程序员(薪资30K~50K)

到了这个阶段,技术已经非常厉害了,很技术人员开始走设计路线,比如系统设计等等。公司会有很多的技术难题需要靠你去解决,这个时候是属于大神级别了。在公司会有非常重要的位置,受到领导的重视。

  • 系统架构师(薪资50K~100K)

系统架构师是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。主要着眼于系统的“技术实现”。因此他/她应该是特定的开发平台、语言、工具的大师,对常见应用场景能给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价。 系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单等。

2. 管理(年薪20万-100万)

有长时间的工作经验,在公司可以带别人去成长,目前常见的三个管理职业,项目经理、产品经理,技术总监。做管理需要高情商,维护人事关系,有自己的大局观,承受压力的能力要强,就是心比较累,承受的东西比较多。

3. 创业(收入无上限,但风险很大)

走创业这条路,风险大,付出的精力非常多,要有启动资金,平时需要积累人脉资源。性格需要是那种不认输的性格,为人比较乐观开朗。有良好的团队运作能力。

创业必须有很好的点子,抓住时代的机会,比如现在的碎片化时间,很多人在玩一个消消乐的游戏,这就是抓住了现代人生活方式的一个点子。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/191722.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用光盘怎样重装电脑系统

用光盘怎样重装电脑系统?重装系统,听起来好像很难的样子。其实没那么难,用光盘装还是比较容易的。下面一起看看如何用光盘重装系统吧。 工具/原料: 系统版本:win7 品牌型号:联想yoga13 方法/步骤&#xf…

Vue使用axios发送get请求并携带参数

前言 其实关于Vue使用axios发送get请求并携带参数,我之前写过一篇,但是昨天又发现了另外一种方式,所以就单独写一篇进行总结。 之前写的那篇使用get请求并携带参数都是使用的字符串拼接的方式 感兴趣可以参考: Vue使用axios进行g…

基于Android的校园资产管理系统

需求信息: 管理员用户: 1:用户注册登录:通过手机号码、用户名称以及密码完成用户的注册和登录 2:添加资产:添加资产的编号、名称、归属部门之后生成资产二维码,以及查看添加过的资产信息 3&…

amCharts Javascript Web 5.3.0 Crack

添加新的 JSON 插件,允许您将序列化 (JSON) 配置解析为图表。 2023 年 1 月 31 日 - 16:00新版本 特征 添加了新JSON插件,允许将序列化 (JSON) 配置序列化和解析为图表。 crisp(默认:)false设置已添加到Sprite。如果设…

已经拿到IB成绩的学生,应该怎么为申请大学做准备呢?

2023年将会是过渡的一年,前几年的高分可能一去不复返了,大家心里也是要做好准备。对于今年已经拿到IB成绩的孩子们,应该怎么为申请大学做准备呢?老师也给了大家一些建议。1.如何递交IB成绩给申请的大学?今年1月出成绩的…

Shell + Datax 动态传递时间参数模式

Datax 数据同步模式Shell 脚本实现Datax 数据同步四种模式Datax 数据全量同步模式此脚本省略...Datax 数据实时增量(T1)模式功能:实现前一天日期 00:00:00 至前一天日期 23:59:59 数据同步#!/bin/bash # 切换至增量脚本文件存储目…

[NOI Online #3 入门组] 最急救助

题目描述: 救助中心每天都要收到很多求救信号。收到求救信号后,救助中心会分析求救信号,找出最紧急的求救者给予救助。 求救信号是一个由小写英文字母组成的字符串,字符串中连续三个字符依次组成sos的情况越多(即包含子串sos的数…

【蓝桥杯单片机】工厂灯光控制系统案例解析(小蜜蜂老师基础综合实训)

工厂灯光控制系统案例解析题目流程图关键点复盘参考代码(IO模式)题目 流程图 关键点复盘 设备检测——移位 L1~L8在板子上是从左至右,但是在对P0口赋值时是16进制从高位(L8)—>低位(L0) 根据原理图,LED赋值0亮1灭 为了方便赋值…

OpenShift 4 - 在单节点的 OpenShift 上用 NFS Operator 实现以 RWX 访问存储

《OpenShift / RHEL / DevSecOps 汇总目录》 文本已在 OpenShift Local 4.12 环境中进行验证。 文章目录OpenShift 支持的存储访问模式用 NFS Provisioner Operator 实现 RWX 访问存储安装 NFS Operator解决安装 Operator 过程无法访问谷歌 gcr.io 上的容器镜像配置 NFSProvisi…

《零基础学机器学习》读书笔记三之基本机器学习术语

《零基础学机器学习》读书笔记三之基本机器学习术语 一、机器学习快速上手路径(续) 1.3 基本机器学习术语 1.3.1 特征 特征是机器学习中的输入,原始的特征描述了数据的属性。特征的维度指的是特征的数目。 把向量、矩阵和其他张量的维度统…

React脚手架应用(二)

1、react脚手架 脚手架简介 用来帮助程序员快速创建一个基于xxx库的模板项目 1、包含了所有需要的配置(语法检查、jsx编译、devServer…); 2、下载好了所有相关的依赖; 3、可以直接运行一个简单效果; create-react-a…

加速企业数字化进展,小程序容器来帮忙

近年来,由于新冠疫情,诸多企业面临经济挑战,高效办公常常无法正常保证。在此期间,不少企业纷纷加快了数字化进展。 2021年,在Gartner新型技术成熟度曲线中我们看到:组装式应用、实时事件中心即服务、生成式…

软考高级系统架构师背诵要点---系统安全与系统可靠性分析

系统安全与系统可靠性分析 系统安全: 信息摘要、数字签名、数字信封 被动攻击:收集信息为主,破坏保密性 窃听:用各种可能的合法手段和非法手段窃取系统中的信息资源和敏感信 业务流分析:通过对系统进行长期的监听&a…

Spark08: Spark Job的三种提交模式

一、三种任务提交方式 1. 第一种,standalone模式 基于Spark自己的standalone集群。指定–master spark://bigdata01:7077 2. 第二种,是基于YARN的client模式。 指定–master yarn --deploy-mode client 使用场景:这种方式主要用于测试&am…

Homekit智能家居DIY-智能通断开关

智能通断器,也叫开关模块,可以非常方便地接入家中原有开关、插座、灯具、电器的线路中,通过手机App或者语音即可控制电路通断,轻松实现原有家居设备的智能化改造。 随着智能家居概念的普及,越来越多的人想将自己的家改…

自定义archetype脚手架完整步骤与异常情况处理方案

自定义archetype脚手架完整步骤与异常情况处理方案一、创建模板项目二、生成骨架jar包三、骨架安装到本地仓库如果出现安装位置错误的情况,参考以下场景处理:四、选择骨架,创建新项目创建项目时,如果一直卡在Generating project i…

Java集合(七)LinkedHashSet

LinkedHashSet的全面说明: (1)LinkedHashSet是HashSet的子类 (2)LinkedHashSet底层是一个LinkedHashMap,底层维护了一个数组双向链表 HashSet为数组单向链表 (3)LinkedHashSet根据元素的has…

Redis基础篇:Redis常见命令与数据结构

文章整理自B站黑马视频课程第一章:Redis数据结构介绍一:五种常见基本类型二:三种不常见类型第二章:数据类型的使用一:Redis通用命令二:String类型1:String常见命令2:String常见命令实…

任务系统的程序设计

任务是程序应用中常见的系统,它有助于用户代入角色,也有助于研发、运营和用户的互动,通常完成任务之后会给予用户一定的奖励。1,基本数据结构早期的任务系统设计的都很简单,大部分都是线性结构,偶尔会有环任…

负载均衡-

常见的负载均衡系统包括 3 种:DNS 负载均衡、硬件负载均衡和软件负载均衡。 DNS 负载均衡 DNS 是最简单也是最常见的负载均衡方式,一般用来实现地理级别的均衡。例如,北方的用户访问北京的机房,南方的用户访问深圳的机房。DNS 负…