震惊!2022年秋招java后端开发岗竟然一片红海!算法岗都不香了吗?

沉默王二 沉默王二     2022-12-05     636

关键词:

据说,2022 年算法岗遇冷,BAT 暑期实习甚至收不到简历,Java 反而爆炸。

难道,Java 的春天(映射 Spring 全家桶)又要来了吗?作为 Java 领域的优质创作者(见下图),又可以在 CSDN 横着走了吗?


如何看待 2022 年秋招 Java 后端开发岗一片红海?这不仅让我想起脉脉上的一段话——来自某文豪。


划重点:

有后选后,无后选前

无后无前,算法也甜

条件允许,无脑后端

前途无量,预定高管

这里的后,Java 后端敢称第二,没人敢称第一。为什么我敢这么肯定呢?从 4 个方面来说吧。

1)就业岗位多,薪资水平够给力,Java 后端开发的需求量每年都很大。截个图给你感受下。


不要误会,只有阿里有 Java 岗,腾讯和字节没有 Java 岗,真的!起薪 30 万以上,稍微努力点,50 万年薪,再使劲卷一卷,100 到手。

2)Java 的生态虽然说不上完美,但毕竟已经发展了 20 多年,有大量成熟的框架可以用,稳定、可靠、易上手。

3)高版本的 Java 引入了很多时髦的新特性,比如说 Lambda、函数式编程、Stream 流等等这些,Java 在与时俱进,没有停下来脚步,Java 17 马上就要来了,应该还会有一些令人眼前一亮的新特性。

4)Java 的学习资料丰富,只有你想不到的,没有你找不到的,无论是 GitHub,还是网上的在线教程,体系非常完整。

我花了一个月的时间,把近十年来读过的一系列计算机经典书籍(戳一戳))(偏 Java 后端方向,)全部都整理出来了,给你瞧瞧,可以说是包罗万象,应有尽有(入门→工具→框架→数据库→并发编程→底层→性能优化→设计模式→操作系统→计算机网络→数据结构与算法→面试→架构→管理)。

对打算从算法岗转 Java 后端开发岗的同学应该帮助很大。

---------学习 Java 的建议-----------

(认真看,记得点赞收藏,以后不迷路)

建议大家看看我这幅思维导图,帮学弟拿到过携程的实习 offer


我可不是口说无凭,上证据。

为了给同学们一个更实质性的参考,我把大厂面试中考察的重点列举了一下。


操作系统、计算机网络、数据结构与算法,这些肯定是要学的,还有 Java 的核心知识点,以及一些框架原理,否则根本就进不了大厂。

重申一下我学习计算机的观点,我想这会对你快速建立起自己的知识体系很有帮助!并且,你应该按照我这个观点从大一就开始实践起来!

如果你要学习物理,我推荐你顺着物理的发展史学习,先学习牛顿的经典物理,再学习热力学、电磁学,然后学习相对论、量子力学这些彻底推翻经典物理的,最后学习电动力学这种硬核的。

整个学习过程,是自底向上的。但是学计算机,这样行不通。

先学习电路,然后学习冯诺依曼结构,造一台计算机?接着再学习如何用汇编写个 mini os?接着学习如何写一个简易版的编译器?最后再学习高级编程语言,比如说 Java、Python?

显然这样是行不通的!计算机的学习最好是自顶向下

什么是顶?我想一门高级的编程语言就是,比如说 Java!

当你学习到 Java 并发编程中的“原子性”、“同步”、“异步”、“进程”、“内存分配”这些概念的时候,你自然而然会产生很多疑问,然后就会去学习计算机组成原理、操作系统,然后你的一系列问题就会逐渐被解决。

当你发现,用 Java 实现某个业务需求时,人家的算法实现比你快得多,你自然会好奇,为什么会这样?然后你发现人家用的数据结构和你的不同,然后你就会去学习数据结构,接着了解一些高效的算法,比如动态规划等。

一、Java 语言

可以先看看我整理的这份 GitHub 上星标 115k+ 的 Java 教程,里面涵盖了 Java 所有的知识点,包括 Java 语法、Java 集合框架、Java IO、Java 并发编程和 Java 虚拟机,内容不多,只讲重点。

然后到 B 站上看看尚硅谷或者动力节点的视频课。

动力节点:https://www.bilibili.com/video/BV1Rx411876f

尚硅谷:https://www.bilibili.com/video/BV1Kb411W75N

二、操作系统

操作系统是计算机系统中负责管理各种软硬件资源的核心系统软件,为应用软件运行提供良好的环境。清华大学操作系统课-学堂在线这门课程以主流操作系统为实例,以教学操作系统 ucore 为实验环境,讲授操作系统的概念、基本原理和实现技术,是一门非常值得推荐的视频课。


书籍的话,推荐《操作系统概念》 (“龙书”)和 《现代操作系统》 ,是操作系统领域的经典书籍。学完操作系统,你要能回答这些问题:

  • 进程与线程简单介绍,区别,以及进程间通信方式,线程同步方式
  • 用户态和内核态
  • 内存管理:分页分段,虚拟内存,空闲地址管理方法
  • 死锁:死锁的必要条件,死锁的检测与恢复,死锁的预防,死锁的避免

三、计算机网络

B 站上的这个计算机网络微课堂视频课非常不错,强烈推荐。


学完计算机网络,你要能回答以下这些问题:

  • 七层结构,简单介绍一下每一层。
  • 输入 URL 后,将发生什么?这个问题会涉及到很大一部分的计算机网络基础。
  • HTTP 和 HTTPS,DNS 解析
  • TCP、UDP、拥塞控制、三次握手、四次挥手、滑动窗口
  • IP 和 ARP 协议

四、数据结构与算法

有算法基础的同学,这部分是最不怕的。国内最看重算法题的公司当属字节了,想去字节的同学一定要记得刷算法题。

我这里有一份美团大佬的 LeetCode 刷题笔记,纯 Java 版的,给你瞧一下内容。


我花了不少时间整理成 PDF了,对算法薄弱和需要提高算法的同学很有帮助:刷完 300 道 LeetCode 题后,我膨胀到要飘起来了!纯正 Java 版

再说一下我的刷题心得:从易到难,一遍一遍地刷,尽量使用自己熟悉的编程语言,比如说 Java 程序员尽量用 Java 来解题,这样刷题的幸福感也会提升很大一截。

如果不是天赋异禀,不要怕,一开始就是抄题,先把别人的解题思路照着敲出来。刷的题多了,尽量控制一下刷题的时间,掐个点,不能让自己一直想、一直写下去,如果半个小时没有解出来,就果断放弃,去背别人的答案,不要觉得不好意思,等到真的熟了,再去想自己的解题思路。

可以按照下面这个类型来刷就可以了。

数组-> 链表-> 哈希表->字符串->栈->队列->树->回溯->贪心->动态规划->图

五、补充部分

瞧瞧我读过的这些书吧!

Java 后端开发需要掌握的知识并不算多,除了 Java 核心语法、Java 并发编程、Java 虚拟机,还有就是 Spring 系列框架,以及一些数据库知识,计算机必读经典书单(偏 Java 后端方向)

Java 并发编程和 Java 虚拟机是面试中的核心,我把一些题目列出来,你可以拿来自测。

  • 并行和并发有什么区别?
  • 线程和进程的区别?
  • 守护线程是什么?
  • 创建线程有哪几种方式?
  • 说一下 runnable 和 callable 有什么区别?
  • 线程有哪些状态?
  • sleep() 和 wait() 有什么区别?
  • notify()和 notifyAll()有什么区别?
  • 线程的 run()和 start()有什么区别?
  • 创建线程池有哪几种方式?
  • 线程池都有哪些状态?
  • 线程池中 submit()和 execute()方法有什么区别?
  • 在 java 程序中怎么保证多线程的运行安全?
  • 多线程中 synchronized 锁升级的原理是什么?
  • 什么是死锁?
  • 怎么防止死锁?
  • ThreadLocal 是什么?有哪些使用场景?
  • 说一下 synchronized 底层实现原理?
  • synchronized 和 volatile 的区别是什么?
  • synchronized 和 Lock 有什么区别?
  • synchronized 和 ReentrantLock 区别是什么?
  • 说一下 atomic 的原理?
  • Java 内存模型(JMM)、重排序与 happens-before 原则了解吗?
  • AQS了解么?原理?AQS 常用组件:Semaphore (信号量)、CountDownLatch (倒计时器) CyclicBarrier(循环栅栏)
  • ReentrantLock 、 ReentrantReadWriteLock
  • CAS 了解么?原理?
  • 说一下 JVM 的主要组成部分?及其作用?
  • 说一下 JVM 运行时数据区?
  • 什么是双亲委派模型?
  • 说一下类装载的执行过程?
  • 怎么判断对象是否可以被回收?
  • 说一下 JVM 有哪些垃圾回收算法?
  • 说一下 JVM 有哪些垃圾回收器?
  • 详细介绍一下 CMS 垃圾回收器?
  • 新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
  • 简述分代垃圾回收器是怎么工作的?
  • 说一下 JVM 调优的工具?
  • 常用的 JVM 调优的参数都有哪些?
  • Java 之所以流行,很重要的一部分原因就是拥有 Spring(春天)系列框架这个大杀器,包括 SSM(Spring+SpringMVC+MyBatis)、Spring Boot、Spring Cloud。

不过,说一千道一万,Spring 的核心就两个概念:AOP、IoC。

AOP(Aspect-Oriented Programming),也就是面向切面编程,能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。

IoC(Inverse of Control),也就是控制反转,是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由 Spring 框架来管理。DI(Dependency Injection),也就是依赖注入,原来叫 IoC,能让人更加直观和清晰地理解其背后所代表的含义。

Spring 怎么学?可以到 B 站上看一下江南一点雨的视频教程


先学习 SSM,再学习 Spring Boot。Spring Boot 的出现,并不意味着 Spring 和 SpringMVC 已经过时了,从设计目的上来说,Spring Boot 只是实现了 Spring 的自动装配,降低了项目搭建的难度。

从技术角度来说,Spring Boot 的底层依然是 Spring 的核心机制,也就是 AOP 和 IoC,Spring Boot 只是一个承载者。在我看来,学习 Spring 的正确路径应该是 Spring -> Servlet -> Spring MVC -> Spring Boot。

会了 Spring,基本上就具备一个 CRUD 的基本素质了。剩下的,就是通过计算机基础知识来提升自己在工作中的不可替代性,很多时候,性能的提升,要求的就是你在计算机组成原理、操作系统、计算机网络、数据结构与算法方面的功底了!

关于数据库这块。SQL 语法需要准备一下,有的面试会让你根据场景写出 SQL。MySQL 和 Redis 是面试中常问的两个数据库,这里推荐看《MySQL 技术内幕 innodb 存储引擎》和 《Redis 设计与实现》。

  • 索引:B+ tree索引、哈希索引、全文索引、覆盖索引等
  • 存储引擎简单介绍,如 InnoDB, MyISAM
  • 主从复制
  • 事务特性简单介绍

常用的几种设计模式必须得清楚,比如:


我认为设计模式是初中级程序员迈向高级程序员的必经之路。有不少程序员,前期冲劲十足,但后继乏力,都是吃了设计模式的亏。在工作的前几年,大部分程序员都处于熟悉编程语言的阶段,也就是处于“技”的阶段,随后就要进入“术”的阶段了。在编程领域,“术”的典型代表就是“设计模式”。

你可能听说过,学习设计模式非常的重要,那么为什么这么重要呢,设计模式到底是什么?打个比喻学编程就像学武功一样。武功要练得很牛逼,有两样东西不能丢。第一,是内功;第二,是武功秘籍。内功对应到编程就是我们编程基础能力,那编程的设计模式就可以想象成武术中的武功秘籍。

推荐小傅哥的重学 Java 设计模式,持续霸榜 GitHubTrending。


不得不说,算法岗确实卷,没有研究生以上的学历,很难入算法岗的门槛,Java 后端开发岗就不同了,不管你是不是 985、211 毕业的,只要你能具备基本的素质,就能胜任对应的工作。当然了,Java 现在也是非常卷了。好的一点是,Java 的岗位多,需求量大!

这个世界上只有两种语言,一种是经常被骂的,一种是从来没有人用的——来自 C++ 之父。


而 Java,显然是经常被骂的那一种。这里骂显然不是一个贬义词,而是一个褒义词。

根据 JetBrains 2020 年给出的数据分析显示, 全世界大约有 520 万名专业开发者使用 Java 作为主要语言。详情参照:JetBrains 2020 Java调查报告

其中,中国和韩国使用 Java 的比例最高,分别为 51% 和 50%。


有一个很有意思的数据,Reddit(相当于国外版贴吧)上讨论最多的主题是:现在学习 Java 语言是一个好的选择吗?(Is Java a good language to learn today?)


这意味着什么?

意味着 Java YYDS!


当然了,Java 后端开发岗这条道路并不好走,不仅要学习很多新技术、新框架,还要及时补充必要的计算机基础知识,底子硬的同时还要学会拥抱变化。

但同时,大家要知道,Java 是一门面向对象的编程语言,凭借着简单性、健壮性、安全性、可移植性、多线程并发等等优势,迅速地占领了市场。

大型网站的后端,比如淘宝、京东都主要使用的 Java。

大型的企业级应用,比如大型企业管理系统,CRM 系统,ERP系统也都用 Java 开发。

还有像移动、联通、电信、网通这些大型企业,还有金融相关的大型企业,比如银行、证券,都与 Java 息息相关。

不夸张的说,学 Java,总能找到合适的工作岗位!学习的过程,就好像登山一样,大概有 80% 的人在这个过程中会掉队。那么请相信我,只要目标明确,努力加上坚持,再加上一点点好运气,你就能登顶!

我劝你在找工作之前刷一波面试题,做到有备而战,知彼知己,百战不殆。可以看一下 GitHub 上星标 100k+ 的这份面试攻略,这才是 Java 程序员应该学的东西。

衷心的希望,大家能在学习 Java 的这条路上快乐一些,纯粹一些,少听少看一些那些焦虑文,什么 35 岁,什么学历歧视,沉下心来,多学习一点知识,让自己变强一点,比什么都好!一家之言,必然有不尽善尽美的地方,但只要能对大家的学习有些许帮助,我也就很满足了!

我是二哥呀,大家记得收藏点赞呀!笔芯!

双非本科2022年秋招总结(java后端开发岗)

小米9.1笔试(AK)笔试挂爱奇艺8.22笔试笔试挂Soul简历挂Vivo10.13投递简历挂OPPO简历挂货拉拉简历挂海康威视简历挂37互娱笔试挂顺丰9.6笔试笔试挂YY直播9.4笔试笔试挂京东9.11笔试笔试挂科大讯飞9.12笔试笔试挂BiGo简历挂AfterShip简历挂... 查看详情

c++不吃香了?2023年秋招找工作这么难?

金九银十还没正式开始,2023年秋招便已先行登场。最近,在各个平台上看到不少关于秋招的讨论,其中知乎上,“如何看待2023年秋招C++后端开发岗一片红海?”引来108万浏览量。△截图来源知乎,... 查看详情

java内卷真相揭秘!强烈建议阅读!

【此文章转自乐字节】最近很多人都来问小编对2022年秋招Java后端开发岗一片红海的情况怎么看。在我看来,既然是红海,说明有利可图。后端职业路径没有明显天花板,上可CEO,下可打工人。后端封神。而作为... 查看详情

2022年秋招大厂应届生技术岗薪资曝光:腾讯预计40万起

...创作者|王敏编辑|金玙璠“后悔当初没去学计算机。”2022年秋招大厂应届生技术岗薪资被曝光后,无数人发出类似感叹。2022年校招,腾讯打响了应届生薪资开奖“第一炮”,技术岗年薪总包40万起步,而大厂薪资... 查看详情

2022秋招算法岗卷成人间地狱!高薪惹眼,招录比100:1

新智元报道2022年秋招已经陆续展开,AI就业形势再次引发了网友热议。有人说,2022年秋招算法岗人间地狱。那么,真实情况如何?「求职卷,进来了做实验也卷,卷翻天。」有人说,2022年秋招算法岗... 查看详情

2021年秋招java研发岗的面试高频考点(代码片段)

高频考点建议收藏!!!(稍后整理答案!!!)东方财富一面JAVA1、集合常用哪些类,arraylist和linkedlist的比较2、Java多线程(线程如何创建、怎么使用线程池)3、锁升级4、JMM5、垃圾回... 查看详情

2021年秋招java研发岗的面试高频考点(代码片段)

高频考点建议收藏!!!(稍后整理答案!!!)东方财富一面JAVA1、集合常用哪些类,arraylist和linkedlist的比较2、Java多线程(线程如何创建、怎么使用线程池)3、锁升级4、JMM5、垃圾回... 查看详情

2022秋招大战:算法岗挤破头,java开发也被迫内卷

本文转载自新智元对于计算机专业的毕业生而言,算法岗基本上就是「高薪」的代名词。然而,由于这几年AI方向异常火爆,算法岗似乎也已经承载不下了,计算机视觉就是一个很好的例子,某些公司的录用比... 查看详情

2022年秋招,软件测试开发最全面试攻略,吃透16个技术栈

小编分享的这份秋招软件测试面试总结包含了软件测试基础、MySQL基础、Liunx、web测试、接口测试、App测试、管理工具、Python、selenium、性能测试、LordRunner、计算机网络、组成原理、数据结构与算法、api测试等个16专题技术点࿰... 查看详情

2022秋招总结,含泪整理最新android开发岗面试题合集

2022年大约半年的时间,我都在准备找工作与找工作的过程中,每天疯狂做笔试题、投简历,卷的时候还不忘打开牛客瞄一眼,看着大家都没offer不经心里一松,结果一点开主页,好家伙西安交大、大连理工... 查看详情

2022秋招总结,含泪整理最新android开发岗面试题合集

2022年大约半年的时间,我都在准备找工作与找工作的过程中,每天疯狂做笔试题、投简历,卷的时候还不忘打开牛客瞄一眼,看着大家都没offer不经心里一松,结果一点开主页,好家伙西安交大、大连理工... 查看详情

数据挖掘顺丰科技2022年秋招大数据挖掘与分析工程师笔试题(代码片段)

顺丰科技2022年秋招大数据挖掘与分析工程师笔试题笔试时间:2022-9-71不定项选择题1、python中_thread和threading的区别解析:_thread模块提供了基本的线程和锁支持;threading提供的是更高级的完全的线程管理。threading它更... 查看详情

拾牙的2021年秋招总结(大概会有帮助?)(代码片段)

目录秋招面试经历秋招面经参考基础部分面经常见问题对秋招一些经验最后收获后续安排秋招面试经历时间公司岗位面试轮次是否完成2021年7月2日07:00禾赛嵌入式软件工程师提前批一面pass2021年7月7日16:00图森未来软件研发工程师-... 查看详情

2022年秋招提前批总结(海尔智家)

        2022年的秋招到现在也结束了,也好久没发博客了,突然想着要不分享并记录一下。        谈到秋招,我参加的不多,主要就参加了提前批(哈哈,因为九月已经确定保研了,就没去参... 查看详情

2018年秋招总结篇(java)

博主开始找工作是10月10号,感觉可以出去找找工作,然后就去了,参加了多场面试.笔试,现在总结一下1.笔试篇StringStringBufferStringBuilder的区别?HashMapHashTable的区别?StatementPreparedStatement的区别,什么是SQL注入?多线程实现方法?线... 查看详情

大厂疯抢“程序员”

“后悔当初没去学计算机。”2022年秋招大厂应届生技术岗薪资被曝光后,无数人发出类似感叹。2022年校招,腾讯打响了应届生薪资开奖“第一炮”,技术岗年薪总包40万起步,而大厂薪资最高评级SSP(SuperSpeci... 查看详情

2022届互联网校招薪资开奖,拼多多最高年薪75万!

近一个月,收到很多读者今年秋招拿到互联网大厂offer的喜报。从他们的信息我也大概知道了今年的秋招应届生的薪资情况,真的是一年比一年高,大厂太舍得砸钱啦。对于开发岗来说,一线互联网大厂的白菜档of... 查看详情

2022游卡校招技术岗笔试(代码片段)

1.[编程题]长度为K的重复字符子串时间限制:C/C++1秒,其他语言2秒空间限制:C/C++256M,其他语言512M给你一个由小写字母组成的长度为n的字符串S,找出所有长度为k且包含重复字符的子串,请你... 查看详情