【个人秋招经验贴】零基础算法转开发,到收获大厂offer
1、写在最前面
2021年马上就要结束了,在最后这几天写一些我秋招的经验回馈牛客社区。牛客在我找工作过程中起到了很大的作用,包括一开始前人写的秋招经验帖,各种大佬们的面经,及时的招聘信息等等。我还通过牛客结识了一些小伙伴,这些小伙伴在我秋招的过程中也帮助了我很多。所以,在这里写一些我的经验,希望也能帮助后面找工作的小伙伴。
我的这篇帖子不涉及很细节的东西,比如教大家怎么刷题,八股文的知识点有哪些等等,这些细节的东西在牛客网上一抓一大把,在互联网上也可以很轻松的检索到。我在这里只讲一些比较粗一点的东西,比如说一些我踩过的坑和我的一些小技巧,从宏观的角度给大家一些经验。大家对细节的东西比较感兴趣可以看看https://www.nowcoder.com/discuss/532896?source_id=profile_create_nctrack&channel=-1的文章,我在年初很迷茫觉得自己找不到工作的时候,也是看了这位大佬的帖子让我重新有了希望。
2、本人背景
我研究生就读于某中流985,研究方向是自然语言处理,本科是某211,计算机科班。大四时候有一段小公司的自然语言处理算法的实习工作经历,本科参加了若干大大小小的比赛,研究生期间发表了一篇C类会议论文,也参加过一些算法的比赛,但名次都不是很好,研究生期间无实习经历。我从今年3月份开始,经过深思熟虑,从算法转开发,身边的同学朋友几乎都是算法选手,只有我一个人找开发显的比较另类哈哈哈。至于为什么转,我这里就不细说了,这不是这篇帖子的重点。做为一个开发零基础的选手,我在3月份的时候,对于开发的了解几乎为0,研究生期间一直在搞算法,没有写过开发的项目。对于java的了解也仅限于本科大三开的java课程,更不用说Spring之类的框架。不过好在我是计算机科班,对数据结构,操作系统,数据库,计算机网络等八股文相关的东西有一定的基础,后期背起来不是那么吃力。因为担心自己拿不到offer,我用了海投的战术,大大小小的公司都投了一遍,实习+提前批+秋招我一共投了67份简历,秋招结束后,我收到了亚马逊、美团、京东、滴滴、贝壳、去哪儿、大华的offer,虽然都是白菜,但已经超出了我个人的预期,毕竟在3月份的时候我还是一个纯开发小白,当时觉得秋招的时候能有一个中等公司的offer就不错了。所以我这个帖子很适合像我这样的开发零基础的小白,不过这里注意一下是开发零基础,不是计算机零基础,毕竟我还是科班,比很多跨专业的同学基础好很多。
3、个人经验
3.1 找工作准备的时机
我是在上个寒假的时候开始准备,但是那时候三天打鱼两天晒网的,一个寒假就只把剑指offer刷完了,开学3月份的时候,觉得自己准备不足,错过了很多实习练手的机会,只投了一个网易的实习,当时java几乎一点都不懂,一面无情被挂哈哈哈。我个人觉得找工作最好的时间就是从现在开始准备,明年春天的时候投实习,即使实验室不放实习,也可以投着增加经验,感受一下笔试和面试,积累经验。这样在后面的提前批和秋招的时候就会应付的比较从容了。我因为实习没有把握好,提取批才开始海量投递练习,导致我提前批颗粒无收,秋招的时候才因为准备的比较充分拿到了一些offer。提取批有些公司是没有笔试的,所以相对来说会容易一些,而且提前批拿了offer后,后面秋招的底气也会更足,秋招的时候不需要再投比提前批offer差的公司,这样也不会太累。我在秋招的时候最多一天面了三场,还做了一场笔试,投的太多真的很累人。
3.2 简历如何通过
对于这一点,我确实没什么经验,因为我的学历背景比较好,即使没有大公司的实习,我投的简历几乎没有被挂的,都会给笔试的机会。对于学历背景不太好的同学,可能就需要积极找一些实习来丰富自己的简历了,否则会面临简历不能通过的风险,因为我见过一些技术比较好的同学,但在秋招的时候因为学历背景直接被公司卡了简历。所以对于学历背景比较一般的同学,找工作就应该更提前的准备了,争取多整几段实习。
3.4 秋招该如何准备
秋招无外乎就是三点:算法题、基础知识、项目,而基础知识和项目又是紧密相关的。
对于算法题我有以下几点经验:
对于算法题,我的建议是早早开始刷,刷算法题最好的开始时间就是从现在开始,越早越好。刷题的时候可以按照题目类型刷,大家在牛客上或者很多技术公众号都可以找到按照类型分类的题目。我大概刷了200多道的算法题,一般难度的笔试都可以过,面试的算法题几乎都写出来了。
推荐用python刷题,因为笔试的时候,我们的目的是把题目解出来,python强大的处理数据的库有时候可以帮助我们很方便的把题写出来,特别是在处理输入输出上,python永远滴神。大家可以在刷题时候看力扣的评论区的一些题解,python的题解很多时候都是比较简单。我个人是python 、c++双修的,笔试用python,面试用c++,因为我面的是开发,面试官有很多时候看不懂python的语法,有时候还得解释,就比较麻烦,哈哈哈,而且面试时候考的题和笔试不一样,面试要考察思路的,用python的库大部分时候用不上,面试时候写题也不用处理太复杂的输入输出。这里需要提一个点,我投的岗位都是java开发,但面试时候写题,大部分都可以用c++来写,面试官不会要求必须用java,这个大家可以放心,用自己擅长的语言就ok。
对于基础知识我有以下几点经验:
java开发的基础知识基本就是:java基础知识、操作系统、数据库、计算机网络、java基础知识、spring、redis。这些都是大家口中的八股文,这种基础知识,大家直接背就行了,牛客上或者公众号或者博客都可以搜索到这类型八股文,大家挑一些人气高的背就可以了。
对于基础知识,刚开始学的时候可能会有一些慌张,一看这么多东西,还都看不懂。但实际上,面试多了就会发现,高频考点就那么几个,多面几次就能感觉出来,很多高频考点面多了,基本就脱口而出了。
对于项目我有以下几点经验
- 如果没有项目,要学会包装自己。找工作之前我一个java开发的项目也没有,只做过一些算法相关的项目。所以在找工作的时候,我在网上找了一个RPC的项目,把这个项目的代码都一行一行看懂,并且运行了起来。虽然我还是没有写过一行java代码,但是我懂里面的原理,整个RPC框架搭建的流程的细节都烂熟于心。和面试官扯起来也面不红,气不喘的哈哈哈。
虽然RPC这类型的项目已经烂大街,人手一个,但是大家要知道,面试官问你项目,大部分时候,是想从项目的角度看你对技术的掌握,因此就放心大胆的讲就行了,比如说项目中用到的并发模块等等都是面试官感兴趣的,介绍项目的时候可以引导着面试官往你准备好的这些方面问。
项目的改进。虽然项目是别人开源出来的,但是不能只啃别人剩下的东西,面试官很喜欢问你的项目还能做哪些该进。这种问题才能体现出你的实力来。这个时候,你就需要对项目进行深入理解,想一些可以改进的地方,如果时间不充裕,你完全可以不写代码,思路有就ok了,不需要真的写代码去改进,当然有时间,写一写是最好的。
一些找工作的小tips
用一个表格来统计你面试的情况。当你海投的时候,用一个表格来记录投递情况很有用,到了后期投多了,自己都记不得投了哪些公司了。下面这是我自己做的表格。
背八股文的时候做笔记,把你认为比较重要的写一些笔记,因为网上总结的东西都很广,不一定都是我们自己需要的,你可以自己总结一些八股文相关的笔记,后面复习起来更有针对性。这是我总结的一些笔记,但我这里不提供我的笔记,因为我写的很乱,而且我的目的不是分享笔记,是给大家分享方法,大家不要私聊来问我要笔记
面试前看面试公司在牛客上的面经,很多时候都能碰到原题。我在面试前都会把对应公司面经种的八股文、算法题总结出来,然后自己做一遍。这个方法真的很有用,强烈推荐大家使用。
4、写在最后
我能想到的大概就是这么多,找工作确实是一个比较辛苦的过程,甚至是一个很考验运气的过程。面试官可能问到你没有背过的八股文,也可能刚刚好考的算法题就是你前两天做过的。你挂了有时候并不是因为实力不行,可能刚好就是hc满了,所以大家在找工作时候不要轻易灰心丧气。最后,祝大家都能收到满意的offer!
2021.12.30