秋招总结|算法岗上岸经验分享,附面经
虽然秋招还在如火如荼的进行中,不过我的秋招估计就差不多结束了,拿了意向之后就开始疲了。动力大大下降,所以差不多就在这和大家分享一些秋招的经验吧,虽然offer拿得不多,但是也可以从失败的教训中吸取一些有用的经验。那么就在这和大家分享一下我的小小心得。这里就不写具体问什么题了,在一些面经里面可以找到,主要是分享一些注意事项和对自己的总结吧。
数据结构和算法
无论是算法岗还是开发岗还是测试岗,万变不离其宗,重中之重自然就是数据结构和算法了,无论哪个岗位都会考,只是难度上可能会有差别。根据“帮助同学”的经验,测试岗或者测开岗可能相对会简单一些。
当然大家最关心的可能还是刷什么题,毕竟leetcode(lc)上这么多题,想要全部刷完需要充分的时间,对于天天需要干一些额外工作的小伙伴们,可能难以挤出这么多时间,在这提供一些值得刷的题。
- leetcode101-github,大家自行下载吧,我就不放文件了
- 这些应该足够刷一阵了。
这里不会把所有算法和数据结构的相关内容都列上,只是放一些本人在笔试面试中遇到的相关类型,仅供参考,希望对大家有帮助。
数据结构
- 栈:单调栈
- 堆:大顶堆,小顶堆。“有大规模的数据,求前k个最大或者最小的数”
- 树:字典树,二叉搜索树
当然一般数据结构都是需要和算法一起结合使用的,除了数组,用到比较多的还是栈,树和队列。堆和链表遇到较少。
- 图,树的遍历:dfs,bfs,dijkstra
- 递归:结合记忆化,dfs本身可以用递归实现,很多时候递归需要转换成dp来实现
- 动态规划:高频!!
- 贪心
- 并查集
- 滑动窗口
- 双指针
- 前缀和
- 模拟
大家可以参考上面的类型刷一刷题。出现比较高频的是dp,归并排序,快速排序,跟图相关的遍历,贪心,二分查找,递归;次高的是双指针,滑动窗口,并查集。一般模拟比较难以全部ac,但是没办法的时候就只能模拟一下,至少有点分。笔试只看分,能多拿就多拿。面试需要掌握时间复杂度和空间复杂度的分析,及时做不出来也可以讲一下大概思路。一些lc里的数学题,并没有在实际笔试面试中遇到。
基础知识
算法岗基础知识以及面试相关内容的学习给大家推荐三本书《西瓜书》,《百面机器学习》,《百面深度学习》,对于西瓜书中一些公示推不动的可以看南瓜书或者b站大佬的推导。本人主要是看这三本书,然后根据里面讲的内容再根据自己所投递的岗位进行拓展。
具体面试内容可以看一些面经,不过面经通常是有偏差的,因为不可能把所有问题都问一遍。因此,还是需要把一些基础知识掌握,包括机器学习和深度学习的,然后对于自己所做领域的相关知识得熟悉,比如本人做不平衡的,所以面试官会问一下不平衡数据的处理方式。
简历
简历是很重要的,需要好好制作,可以网上找一些模板。STAR规则对项目进行描述,熟悉项目的背景,流程等,然后对于简历中的项目需要非常熟悉,因为很多面试官都会问简历中的项目,有的还会和你发散性的探讨,所以不熟悉的东西千万不要写。在做完简历后,需要去思考这些项目可能涉及哪些知识点,以及这些知识点的关联知识点,思考可能会问的问题,并进行查漏补缺。。在这也很感谢我同学对我写简历的帮助。