算法转开发&测开,拿了四个offer(上)

简介: 笔记

你好,我是阿秀。

上周有个师弟跟我说字节oc了,他读研时做的是算法方向,去年寒假期间还去了一家小公司实习过一段时间,后来觉得自己不适合算法,加之了解到算法岗上岸太难,于是果断在今年五月份的时候转开发。

但他并不是全身心地转开发,因为主要语言是Python,于是他就选择了大厂投递测开岗,中小厂投递开发岗的策略。

阿秀觉得这份经验很不错,于是在得知他拿到字节offer后邀请他做了一个分享,但阿秀看过师弟的分享文章发现文章有点长,加起来差不多超过1万字。

为了阅读体验,就把师弟的分享文章拆成了两部分,今天分享第一部分,明天会继续分享第二部分的。以下是第一部分文章,其中的"我"代表这位师弟:


前言


我是秀哥的同校师弟,也是秀嫂的同门师弟,秀哥的牛客网昵称是:“拱白菜的阿秀”,我就是秀哥拱的那颗白菜的跟班白菜。

没办法,人比较菜,就只能跟着带佬后面喝汤了,还好跟对人了哈哈

秀哥以前也分享过一篇师弟去网易和字节实习的文章,就是这篇:师弟去网易了主人公是我的同门,就坐我旁边。

我一直都心心念念想要去字节,最终经过8面,两个月,两个部门,终于上岸字节,自己也有幸能写一点分享。

我的分享主题就是:"不要在offer放弃你之前,放弃你自己"


一、个人背景


这里简要介绍下我的情况:

目前在B区某普通双非学校读计算机专业的研究生,今年研二,我本科是非科班的,还转过专业,我大一农学,大二跑路自动化,后来大三随大流考研,考研选的专业也是非计算机。

后来调剂到的计算机,调剂时被现在的导师一顿忽悠,就呗忽悠来了,我没有学过408,连数据结构、编译原理等都不知道,基础很差。

我学姐跟我说二叉树的时候,我有点蒙,问了一句:"啥树?树还会分叉?。。。,建国之后不是不许成精的吗。。。"

我的研究方向比较小众,老板在该领域国内比较有名,但比较push,研一的时候基本聚焦于老板的项目,还有自己的论文,没有去学计算机相关知识。

但比较幸运,在我可爱美丽的师姐(也就是秀嫂)带领下,在研一下学期的时候水了两篇论文,老板之后管的就比较宽松了。

基于此,当时有点小膨胀了,一心想走算法,今年寒假的时候去某初创公司的算法岗位进行了实习,这是我唯一的一段实习,实习主要负责一些摄像头的开发、图像分割以及工程落地。

4月初实习完后,觉得小公司很多管理不到位,技术落后、提升不大,于是一心向往大厂去锻炼,提高自己。

于是在4月开始准备秋招,当时也不知道自己方向和行情,还是想走算法。

但还好当时留个一手,那一个月以夯实基础为主,开始学数据结构、学数据库、学Linux、刷leetcode,构建自己的算法项目,并把它发到GitHub上面(star 不多,一共才接近100个,一堆白嫖的,但是反响不错,甚至华为、海康的做我研究领域的都来找过我聊天)。

但在5月的时候,由于提前批陆续开了,于是尝试性去小公司试水,但是结果惨淡,成为无情的感谢信收集器。

同时,也忽然发现行情不对,winter is coming

于是看了下自己的能力,emm,有点菜,综合考虑行情,最后决定:兄弟萌保重,我转测开了。

最后也证明确实是选择大于努力。

在5月左右自己疯狂学习测开知识,包括测试理论、软件开发流程等等,同时也在进一步的夯实我的基础(主要是看秀哥的面经,只能说yyds,我基本面试的都是那上面的)。

在7月份提前批开始了,我认为秀哥当初那篇文章说的非常对,就是这篇:不要随大流去参加提前批真的不要盲目提前批,因为如果没有准备好,面评很差,真的非常影响该公司后面对你招聘

于是目标定位几个小公司,比如蔚来这些,去面试,提升一点自己的面试经验。

在7月下,就开始冲字节了,先后面了字节的两个部门,一共八面。

提前批的时候就定向内推到字节新开的云部门,经历3轮技术,一轮hr面。

本来以为稳了的时候,结果,谁知道居然寄了,原因是觉得我对字节的业务不太了解。

emm我承认确实是对业务不太了解,真的好可惜啊,现在想想应该是以前了解一下部门业务的。

但还好,又在正式批的时候自己给我转到了现在的部门,负责算法方面的测试。

当时说,直接从二面开始,但面了三面技术面 + 一轮hr面,终于在昨天拿到了字节发来的意向书。

终于自己也有了一个大厂offer了,除此外还有三个中厂的开发offer,因为是中小厂所以我就直接用的测开简历去面的,后来也上岸了。

以上就是我的学习以及秋招经历,下面主要就测开学习经历,面试经历以及经验做一点分享,车速较快,大家系好安全带。


二、测开学习经历


1、测开理论部分

老实说,我不认为在现在的大环境下,一点都不了解测试知识,就可以去测开岗。

可能并不是你想的那样,后端去面测试,有手就行,毕竟面试官是测试的,他总会问你点测试相关知识,如果你一点都不会,人家也可能觉得你不诚心而选择挂掉你。

一般测试的理论就包括软件开发流程,测试流程,测试行业的黑话(黑盒、白盒、回归等等)、测试用例的撰写方法以及一些经典测试场景题。

这部分知识主要是看到网上的一些分享,我自己将它整理完毕后分享给秀哥了,后来看到秀哥也分享在星球上了,这是链接:https://t.zsxq.com/06iayJiA2,我觉得上面的那些能够满足面试中的测开理论部分了。


2、测开项目方面

最开始的时候,我的简历里面写了三个项目,一个老板的国家自然科学基金项目,一个公司的软件开发,一个自己的。

但是我七月份的时候把自己的简历给秀哥看后,秀哥一语中的,直接指出了我的问题,我投的岗位是测开,全是算法或者开发项目,肯定是不行的

于是在我一个同门的推荐下,去GitHub上面找了一个开源的基于pytest+request+aullre的自动化测试项目。

在此基础上,实现了对开源的接口测试网站的登录以及增删改查的接口测试。

同时,在项目的过程中也去学习了一些自动化测试相关技能,自动化测试框架pytest、接口测试库request、postman和UI 测试 selenium等的原理以及使用,还有dockers,Jenkins这些持续集成的方法。

然后在秀哥的建议下,把自己简历上的算法项目删掉了。


3、八股方面

八股确实是很重要,虽然背着很不爽,但是谁背谁知道,而且有些时候,有些机制,你会觉得很奇妙,前人设计的真的很好。

八股一般分为编程语言、408这些。

编程语言方面:我主python的(因为自己之前也勉强算在搞算法吧),python对应的八股知识相对少很多,python的一般就内存池机制、装饰器、反射机制、lamda表达式这些了。

相比于Java,我觉得少很多,网上也有很多,就不在做介绍,上面也分享了。

计算机网络&操作系统&数据库:我的步骤是,先去看小林coding的图解网络、图解操作系统等,了解基础原理,知道为什么要这么设计,然后再去看秀哥网站的面经。

这里再次强烈安利秀哥网站的面经,简直太管用了,基本上面试涉及到的都在里面了

当然,很多时候看一遍是记不住的,不过也有可能是我太笨,脑子不够用,反正至少我是记不住得。

基本上,我一个半星期复习一下,复习两三次之后,基本上大致就能比较深刻了,再次高呼,秀哥,YYDS!!!

秀哥的网站:https://interviewguide.cn/notes/03-hunting_job/02-interview/02-01-os.html


4、算法方面

面试造火箭,工作造轮子。

虽然挺很多实际工作的师兄师姐说工作的时候真不会太经常用到这些算法,但无论是笔试,还是面试,算法都是决定性因素之一。

没办法,那就只能刷!

我算法应该在我们实验室算比较差的,我就刷了300多道吧,还要挺多是二刷,三刷的,主要我确实不喜欢刷算法。

我只是想找个工作,你跟我说什么ACM最有效的算法,多么多么快,多么多么省时,我真的脑子会炸。

我就想找工作,把题做出来就完事了,我不是为了刷题而去刷题,我跟秀哥一样,我是为了找工作而去刷题,太难的我直接略过,图论这些我一个没刷。

还有就是我本科非科班,算法思维确实相对较差,有些题还真就没思维。

在这里我比较推荐b站《左程云,左神的算法视频》,我没有完全看完,因为时间有限,但是动态规划那边,真的是看完了视频,才明白什么叫动态规划,后面刷对应的题才有点感觉。

题则主要是剑指offer+ 力扣 hot的100多道,一定要掌握熟练,然后,有时间,能多刷一定要多刷!

三、面经


因为这位师弟分享的内容太多,差不多有将近一万字,属实是不少。

如果全部在这一篇文章上面刊登出来的话,阅读体验会很不好,因此阿秀考虑了一下,决定将师弟这篇文章中的面经拆出来,明天再发表。

如果你已经是阿秀的学习圈成员的话,可以点击此处看这位学弟的分享:https://t.zsxq.com/066QjMN3v;如果不是,明天我会继续将这位师弟的分享发表出来。

需要说明的是公众号一天只能发表一次,因此我最多一天也只能发表出来一篇,所以我只能将阿秀的学习圈中一些比较有代表性的分享挑选出来整理分享出来,其实还有更多精彩的内容没能发表出来。。。

四、经验小结


1、重视简历,简历是第一影响

简历,我认为是非常重要的,是第一印象,简历不好,hr可能自己挂了,一定要多修改。

我这里从寒假实习,也就是去年十二月份,到今年的正式批,也就是七八月份,这将近八九月份的时间里,我反反复复修改了n次,每次修改完一个大版本就请秀哥帮我看看,帮我再修改修改,我从中也学到了很多,比如用数字去衡量产出这些。

以前也看过秀哥分享很多简历修改的文章,讲的属实不错

另外,投不同公司的时候,也要注意不同公司岗位的差异性、要求,针对性的优化一下。


2、注意复盘

这里我想引用考研时,宇哥说的一句话:小步走,常回投,一点一滴学过手。宇哥就是那个考研名师张宇,他的《高数十八讲》贼牛!

每次面试,除非是大佬,不然都肯定还是有不会的技术点,下来一定要针对不会的点,去复盘。

今年很卷,有一次面试机会很不容易。

从6月以来,自己投了差不多将近100份简历,才得到了不到10次面试机会,但除了蔚来,自己是一面主动放弃(当时面试的时候,其他公司面试开始了,自己给面试官主动说让结束),其他的基本都到了hr面。

只能说不同公司,同一岗位,很多问题还是有共同性的,多复盘真的是对的。

3、尽人事,听天命

投简历,做笔试,准备面试,真的很累,心里很煎熬,也很想让人放弃秋招,但是多准备一点,就是多一点机会。

记得最忙的一天,上午复习了一上午,下午两个小时面了两场,晚上又做了两个公司的笔试。

基本上除了当天都是复习,面试,笔试,有一瞬间真的感觉好累,好想放弃,想着自己为啥要受这份罪啊真的很难受。

字节提前批挂了的时候也很想放弃,但是还好坚持了下来。

今年就是计算机神话破灭的一年,神仙打架、寒冬来袭,求职大家都不容易。

即使开始路途不顺,也不要心灰意冷,该复习复习,该投简历投简历,该笔试就笔试。

多准备一点就是多一点机会,尽人事,听天命,准备的越多,越到后面,面试越有感觉,甚至面试节奏。

包括跟面试官说笑也在慢慢得把控感觉,这都是需要一点一点积累出来的,都是一场场面试经验累积出来的。

我现在很能够明白秀哥跟我说的:你面的越多,面试经验就越丰富,就越得心应手,上岸概率就越大。

因为他面了将近六七十场,真的是这样的,你面的越多就越有经验,就越能得心应手。


五、结尾


我的分享差不多就是这些,注意算法基础,夯实八股知识,多面试汲取经验。

最重要的就是别在offer放弃你之前,放弃自己

最后在这里感谢秀哥和我温柔可爱美丽持家的史上无敌神仙师姐的帮助,这样份子钱也该能多给一点了,祝秀哥和我师姐长长久久,枣生贵籽!;

也特别感谢我另外一个师兄,帅气的徐博,在字节面试的时候一直给我的帮助;

还再感谢一下实验室一同奋战秋招的同门们,相互帮助、互相提高。

祝大家都有个在后头的好日子!

offer一定会有的,如果现在没有,那只是还没到来,各位兄弟们加油!


总有一些人认为普通学校出身的注定找不到工作,拿不到好offer,其实不是的。

不可否认一个好的学历确实是加分项,就好像这几位学弟一样,他们知道自身的学历优势,于是就好好利用自己的优势。

面经👍算法转开发,拿了3个offer!

面经👍:三无人员简历挂麻了,磕磕绊绊终上岸字节后端

面经👍抖音后端,实习offer

面经👍:前脚结束面试,后脚意向书就发来了。。。

但这也不代表普通学校出身的就没有机会了,一些学校不太好,学历一般的同学,比如跟阿秀一样都是普通二、三本出身的同学来说,他们有的准备时间甚至比我当初更久,阿秀自己是提前了一年左右的时间去系统学习&准备,这是阿秀自己的校招总结:字节跳动SP!完整复盘阿秀自己一年的校招准备过程!

下面这些文章主人公也都是普通学校出身,最后也都通过自己的努力拿到了让自己满意的offer,并不是像很多人以为的唯学历论,学校背景决定一切等。

面经👍:大厂去不了,中小厂我也满意

面经👍:7天五面,提前批顺利上岸飞书后端

面经👍:上岸快手,我选择一条不一样的路

面经👍:不管那么多,offer先接了再说

面经👍:非科班转码,上岸小公司我也很满意了

面经👍顺利上岸字节电商后端,但也真的很不顺利

学习计算机的都知道一个局部性原理,其实你现在踩的坑,你的学长学姐大概率已经都已经踩过了。

如果可以的话建议你多看看他们踩过的坑,阿秀自己组建的学习圈置顶帖中有个「知识图谱」和「精华区」(如下图),其中有很多计算机大学四年学习以及校招的内容和问题,多看看这些能够帮你走的更稳、更顺。

星球里的精华区、知识图谱以及资源沉淀

以后会继续笔耕不辍,输出一些有价值的内容,对于每位阿秀的学习圈中的学弟学妹也会增送自己以前的学习和校招面试总结笔记:阿秀的校招求职笔记PDF版本现在只有这一种获取PDF版本的方式了。

相关文章
|
2月前
|
机器学习/深度学习 算法
大模型开发:解释随机森林算法以及它是如何做出决策的。
随机森林是集成学习方法,利用多棵决策树提升性能。通过随机抽样和特征选择创建弱分类器,减少模型相关性。每个决策树基于子数据集和特征子集构建,预测时集成所有决策树结果,分类问题采用投票,回归问题取平均值。这种方法降低过拟合风险,提高准确性和稳定性,对噪声和异常值容忍度高,广泛应用。
15 0
|
2月前
|
机器学习/深度学习 运维 算法
大模型开发:描述一种用于异常检测的技术或算法。
LOF算法是一种无监督异常检测技术,通过比较数据点局部密度识别离群点。它计算每个点的局部离群因子得分,得分高则异常可能性大。主要步骤包括:距离度量、k近邻搜索、计算局部可达密度和LOF得分,然后设定阈值识别异常点。适用于入侵检测、故障检测等场景,Python中可使用scikit-learn库实现。
19 1
|
2月前
|
算法 Java 索引
金石推荐 | 【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(下)(二)
金石推荐 | 【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(下)
30 1
|
2月前
|
存储 算法 Java
金石推荐 | 【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(下)(一)
金石推荐 | 【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(下)
34 1
|
2月前
|
消息中间件 算法 Java
金石推荐 |【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)
金石推荐 |【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)
37 1
|
2月前
|
机器学习/深度学习 算法
大模型开发:解释反向传播算法是如何工作的。
反向传播算法是训练神经网络的常用方法,尤其适用于多层前馈网络。它包括前向传播、计算损失、反向传播和迭代过程。首先,输入数据通过网络层层传递至输出层,计算预测值。接着,比较实际输出与期望值,计算损失。然后,从输出层开始,利用链式法则反向计算误差和权重的梯度。通过梯度下降等优化算法更新权重和偏置,以降低损失。此过程反复进行,直到损失收敛或达到预设训练轮数,优化模型性能,实现对新数据的良好泛化。
|
2月前
|
机器学习/深度学习 分布式计算 算法
大模型开发:你如何确定使用哪种机器学习算法?
在大型机器学习模型开发中,选择算法是关键。首先,明确问题类型(如回归、分类、聚类等)。其次,考虑数据规模、特征数量和类型、分布和结构,以判断适合的算法。再者,评估性能要求(准确性、速度、可解释性)和资源限制(计算资源、内存)。同时,利用领域知识和正则化来选择模型。最后,通过实验验证和模型比较进行优化。此过程涉及迭代和业务需求的技术权衡。
|
2月前
|
机器学习/深度学习 算法 开发工具
视觉智能平台常见问题之其他算法定制化开发如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
29 1
|
2月前
|
存储 算法 PHP
开发一款扑克游戏,请给出一套洗牌算法,公平的洗牌并将洗好的牌存储在一个整形数组里?
开发一款扑克游戏,请给出一套洗牌算法,公平的洗牌并将洗好的牌存储在一个整形数组里?
17 1
开发一款扑克游戏,请给出一套洗牌算法,公平的洗牌并将洗好的牌存储在一个整形数组里?
|
3月前
|
算法 Java Android开发
安卓逆向 -- NDK开发实现MD5算法
安卓逆向 -- NDK开发实现MD5算法
34 0