算法转开发,拿了3个offer!
扫描二维码
随时随地手机看文章
以前就谈过很多次算法岗和开发岗的取舍,也建议过普通人不要去找算法岗的工作:为什么我苦口婆心劝你不要找算法岗
我现在还记得今年三月份有个东北某985在读的师弟跟我说现在转开发还来不来得及。。。因为去年八月份的时候他是铁了心要走算法,他是做图像的,具体好像是做特诊提取的,结果三月份来问我转开发来不来得及。。。
今天分享一位算法转开发的上岸经历,这位师弟研究生时期是做计算机视觉的,也就是CV方向,今年三月份之前他跟上面那位师弟一样也是走算法岗,在春招过程中发现岗位要求跟自身很不匹配,所以果断转了C++后端。
自此踏上了全心全意的转开发之路,下面是他的分享和总结,其中的“我”代表这位师弟本人,希望能对你有所帮助,这是本文大纲,友情提示一下文末有惊喜:
一、个人背景
二、实习&秋招
三、美团面积(两轮技术面 + HR面)
四、大半年的总结
五、过来人的看法
一、个人背景
简单介绍一下自己,中流985本硕,工科专业,本科学习C++,做过一些嵌入式比赛,飞思卡尔、智能机器人、光电设计大赛,后来保研至本院。
实验室方向是计算机视觉应用,硕士期间做过两个横向项目,有一篇三作论文、一篇N作专利;
简历项目一个是实验室的视觉终端项目,一个是人手一个的Web服务器项目;
说出来你可能不信,我是在开始找实习的时候才确定找工作的方向,最后也没找到实习,读研期间也没什么竞赛。
截止到九月为止,自己投了不少公司了,目前拿到3个口头offer,分别是美团后端、锐捷软开和tplink软开,其中一些比较典型的,我列举一下
- 华为车BU软开:泡池子
- oppo系统工程师:泡池子
- 美团后台:已OC
- 锐捷软开:已意向
- tplink软开:已offer
- 科大讯飞:已做笔试
- 度小满:已笔试
- SHEIN:笔试挂
- 网易雷火后端:笔试挂
- 网易互娱:即将一面
- 网易互联网C++:已笔试
- 大疆C++:复筛
- 4399后台:一面结束
- 海康威视软开:等待面试
- 小红书后端:简历搁置,这个招人很少
- 快手后端:同上
- 字节后端:简历挂,听说也是基本不招
二、实习&秋招
1、实习
我是在3月份开始找实习的,因为实验室方向是计算机视觉应用,一开始想找算法实习。
但是面了一两次之后发觉岗位要求与自己很是不匹配,果断转C++后端;
由于没有提前准备,实习也没能找到,不过也好,至此开始全新全意的开发学习之路了。
2、秋招
实习没找到反而有种安心的状态,可以踏踏实实学习积累,于是结合之前背的面经以及相应的视频教程,开始系统的学习操作系统、计算机网络、数据库,拓宽知识面;
然后就是研究秀哥的学习网站中的问题,加深知识深度;在这个过程中将相关问题自己整理一份答案,时常翻阅(看自己的笔记好像能瞬间激活脑子里的记忆);
秀哥的学习网站:https://interviewguide.cn/notes/03-hunting_job/02-interview/01-01-01-basic.html
算法题个人感觉要先度过开始的困难期,慢慢加大题量;没有思路或者需要看着解析做的题目,隔一天再做一遍;我自己做题也不是很多,但是我会把做过的题反复做,反复体会;随着时间推移,个人感觉对于代码的把控更加细致,这才是算法的精妙之处;
另外一点,经典算法的模板十分重要,按照自己的思路整理一份,然后把关键点抽象出来,做题的时候按照实际情况处理一个个子问题,化整为零,各个击破,往往比提笔就写,然后不断debug来的舒服;
C++的基础知识主要看面经,本科研究生都学过,有一点印象,但是不深,还是依靠经典八股来学习,另外实验室有个学弟苦心研究C++ Primer,有不会的问题可以问他(哈哈)
数据库对我来说比较抽象,第一次接触概念,背八股,发现面试的时候根本答不出来,于是进行一波系统学习,真正吸收知识,然后总结相关问题;
实验室的项目不是很匹配,自己选择人手一个的Web服务器;进行系统学习之后,提炼相关技术,与八股结合一下,应对面试卓卓有余了。
这部分的学习路线我就不介绍了,可以看下这篇文章:7天五面,提前批顺利上岸飞书后端
三、美团面经
美团跟阿里一样,是有名的Java大厂,我是C++技术栈,但是自己也去投了,没想到也给我面试机会了。
所以有时候真的是柳暗花明又一村,不去试试真的都不好说,机会往往就只需要你往前走一步就能拿到。
下面是我的美团面经,是的,一个CPPer在Java大厂的面经。
一面8.24
- 自我介绍
- 项目难点,怎么克服,为什么选择这个技术,过程是怎么样的,成果是否投入使用
- 做题
- 中等力扣1143 最长公共子序列
- 困难 力扣37 解数独
- 面试官首先给时间思考,然后阐述思路,最后实现;可能第一题太快了(毕竟太熟了),又给了第二题;
- 场景题
- 数据库相关:如何设计账户余额字段
- 考虑业务,从精度、非空、非负考虑,采用float;面试官提出float精度问题,引申到存储原理,如何判0;
- float数(1-0.9)与(0.9-0.8)相等吗?
- 面试官引导思考,面对精度丢失,如何改进?
- 引申到整型,把余额×100,转整型;
- 第二种,MySQL提供高精度数据类型,面试官说可能没接触过
- MySQL索引结构,引申B树与B+树,为什么选择自增整数ID做主键?
- 分库分表、主从复制(简历有写,不过我说只是了解,没有深挖)
- 字符串如何简历索引?
- 数据库事务?什么是幻读?InnoDB如何解决?
- 死锁形成条件?如何避免死锁?(这块答的不太好,提到银行家算法,但是没深问,应该是破坏四个条件)
- 延时与吞吐率的区别?
- 什么是多路复用?为什么要用?引申epoll与select的比较;epoll底层原理:红黑树、就绪链表;
- epoll如何判断接收到了数据?
- mesi协议了解吗?不了解,cpu缓存一致性问题
- 什么是内存泄漏?有没有排查经验?(回答结合项目阐述)
- 文件授权?如何给文件增加运行权限?使用U+X;为什么不用777?
- http与https在那一层?https如何保证安全?加密、身份认证、校验
- 加密算法有哪些了解?RSA与ECDHE
反问
- C++面Java岗位,个人怎么看;
- 自己能力与岗位是否匹配?有什么建议?(可以旁敲侧击面试官的评价)
- 业务相关?相关介绍?打车结算业务介绍
- HC多不多?答不太了解;
- 后续结果?一到两周;
二面8.26
- 自我介绍
- web服务器项目?做项目的目标?有参考开源项目吗?
- C++基础相关
- C++与设计模式的关系
- 为什么要有设计模式;引申到单例、工厂等模式;
- 五个设置原则?没太答上来;详细说了其中一两个
- 堆栈区别?引申到内存泄漏、智能指针、shared_ptr原理;
- 如何利用C++中的异常
- 开放题
- 方法设计问题,函数能不能返回对象?
- 深拷贝与浅拷贝,自定义拷贝构造函数
- 多次拷贝问题
- 返回局部变量非法
- 考虑到对象存储位置,给出解决办法,传入双指针,调用new使其分布在堆上
- 做题
- 困难 剑指offer51 数组中的逆序对
- 还是先说思路,再实现
- 智力题(面试官只要答案,不让讲思路)
- 三层的二叉树多少种?
- 连续整数之和为1000,有几组?
- 平常怎么学习?
- 论文能应用吗?
- 比赛几个人?简单介绍,自己引申到如何分工、自己做了什么;
- 谁做的最好?回答各司其职,都好;(感觉是个坑)
- 一等奖多少?你排名多少?
- 华为软挑介绍,自己负责的东西;
反问
- 能力匹配吗?应届生看中学习能力,基础扎实、公司学习时间充足、进步比较快
- 多久反馈?一周
- 后续是hr面试还是技术面?hr;
HR面8.31
- 哪里人?独生子?父母工作?父母对工作城市选择的建议?
- 个人规划?有喜欢的城市吗?
- 对互联网行业,北上广深杭可选,怎么选?答工作机会
- 非科班转码契机?
- 大三就决定转码,有没有考虑放弃保研,跨考计算机?
- 什么时候加强计算机相关知识的学习?
- 学习C++语言的方法,抽象说一下?
- 没有实习经历?后端项目介绍?大概说了web服务器的流程;
- 做项目的目的?有推广给身边人使用吗?外部能用吗?
- 最大收获是什么?
- 休息的时候做什么?
- 毕业第一份工作关注什么?顺便提问薪资待遇;
- 答先发意向书、然后再薪资排序;
- 结构:base×15.5;年终奖4~5月份发;
- 还有其他的offer或者面试中的吗?字节、腾讯、阿里有吗?
- 后续流程:与前边面试官沟通,4~5个工作日通知?
- 先发意向书、与其他候选人一起排序等级(S、A、B);
OC9.2
- 沟通意向
- 询问手上offer
- 如何选择offer(愿不愿意来美团)
四、大半年的总结
说些有的没的吧,也算是自己这大半年的心得体会和总结
1、弄清定位
自己一开始想冲算法岗,无奈实力不允许,转战后端,但是来不及找实习。
即使看着身边人一个个出去实习,自己也不慌,安心进行系统学习、刷题,然后继续学习、刷题,按部就班的走自己的就行。
2、知己知彼
我认为自己的优势在于学历,但是真论技术,我的水平真的一般,也就正常的学生水平,比不上群里的大佬们。
另外我想说,学历只是优势,并不是唯一。
校招群里好多大佬学历一般,但是技术极其硬核,实习经历异常丰富,这都不是天上掉下来的,都是经过自己努力得来的。
还能自己撸项目,更有已经上线的产品,这都是我等凡人达不到的高度,他们收获的就是巨香的offer。
你要问我我羡慕吗?
肯定羡慕啊,他们的优势就是他们的技术
3、摆正心态
被拒的时候,我一开始也会自我怀疑,不过这都是正常的;
一方面是开始的时候自己没有经验,另外一方面自己可能确实知识体系还不够完善,还有最重要一点,你永远不知道企业到低有没有HC;
4、战略意识
我认为面试的时候更像阵地战,你的简历就是你的阵地,面试官就像是在攻城,你阵地任何一个部分被攻破,你也随之失败;
所以简历需要好好经营,实在不行缩减阵地规模也行啊;
如果你苦心经营的阵地连一轮进攻都抵挡不了,那确实应该好好考虑一下问题所在;
如果可以的话建议去找人给你看看简历是不是有大问题,特别是投了很多家公司都没消息的。
最后说一下很高兴能和大家分享,也很感谢秀哥能给我这次机会。
老实说,我认为自己还有很多的知识技术还未掌握,还有巨大的上升空间。
我的学习不会随着秋招结束而结束,大家一起加油吧!
五、过来人的看法
老实说,阿秀看到他的分享就明白他能上岸是应该的,他清楚自身的优势,也会好好利用自身的优势。
更重要的是他如饥似渴,不放过任何一个机会,从他是C++的去投递Java大厂就能看出一二。
阿秀也很认同他说的应该要知己知彼,学历不是唯一,学历不好就好好加油好好学技术,而不是整天在那里自怨自艾,抱怨别人不给你机会。
阿秀自己就是普通学校毕业的,也是很多人口中的双非仔,也通过自己的努力在校招中拿了百度、华为甚至是字节跳动的SP offer。
对于我们这样的普通学校的学生而言,机会有时候会在你面前溜过,但你要抓得住,抓不住,给你再多的机会都没用。
同样也很认可他说的战略意识即简历很重要,简历就像你的战略地,如果你苦心经营的阵地连一轮进攻都抵挡不了,那确实应该好好考虑一下问题所在。
以前就分享过很多简历相关的文章,这里就不再一一细细展开了,比如这两篇:如何写好简历中的项目经验、简历,要这样改才能突出重点!!
目前这名同学已经加入阿秀的学习圈,如果你想与他交流可以在学习圈中精华区找到他的文章进行交流。
下面给自己的学习圈打个广告,老实说,运营这个学习圈比我想的要辛苦,经常忙到一两点才能休息,但也得到了很多人的认可,帮到了很多人。
我自己也是一名互联网大厂的工作党,字节跳动的工作压力本来就不小,何况阿秀还在抖音这边写代码,我手底下还带着两个实习生,工作压力就不小,所以日常工作就很忙。
所以综合考虑下,自己的学习圈后期可能会慢慢关闭加入渠道,从而限制加入的人数,最后彻底关闭,不再加人。
目前已经突破 1000 人了,明天就会涨价了。
老实说,这个世界上需要帮助的人太多,相较于大家认为的人数越多越好,我认为只要能帮到一小拨人就足够了,一个人的精力是有限的,人多了服务质量肯定会下降,这是我所不想也绝对不愿意见到的。
下面是一些阿秀的学习圈的历史文章摘录,如果你想在校招中找到一份不错的工作,这也许会对你有所帮助:
面经?:7天五面,提前批顺利上岸飞书后端
面经?:上岸快手,我选择一条不一样的路
面经?:三无人员简历挂麻了,磕磕绊绊终上岸字节后端
面经?:不管那么多,offer先接了再说
面经?:非科班转码,上岸小公司我也很满意了
面经?:顺利上岸字节电商后端,但也真的很不顺利
面经?:研一一整年都在搞深度学习,研二醒悟打算转开发
简历?:这周改了90多份简历,如何写好自己的项目经历...
实习总结?:双非本科上岸抖音技术岗,我是这样准备的!
实习?:在大厂实习,表示很慌!
实习?:实习一直在CRUD,想跑路...
面试?:校招面试中需要注意的地方,一般人我不告诉他
面经?:百度、滴滴OC,却挂了字节
算法?:为什么我苦口婆心劝你不要找算法岗
准备?:不想再摆烂了,再给自己最后一次机会!
准备?:秋招准备时间不够?那就优先挑性价比高的
准备?:对自己目前的秋招进度产生怀疑了...
心路历程?:三本,身边人都在摆烂....
转行?:研一一整年都在搞深度学习,研二醒悟打算转开发
学习计算机的都知道一个局部性原理,其实你现在踩的坑,你的学长学姐其实都已经踩过了。如果可以的话建议你多看看他们踩过的坑,阿秀自己组建的学习圈置顶帖中有个「知识图谱」和「精华区」(如下图),其中有很多计算机大学四年学习以及校招的内容和问题,多看看这些能够帮你走的更稳、更顺。
此外也陆陆续续沉淀了不少自己这么些年收集和整理到的学习编程的资料,一些校招面试经验和内部资料分享等,这部分内容只会在学习圈里更新和迭代了,比如一些面试中杀时间的利器,让你光明正大的耗面试时间同时还能增加自己在面试官心目中的印象分,为啥我会这么说呢?因为我以前就是这么干的,这些都是我在实战中运用过的一些技巧。