双非本科,逆袭中大厂的 Java 学习路线

从零基础入门 Java,到最后秋招上岸,笔者也是花费了不少的经历,也走了很多弯路。这一篇文章会记录下真正有用的学习路线。

为什么要强调真正有用?网上的很多所谓从入门到求职,推荐的路线都超级长,零基础的同学,想要学完然后去找工作,几乎不可能。看了就直接劝退了。比如有些所谓的老师,让一个连代码都没敲几行的同学,去学 Spring 源码,这不是瞎扯嘛?

废话不多说,直接进入正题。我说的路线是面向 Java 开发的,根据路线学完之后,可以选择开发、测试、运维这几个方向。

Java语言入门与进阶

第一个阶段,是 Java 语言的学习,包括入门和进阶。推荐 B 站的韩顺平老师,每个视频看完之后,跟着敲一遍,里面会有作业,也可以做一下,熟悉 Java 的语法。里面的小项目,时间充足的可以做一下,赶时间的直接跳过。

总结这个阶段需要重点掌握的:Java 基本语法、异常、Integer类、String类、StringBuffer、StringBuilder、重点的集合类型,包括:List 、ArrayList、Vector、HashMap、ArrayList、Hashtable,以及多线程、常见的设计模式。

HashMap、ArrayList、Hashtable 这三个集合的get、put操作,需要跟着视频阅读一下源码。

第一遍看,如果觉得自己对这些东西都很陌生,那么遇到源码解析的部分,可以跳过,先学会怎么用,把代码跑起来,让自己和代码之间,有一种亲切的感觉,而不是看到大堆的英文,然后一直浮躁。

时间充裕的,推荐看这本书:《On Java》

MySQL

第二个阶段,学习一种关系型数据库。推荐学习 MySQL,因为他是免费开源的,适合自学,其他数据库都类似。推荐小林的《图解mysql》来简单入门,对于文章类型的资料,第一次看有很多不懂的地方,没关系,反复看多几次,有时间可以看一些大佬写的书,就会有顿悟的感觉了。

时间充裕的,推荐看这本书:《MySQL 必知必会》

Redis

接着来学习缓存数据库,Redis 是最常用的,也是免费开源。资料的话,B站随便找个视频,先学用法,可以部署在本地或者服务器,跑起来之后,试着运行一些命令,为了后面做项目,遇到 Redis 部分不至于太陌生。

SpringBoot + Mybatis

到这里,就进入框架层面的学习了。这两个东西,在 B 站都有一堆的视频,注意不要全看完,不然会很花时间,而且很多看了也会忘,还是先学会怎么用,遇到源码解析部分先跳过,不然看了也是懵逼状态。

SpringBoot 主要掌握一些注解的使用,基本的配置,依赖怎么搞的,同时会涉及到 Maven 的知识,简单了解即可。

Mybatis 主要是用来在框架当中操作数据库的。

实战项目

到这里,可以自己找一个感兴趣的项目,来实战一下了。B站、github、码云这几个平台都可以找,最好找一些有完整教程和完整代码的,可以先部署好,把项目跑起来,然后再从一个个接口入手,学习为什么要这样写。

注意,在实战项目这个过程中,肯定会遇到很多的报错,不要灰心,即使跟视频里一模一样的代码,也可以会报错,因为运行的环境不一样,可能使用的配置版本也不一样,报错很正常。时间充足的可以折腾一下;如果赶时间的话,还是建议找一个有完整代码的项目,不至于一个 bug 自己搞两三天还解决不了,这样的消耗不能说没意义,但是求职路上,时间就是金钱

同时也会遇到一些中间件,比如 MQ、ElasticSearch 等等,也是推荐先学会使用,然后再学底层原理。做的时候可以自己尝试一下使用git 来管理代码,而不是直接存在某个文件夹,习惯提交代码、回滚之类的基本操作,因为工作之后肯定要用到的。代码管理平台推荐国内的码云(gitee)。

找工作

学完以上这些东西,就可以直接背八股文,然后找工作了,如果目标是小厂,那么上面这些就足够了。

目标是中大厂的同学,还要补一下 JVM 、计算机网络、操作系统。主要都是一些八股文,我自己是买了一个八股文小程序,每次面试之前,都突击一下。不想花钱的同学,可以看小林 coding 的网站,但感觉还是我的小程序比较给力,至少命中率都挺高的。

对于八股文小程序的说明,可以看这里。

以上要学的东西,都是一定有用,而不是可能有用,时间紧迫,在有限的时间,我们要做优先级最高的事情!

最后,文中所提及的书籍,都可以在微信公众号“徒手敲代码”当中免费获取,这也是我自己的公众号,希望通过分享自己的面试求职心得,以及对常见面试题的理解,帮助更多的小伙伴找到心仪的工作。

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

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

相关文章

LeetCode198:打家劫舍

题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存…

【学习笔记】Windows GDI绘图(六)图形路径GraphicsPath详解(中)

上一篇【学习笔记】Windows GDI绘图(五)图形路径GraphicsPath详解(上)介绍了GraphicsPath类的构造函数、属性和方法AddArc添加椭圆弧、AddBezier添加贝赛尔曲线、AddClosedCurve添加封闭基数样条曲线、AddCurve添加开放基数样条曲线、基数样条如何转Bezier、AddEllipse添加椭圆…

华为校招机试 - 最久最少使用缓存(20240508)

题目描述 无线通信移动性需要在基站上配置邻区(本端基站的小区 LocalCell 与周边邻基站的小区 NeighborCelI 映射)关系, 为了能够加速无线算法的计算效率,设计一个邻区关系缓存表,用于快速的通过本小区 LocalCell 查询到邻小区 NeighborCell。 但是缓存表有一定的规格限…

代码随想录-Day07

454. 四数相加 II 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < n nums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&#x…

系统磁盘高级管理、lvm例子、创建pv、创建VG、创建lv、磁盘扩展

LVM&#xff1a; 逻辑卷&#xff0c;动态调整分区大小&#xff0c;扩展性好 创建pv pvcreate &#xff1a; 将实体 partition 创建成为 PV &#xff1b; pvscan &#xff1a; 搜寻目前系统里面任何具有 PV 的磁盘&#xff1b; pvdisplay &#xff1a; 显示出目前系统上面…

GNSS仿真测试之三种常用坐标系与转换

作者介绍 在当今的全球导航卫星系统&#xff08;GNSS&#xff09;技术领域&#xff0c;仿真测试是评估和验证GNSS接收机性能的关键环节&#xff0c;全球导航卫星系统&#xff08;GNSS&#xff09;仿真测试是确保GNSS接收机和导航解决方案在实际部署前能够正确、可靠地工作的关键…

【git】学习记录: 贮藏功能

Git 贮藏修改是一种临时存储工作目录中已经修改但尚未提交的更改的机制。通过贮藏修改&#xff0c;你可以将当前的工作目录状态保存起来&#xff0c;以便你可以在之后的时间点重新应用这些更改&#xff0c;或者在不同的分支间切换时避免冲突。 要使用 Git 贮藏修改&#xff0c…

Linux(centos)常用命令

Linux&#xff08;Centos&#xff09;常用命令使用说明文档 切换到/home目录下 使用cd命令切换目录&#xff0c;例如&#xff1a; cd /home列出/home目录下的所有文件 使用ls命令列出目录下的文件和子目录&#xff0c;例如&#xff1a; ls /home新建目录dir1 使用mkdir命…

头歌OpenGauss数据库-I.复杂查询第1关:获取前N名成绩

本关任务&#xff1a;编写函数来实现获取前N名成绩的方法。 提示&#xff1a;前面的实验没有提供编写自定义函数的示例&#xff0c;需要参考OpenGauss数据库文档学习自定义函数的使用。 score表内容如下&#xff1a; IdScore13.5223.6534.2343.8554.2363.65 --#请在BEGIN - END…

python windows 开发.exe程序笔记

import win32api import win32gui import win32con import time import tkinter as tk## pyinstaller --onefile t4.py 将python 代码打包为windows可执行文件 .exe ## airtext 大漠 def clickGoogle():hw win32gui.FindWindow("Chrome_WidgetWin_1", "新标…

解决Redis 缓存雪崩(过期时间不一致) 和 缓存穿透(黑名单)

解决Redis 缓存雪崩&#xff08;过期时间不一致&#xff09; 和 缓存穿透&#xff08;黑名单&#xff09; public Product getdetailById(Integer id) {String key "product." id;// 查询黑名单中是否有该keyBoolean b hashOperations.hasKey(PROODUCT_DETAIL_B…

算法 Hw7

Hw 7 Graph Algorithm 1 Edge detection2 Reachability3 Bitonic shortest paths 1 Edge detection 由 Cut Property 可知&#xff1a;如果 e 是从某个集合 S 到补集 V−S 的开销最小的边&#xff0c;则 e 一定所有最小生成树中。 由 Cycle Property 可知&#xff1a;如果 e 是…

Gradle常见问题及总结

使用android studio开发项目&#xff0c;难免遇到gradle相关的错误&#xff0c;在此总结。 gradle插件与gradle home版本关系错误 参考更新 Gradle Gradle下载太慢 Index of /gradle/ (tencent.com) 是国内下载地址,手动下载对应版本即可 缓存不刷新 问题描述 maven发布…

jenkins插件之xunit

分析测试工具执行的结果&#xff0c;并图形化&#xff0c;比如phpunit&#xff0c;phpstan,可分析junit格式的结果 安装jenkins插件 搜索xunit并安装 项目配置 配置 - Build Steps 您的项目 - 配置 - Build Steps, 新增 Run with timeout 超时时间根据实际情况配置 Build…

Day38 贪心算法part05

LC435无重叠区间(未掌握) 思路&#xff1a;先对数组进行排序&#xff0c;找到非重叠的区间的个数&#xff0c;然后区间的总数减去非重叠区间的个数即是需要移除的区间的个数与LC452用最少数量的箭引爆气球类似&#xff0c;但是不同的是[1,2]和[2,3]在此题并不是重叠区间但是在…

oracle怎么处理json格式

向数据库导入json相关jar包 loadjava -r -f -u bsuser/XXXX192.168.10.31/bsorcl json.jar 要删除的话&#xff0c;删除指定jar dropjava -u bsuser/XXXX192.168.10.31/bsorcl json.jar select * from user_java_classes 然后我们就可以取到json串中任意节点的值

Linux完整版命令大全(四)

2. linux系统设置命令 alias 功能说明&#xff1a;设置指令的别名。语  法&#xff1a;alias[别名][指令名称]补充说明&#xff1a;用户可利用alias&#xff0c;自定指令的别名。若仅输入alias&#xff0c;则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。…

行列视(RCV)部署在互联网还是部署在企业内部?

行列视&#xff08;RCV&#xff09;的部署方式可以根据企业的具体需求和情况来灵活选择。它既可以部署在互联网上&#xff0c;也可以部署在企业内部。 对于希望实现远程访问、多地点协同工作或者与第三方服务集成等需求的企业&#xff0c;可以选择将行列视&#xff08;RCV&…

Postgresql源码(129)JIT函数中如何使用PG的类型llvmjit_types

0 总结 llvmjit_types文件分三部分 类型定义&#xff1a;llvm通过变量找到对应结构体的定义&#xff0c;在通过结构体内的偏移量宏使用成员变量。模版函数定义&#xff1a; 第一&#xff1a;AttributeTemplate被当做一个函数属性的模板&#xff08;例如nofree、nosync等clang…

SpringBoot项目中redis序列化和反序列化LocalDateTime失败

实体类中包含了LocalDateTime 类型的属性&#xff0c;把实体类数据存入Redis后变成这样&#xff1a; 此时&#xff0c;存入redis不会报错&#xff0c;但是从redis获取的时候&#xff0c;会报错&#xff1a; com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Ca…