据说,2022 年算法岗遇冷,BAT 暑期实习甚至收不到简历,Java 反而爆炸。
有后选后,无后选前
无后无前,算法也甜
条件允许,无脑后端
前途无量,预定高管
这里的后,Java 后端敢称第二,没人敢称第一。为什么我敢这么肯定呢4 个方面来说吧。
1)就业岗位多,薪资水平够给力,Java 后端开发的需求量每年都很大。截个图给你感受下。
重申一下我学习计算机的观点,我想这会对你快速建立起自己的知识体系很有帮助!并且,你应该按照我这个观点从大一就开始实践起来!
如果你要学习物理,我推荐你顺着物理的发展史学习,先学习牛顿的经典物理,再学习热力学、电磁学,然后学习相对论、量子力学这些彻底推翻经典物理的,最后学习电动力学这种硬核的。
整个学习过程,是自底向上的。但是学计算机,这样行不通。
先学习电路,然后学习冯诺依曼结构,造一台计算机再学习如何用汇编写个 mini os学习如何写一个简易版的编译器再学习高级编程语言,比如说 Java、Pythonp>
显然这样是行不通的!计算机的学习最好是自顶向下。
什么是顶一门高级的编程语言就是,比如说 Java!
当你学习到 Java 并发编程中的“原子性”、“同步”、“异步”、“进程”、“内存分配”这些概念的时候,你自然而然会产生很多疑问,然后就会去学习计算机组成原理、操作系统,然后你的一系列问题就会逐渐被解决。
当你发现,用 Java 实现某个业务需求时,人家的算法实现比你快得多,你自然会好奇,为什么会这样你发现人家用的数据结构和你的不同,然后你就会去学习数据结构,接着了解一些高效的算法,比如动态规划等。
一、Java 语言
可以先看看我整理的这份 GitHub 上星标 115k+ 的 Java 教程,里面涵盖了 Java 所有的知识点,包括 Java 语法、Java 集合框架、Java IO、Java 并发编程和 Java 虚拟机,内容不多,只讲重点。
- 进程与线程简单介绍,区别,以及进程间通信方式,线程同步方式
- 用户态和内核态
- 内存管理:分页分段,虚拟内存,空闲地址管理方法
- 死锁:死锁的必要条件,死锁的检测与恢复,死锁的预防,死锁的避免
三、计算机 络
B 站上的这个计算机 络微课堂视频课非常不错,强烈推荐。
再说一下我的刷题心得:从易到难,一遍一遍地刷,尽量使用自己熟悉的编程语言,比如说 Java 程序员尽量用 Java 来解题,这样刷题的幸福感也会提升很大一截。
如果不是天赋异禀,不要怕,一开始就是抄题,先把别人的解题思路照着敲出来。刷的题多了,尽量控制一下刷题的时间,掐个点,不能让自己一直想、一直写下去,如果半个小时没有解出来,就果断放弃,去背别人的答案,不要觉得不好意思,等到真的熟了,再去想自己的解题思路。
可以按照下面这个类型来刷就可以了。
数组-> 链表-> 哈希表->字符串->栈->队列->树->回溯->贪心->动态规划->图
五、补充部分
瞧瞧我读过的这些书吧!
从技术角度来说,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
- 主从复制
- 事务特性简单介绍
常用的几种设计模式必须得清楚,比如:
根据 JetBrains 2020 年给出的数据分析显示, 全世界大约有 520 万名专业开发者使用 Java 作为主要语言。详情参照:JetBrains 2020 Java调查 告
其中,中国和韩国使用 Java 的比例最高,分别为 51% 和 50%。
意味着 Java YYDS!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!