从转后端到拿到Offer,约一年半。
背景介绍
进了快手(如果你觉得不是大厂那就不是!):
- 真双非本科: 安徽某双非
- 无实习: 因为编程语言问题,去过之后发现不喜欢,几天跑路!(某小厂,2023.8)
- 竞赛水: 大创(做的安卓软件)起到一个外观上的作用吧...
- 2022.3 大二下转的后端: 注意,我转之前就会Java和数据结构和MySQL(自学),因为我学的Java安卓!
快手:七天四面,技术面三面当面秒过。
我是这样说的: 先问面试官,觉得我此次面试能不能凑活? ---> (看表情+语气,如果还不错)那么就追问,那么您觉得后续的面试流程能不能推动呢?(笑着说)
转后端概述:
前一年半迷糊大半年,剩下大半年学安卓(有Java基础)后一年半(到大三下找到工作),学的都是Java后端
亮点简述
对于双非朋友来说,我感觉很重要的一部分是,自己要营造一个亮点。
我面试的时候,会被问"你和92比,你的有点在什么地方./现在面试者很多都是92,你的优势在哪"。
所以大家一定要给自己提前准备好一些亮点。
以下是我说亮点:
- 笔记:面试中我直接分享屏幕给他看看我做的笔记(文末贴几张图)
- 手绘架构图+核心源码流程图: 应该是我学习方式,我学习的时候按照架构图来学习,学源码的时候会整理源码流程/基本知识习惯性的尝试整理流程和研究原理,然后写笔记。所以学完能记住,架构图和流程图感觉就像脑子里面印了图片一样。 我跟面试官说,我可以用数位板+屏幕分享来通过画图来回答问题。
- 不喜欢背八股: 面试的时候强调,自己不背八股。(但是你说的东西必须真的能让他看出你都是有自己的思考的才行)
- 真诚: 要在展示自己的能力的同时,尽量证明自己所说的东西!我很多时候都会去证明!!!,而不是只吹,并且面试中都能体现你所说的能力。
以上这些,可能是和我自己的学习方法有关。我不属于那种
算法大佬
,实习大佬
。但是做事一般比较踏实认真,也比较肝,对研究也很感兴趣(我刚才说我脑子里面会记忆架构图和流程,如果一段时间经常思考和提问题,我晚上就会睡不着,是因为脑子不自觉去想问题,然后脑子里面不断的浮现一个流程,然后思考,有一个想法就打开手机记录。而且会失眠)
简述如何做到脱离背八股
- 梳理一条线,然后 将知识点都串联起来。画图+不断研究拓展,最后这条线越来越多,并且你也能说出来
- 看见别人的回答/八股,不要认为全是对的: 如果可以的话,就研究源码/权威的一些月报,源码拆解/栏目。我自己看见有些回答/八股,有些问题是错误的(我看过的官网文档或者是大厂技术月报有些冲突的地方)。 我基本看见问题,都会去搜索一些官方的文档,然后看看他回答的大概对不对。
- 尝试用一条线串联多个知识点,然后画图 + 口述自己画的图 + 搜索别人的图 + 口述别人画的图 + 不断拓展具体知识点的分支 + 在图上提出问题然后研究问题 = 画出一个非常复杂的图 but 你能记得住!!,面试的时候也不会太慌张,因为脑子里面有图,遇到问题不会慌,还能冷静思考。
- 关联思考: 很多东西都是有关的。例如计算机网络发送一条报文主要是
- 协议栈解析 然后中断 DMA拷贝 数据发送网卡 然后经历路由等网络设备 对面主机接收........协议栈解析
很多知识都是关联起来的,除了研究以上部分,平时大家可以多注意这个问题的上下文例如,学了操作系统,大家可能会发现,从应用层到传输层,还有系统调用,上下文切换,CPU拷贝。这又是另一部分知识点。
- 协议栈解析完成,还会有中断,DMA拷贝,发送至网卡。对面也是如此还能再加..
- 浏览器发送报文,是不是属于应用程,需要进程,执行代码,他的原理是什么? 总之,梳理一条线,然后不断拓展,即使拓展多了,你的脑子里面也非常清晰,不需要刻意背八股。(如果没法研究深入,就只能背八股了)。 问题是越说越多的,线路是越来越清晰和清楚,对于具体知识点在进行深入,大家还可以用不同的例子再去思考这个案例,如果遇到说不清的就去研究。
- HTTP: 浏览器发送
- HTTPS: 发送过程
- Java序列化,然后通过网络发送到另一个主机: 以这个为例,再梳理一遍流程,研究出不会的内容。(这是啥,是不是可以是RPC的过程) 然后搞清楚发送过程,相当于什么?你学会了远程调用的原理,而其中的网络部分,也正是我们刚才研究的网络的流程,相当于知识进行的去重的记忆。 当你整理出来很多条线,他们就有很多很多重合的部分,你的记忆量其实会大大减少的。而且贼清楚。
- 这里强调一下关联和思考的重要性,例如这里的rpc,我也是扯完了直接才反应过来。然后又有了一些小的见解,很多小的见解,可能会让你学习变得很轻松。
这里参考新文章,会清楚很多。
给双非朋友的建议
我不是很厉害的人,也踩了蛮多坑,但是好在运气傍身,秋招找到了一个觉得还比较满意的Offer。然后之后也比较懒,面的就少了。
- 一定要有自己的亮点!!!! ----> (HR: 凭什么不要92的本、研,非得要你一个双非?) 例如,实习多 && 源码(开源项目,PR) && 算法比赛(看自己能力) && 博主(粉丝、文章很多) && (吹牛 || 真诚)(很牛就再多吹一点,能多些薪资,但是包括我在内大部分双非肯定也很难做到实力超群,此时就稍微真诚一点)
- 我没有把握好实习的机会(后面发现秋招运气好,很快就找到还行的工作了,那就不把握了): 不过一定要趁早趁早实习!!!,92的可能只需要一个实习就能进大厂,那么咱们多搞几个进中厂也好!。任何一个还行的相关实习,都能给你未来找工作提升很大价值的
- 如果感觉学不懂: 就去参考别人的学习方法/换一个资料学。你看不懂资料,你要认为不是你的问题,是资料的问题!!
- 大部分学校的培养策略完全不是就业向,所以如果你学校课程跟的太紧,可能会耽误大量时间去自学
- 学习方法: 每个人的学习方法不同,我第一年没有找到自己的方法,就学了忘,忘了学。后面有了适合自己的方法之后,面试里面敢说
手绘流程图 by 数位板
+很少背八股
。但是一定要证明出来!!! - 尽早了解不同的方向: 我不推荐任何方向,但是我觉得你要尽早的了解。后面我也会推出一些东西,我是发现很多人对知识体系了解不够清楚(关联),而是对方向不了解就糊里糊涂走下去。 后面我会分享我自己如果培养自己的兴趣的。
- 主动表现自己!!: 如果你的知识量大,那么回答一个问题的时候可以关联思考 (抛出一个问题,问问面试官想不想听),我甚至有两个问题抛出后看面试官不想听,我就说我觉得这个知识点好玩,然后追着他讲出来!
- 多交友: 读书不是死读书,读几本书,不如多找一些大佬问问题(学会问问题的艺术很重要),特别是同辈的,然后自己取长补短!!
- 写博客 || 发视频: 我现在写博客 && 做视频,也是想多交交朋友。
- ......
以下举例
参考了阿里PolarDB月报和MySQL实战45讲以及官网文档。下面你看的流程图是我自己整理的,那些我画的图,我是记在脑子里面的
- Select、Insert、Delete、Update的底层原理(参考PolarDB月报)
- 锁的研究: 从公众号 yangyidba参考的死锁案例(十几个),然后复现+总结规律。以及阿里PolarDB了解锁的基本知识。
Redis:Redis数据结构和功能的对应文件、数据结构源码手绘(学一个,研究一个,画一个
- 参考公众号的 yangyidba
- 参考《Redis设计与实现》
- 自己研究源码
- 其他优秀博客
祝福
希望还在找工作的朋友们都能找到满意的工作!!!
希望双非朋友们,大家找个好实习,好好准备,进个大厂
。
我实力也很一般。但看见几位双非朋友,有实力,且实力比我强得多,懂得也很多,但是秋招却拿不到不错的Offer,希望有需要的人能看见。