首页 > 【求职心得分享】(2)学习路线
头像
ChopinXBP
编辑于 2021-07-25 14:41
+ 关注

【求职心得分享】(2)学习路线

【求职心得分享】(2)学习路线
【求职心得分享】(5)笔面试真题——容器
【求职心得分享】(6)笔面试真题——JVM
【求职心得分享】(7)笔面试真题——JUC
【求职心得分享】(8)笔面试真题——网络&IO
【求职心得分享】(9)笔面试真题——操作系统
【求职心得分享】(10)笔面试真题——数据库
【求职心得分享】(11)笔面试真题——分布式框架与中间件
【求职心得分享】(12)笔面试真题——基本素养
【求职心得分享】(13)笔面试真题——数据结构与算法
【求职心得分享】(14)大厂特点与应对技巧

下面这条路线并不完全是我走的路线,也不一定适合所有人。
之所以这么建议,是因为我想着如果时光可以倒流,让自己再准备得充分一点,我自己会怎么规划和安排我的求职准备。
再往下的话罗列了一些技能树,一年过去应该还没过时。秋招面试也是遵循二八定律的,技能树的定位就是覆盖80%的各家公司反复考察的基础知识+5%能够博面试官一点惊喜的亮点。
如果能够全部掌握秋招上岸绝对没有问题;如果能在某一两个方面有较为深入的理解(又恰好让面试官问到)应该可以拿到至少两个大厂的offer;如果还能在项目或者实习中运用自如并且有自己的思考,拿到SP问题也不大;再往上能不能拿到SSP就看能不能Match和还有一些运气成分了。
时间充足:建议每个方向找一本未过时的适合自己的最好是业界经典的书(注意我的定语),从头读起,从源码读起,建立一个完整的知识框架,并且在技能树的知识点上有所侧重。
时间不充足:对着技能树上的知识点通过任何手段(哪怕只是google)搞明白:是什么东西?为什么会存在这个东西?解决什么问题?有哪些用法/方法?什么场景下怎么使用?有什么优缺点?…然后就可以建立一个技能树based的知识框架,先面向秋招学习,回头在工作中再慢慢补齐。
有什么缺漏或者问题欢迎在评论区和我交流

学习路线建议(技术研发)

2 Year Ago(研一上/大二上)
  • 确定求职主语言与大方向
  • 开启刷题训练计划

1.5 Year Ago(研一下/大二下)
  • 完成基础理论知识学习
  • 完成毕业/求职所需项目/论文/课程要求

1 Year Ago(研二上/大三上)
  • 确定细分方向,准备一个求职方向相关的项目
  • 完成项目相关理论知识的学习和拓展
  • 尝试投递日常实习

0.5 Year Ago(研二下/大三下)
  • 应聘暑期实习
  • 积累实习项目,完成理论知识深入和拓展

校园招聘
  • 完成转正答辩
  • 应聘秋招/春招


Java后端开发技能树(架构方向)

语言基础

  • 语言特性
  • 抽象类和接口
  • String相关原理
  • 反射
  • 枚举
  • 序列化

容器

  • List:ArrayList、LinkedList
  • Map:HashMap、TreeMap、LinkedHashMap
  • Set:HashSet、TreeSet、LinkedHashSet
  • Queue:PriorityQueue、ArrayDeque
  • 并发容器:ConcurrentHashMap、CopyOnWriteArrayList、CopyOnWriteArraySet、ConcurrentLinkedQueue、ConcurrentSkipListMap、ConcurrentSkipListSet

JVM

  • 基本命令
  • 运行时数据区
  • 类加载
  • 对象创建
  • 对象头
  • GC:垃圾回收算法、垃圾收集器
  • 引用类型

JUC

  • JMM(Java内存模型)
  • 线程基础:创建方法、生命周期
  • 线程操作命令:LockSupport.park()、Thread.sleep()、Object.wait()、Condition.await()、Thread.yield()、thread.join()
  • 锁基础:CAS、原子类、volatile、synchronized、AQS
  • 锁概念:公平锁/非公平锁、乐观锁/悲观锁、独占锁/共享锁、偏向锁/轻量级锁/重量级锁/锁消除、可重入锁、条件锁、自旋锁、分段锁、监视器锁
  • 同步组件:ThreadLocal、ReentrantLock、ReentrantReadWriteLock、StampedLock、Semaphore、CountDownLatch、CyclicBarrier、Phaser
  • 线程池:基本原理、生命周期、构造方法、自带实现、拒绝策略
  • 阻塞队列:ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue、DelayQueue、SynchronousQueue、LinkedTransferQueue
  • 伪共享

网络&IO

  • 网络协议栈模型
  • TCP/UDP:熟知端口、报文结构、可靠传输、流量控制、拥塞控制、握手挥手
  • HTTP:报文结构、Cookies/Session、常用方法、状态码、通信过程、长短连接、网关、代理、隧道、连接多路复用、HTTP2.0
  • 网络安全:HTTPS、对称/非对称加密、公钥私钥、数字签名、数字证书、DDos攻击
  • 常见协议:IP、DNS、DHCP、ICMP、ARP/RARP、RIP/OSPF、BGP、NAT
  • IO模型与网络模型
  • IO多路复用:select、poll、epoll
  • Socket编程相关
  • Zero Copy技术
  • Netty

操作系统

  • 进程线程协程
  • 守护进程、僵尸进程、孤儿进程
  • 内存管理:虚拟地址、分页分段、虚拟内存、内存空间、内存映射
  • 缓存替换方法
  • CPU调度算法
  • 页面置换算法
  • 进程间通信:管道/FIFO、消息队列、Socket、共享内存
  • 进程间同步:Signal、Semaphore、锁
  • 死锁原理与消除
  • 内核功能与状态
  • 静态库与共享库
  • 动态链接与静态链接
  • 中断原理
  • Linux操作命令

数据库

  • Mysql:三范式、基本命令、存储引擎、索引、事务、ACID、隔离级别、MVCC、Next-Key Lock、日志、主从复制、SQL注入
  • Redis:数据结构、淘汰策略、RDB/AOF、哨兵模式、主从复制、一致性、IO模型、事务、缓存击穿、缓存雪崩
  • MongoDB
  • ETCD
  • 大数据:Hbase、Hadoop、Spark

分布式框架与中间件

  • CAP理论
  • ServiceMesh
  • Serverless
  • 分布式事务:2PC、3PC、TCC、分布式事务解决方案
  • 分布式一致性协议:Gossip、Pow、Raft、Paxos
  • 分布式锁:基于Redis、基于Msql、基于Zookeeper
  • 消息队列:RocketMQ、Kafka
  • 容器:Docker、K8S
  • 服务发现:Zookeeper、Consul、Eureka
  • 负载均衡:Nginx
  • 熔断降级
  • 监控报警:SLF4j、logback、log4j、log4j2、Metrics
  • RPC:gRPC、Thrift、Dubbo
  • Spring/SpringBoot:IOC、AOP、DI、MVC、Bean作用域、Bean生命周期、配置化、事务
  • 云平台:IaaS、Paas、SaaS、Faas

基本素养

  • 设计思想:设计模式、组件设计、架构思想
  • 故障定位
  • 性能调优
  • Git
  • Shell
  • 大数据问题
  • 智力题
  • PPT与演讲
  • PS

数据结构与算法

  • 基本数据结构:数组、链表、树、栈、哈希表、优先队列、图
  • 高级数据结构:AVL树、搜索树、红黑树、Trie、LinkedHashMap、B/B+树、线段树、并查集、拓扑序列、哈夫曼树、BitMap
  • 排序算法:快速排序、归并排序、堆排序、插入排序
  • 常见算法:二分查找、递归回溯、动态规划、全排列算法
  • Elastic Search
  • Bloom filter
  • 并发编程


更多模拟面试

全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

热门推荐