程序员面试系列
WX PUB:「曹当家的」
准备面试已经 2 月有余了,这一次我的目标是大厂。说干就干,我对目前的状况做了一个具体的分析,以及对未来需要达到的目标做了详细的规划。
现状:
1. 过去一年做的需求又多又杂,虽然基本的技术栈都用的还算熟练,但是对很多技术的原理都一知半解。
2. 平时做的项目需求没有好好总结提炼,似乎没什么技术含量,写在简历上没有亮点。
3. 操作系统原理的知识没有系统的学过,相关的概念也是很难自己解释出来。
4. 计算机网络相关的知识还是小白阶段。
5. 数据库系统的原理忘的差不多了,各种常用的中间件原理也比较模糊。
6. 算法也是入门阶段,没有刷过题。
7. 系统架构设计方面的知识也很欠缺。
目标规划:
1. 必须恶补基础理论知识。最系统的学习方式就是看书了,于是操作系统、计算机网络等各方面的书都买了几本,每天早起一小时用来看书(目前还是在职阶段)。
2. 算法学习。由于之前有学习一些算法基础,于是找了一本书和一门网课快速复习了一下,然后就进入到刷题阶段了。
3. 系统架构设计。前期也是先看书,了解理论,然后结合现在工作中的系统架构,针对遇到过的问题进行复盘,总结成案例。
坚持学习了 2 个多月,目前已经把制定的学习规划基本完成了,也积累了系统的学习笔记,随着学习的深入,内心从最初的焦虑慌乱也慢慢变得越来越有信心。
这两周也进入到面试阶段了,每次面试前都拿出自己整理的笔记快速看一遍,对面试将会问到的问题基本都心里有数了。有时候看着自己辛苦整理的笔记,突然就想,为什么不把这些分享出来呢?一方面可以对知识进行全面的复盘,另一方面也许能帮到和我一样在准备面试的人呢?于是我想起了我很久没更新的公众号(还是个有留言功能的哩)。我准备逐步分类更新面试相关问题,主要分为以下几类:
操作系统篇
进程和线程,内存管理,文件系统与磁盘 I/O,系统中断,死锁等。
计算机网络篇
网络分层模型,各层协议的原理与作用,TCP 的主要知识,网络 I/O 与性能优化等。
MySQL 篇
MySQL 基础,MySQL 事务,MySQL 锁机制,MySQL 调优,MySQL 集群与高可用等。
Redis 篇
Redis 数据类型结构及底层实现,Redis 使用场景,Redis 持久化机制,Redis 主从复制与哨兵机制,Redis 事务,Redis 分布式锁,Redis 集群,Redis 线程 I/O 模型等。
消息队列 Kafka
Kafka 结构原理,Kafka 几个特性,Kafka 对高并发的支持等。
算法
双指针解题,二分法,排序问题,TopK 问题,深度与广度优先搜索,回溯算法,基础动态规划,海量数据处理思路等。
系统架构设计
系统架构常见模式,高性能高可用架构,系统架构的伸缩性、扩展性、安全性等。
面经
分享详细的面试经历。
希望这个系列能帮助到和我一样在准备面试的人。
最后,祝我们以梦为马,在这糟糕的环境中逆流而上,早日实现目标,拿到满意的 offer!