上海 985 计算机专业大三在读,有 acm 经验,无牌子,有一些算法竞赛和数模小奖,写在简历上的都是课程项目。
2021 年 3 月开始找实习,同时开始背八股文刷力扣。
先找苏州微软的同学内推软件工程师暑期实习,做了笔试(90%),然后就石沉大海了,过了两周才给了面试邀请,还是群面,最后没有参加。
后来内推投了美团大数据开发,笔试 3.5/5,过了两天约第二天面试,然而自己八股文还没看的很熟悉,只能硬着头皮上,结果显而易见,一面挂。
美团笔试前内推投了字节商业化的后端日常实习,hr 效率很高,当天打电话约一面时间,我约了一周半后,留足时间来复习。
美团一面挂了之后,我开始着重复习数据库,操作系统,以及链表题,同时也略有点焦虑,担心字节后端实习也挂掉,所以还投了字节教育的客户端,PDD 和阿里的两个后端实习岗。
字节一面二面三面都相对很顺利,不会的直接坦白给面试官,会的内容也基本都展开说了,算法题比较简单,和面试官讨论着就完事了,基本上一天内就会通知下一轮面试,最后和 hr 确认了到岗时间,就接了字节后端 offer,同时把之后的面试都婉拒了。
acm 是计算机本科最有含金量的比赛,专心练一段时间,不管拿不拿牌都利大于弊,最显著的提高就是个人代码能力和思维能力的成长。
积极参与各类算法竞赛,小型比赛也可以参加,拿奖也可以激励自己冲击更高的牌子。
acm 题和面试题有相同点,也有不同点,通俗来讲,acm 更难,知识点覆盖更广,而力扣更关注工作所需要的算法知识,不过随着大众水平的提升,力扣也在引进一些 acm 中的算法和数据结构知识,例如数位 dp,线段树,树状数组等。
如果你练过 acm,准备面试的过程一定要刷链表题,因为 acm 不习惯使用链表来做题,但是力扣面试很多题都是链表,而链表题,虽然不难,但是可以考验候选人的代码能力和数据结构基础。
我于大一下学期开始训练 acm,大三前退队,因为我认为当时多校的题很难,自己也没有了日夜补题做题的激情,也就是失去了对 acm 的热爱,而 acm 没有热爱是很难打出成绩的,于是就放弃了后续的选拔。
力扣刷题是解决面试题的最直接办法,我在面试的过程中遇到的所有题目都是力扣原题。
如果你可以轻松解决 medium 题目并且稍微想想可以解决 hard 题目,那我觉得你进大厂是没有问题了。
网上有一个企业题库 https://codetop.cc/#/home 网站,上面收录了很多大厂的面试题,可以根据部门和时间进行优先刷题。
做题时切忌闷头做,如果秒出思路,可以先讲给面试官自己的思路,然后再写代码。如果遇到不会的问题,要及时和面试官进行互动,寻求提示,把自己当作团队成员一样与面试官讨论。
八股文是一定要会的,并且不能泛泛而谈,需要深入的了解。
面试官抛给你一个八股文问题,如果你熟悉,一定要抓住机会展开来讲,既要展现广度也要展现深度。如果你不熟悉,可以说“正在学”,“自己回头下去再研究”,也可以直截了当的说自己不了解。
举个例子,如果问你为什么使用 b+ tree
作为索引,你就可以从数据结构的角度来分析,与普通平衡树、b tree
和哈希表做比对,既然谈到数据结构,就要从时间和空间来讨论...
当然,有的面试官会刨根究底问,问到你不会为止,那么还是会的展开说,不会的承认不会就行。
如果你觉得自己项目经验不够丰富,可以写上课程项目,并且按照 项目介绍-个人负责 的顺序组织语言。
如果觉得项目不够多,可以在简历上着重写自己掌握的技能,并且展开来说,例如你会 c++
,就可以说自己能够使用 c++ 11
特性进行开发,掌握 STL
库等,这样可以方便面试官快速了解你的情况。
当然,如果你的经历优秀到一张纸都写不下,那就不用纠结于上述情况了。
祝各位 offer++,竞赛牌子++,都能收获自己想要的工作岗位和竞赛奖项!