Momenta面试
意义
第一次实习offer面试记录。
流程
收集和投递
在Boss直聘软件上,我找了非常多的实习岗位进行简历投递。一开始我的简历是保研简历,后来发现普遍认可度不高,随后加上了项目清单,才显得更有说服力。
在这个过程中,我先后投递了字节,Momenta,小黑盒,零一等一系列公司,也尝试投递做链的一些实习岗。最终结果是零一拒入职,字节一面挂,小黑盒进简历库就没下文了,Momenta投递了非常多的Go部门但都让我去Python岗。最终有一个Momenta的部门岗给了我面试机会。
面试准备
自己的项目就不需要准备啦,实打实自己架构的,代码一行一行写的。所以准备内容主要分为两个部分:面经和算法
面经
分为计科面经,和岗位(Go)面经
计科面经
主要看408和数据库。
计算机网络知道分层的情况下,基本只用复习物理层和数据链路层(Mac层就没怎么在面经里看到)最基本的知识,知道双绞线交换机啥的,以及一些常用的数据链路层协议。主要是网络层:IP和无连接;传输层:TCP/UDP;应用层:DNS。基本知道这些就可以。
计算机组成原理和操作系统:纯靠你的基础,主要看操作系统,进程线程,调度,锁,内存。
数据库则基本和上课完全不一样。建立在我只用过Mysql的基础上,我就是看了Mysql的索引,事务啥的,然后不同引擎的特性,版本差异,Mysql的架构,sql优化。要是你写过会Redis或者其他,则要准备更多了。
我看的资料是小林coding (xiaolincoding.com)
Golang面经
直接B站搜:【golang面试】go语言经典面试题一网打尽!(并发+算法+channel+slice)_哔哩哔哩_bilibili
看完这个,知道了最核心的考点之后,我们就可以进一步完善整体知识了:Go常见面试题【由浅入深】2022版 - 知乎 (zhihu.com)
然后就可以着重了解一下Docker,k8s这些衍生的东西了。
最重要的是,Go并发routine和channel的用法,以及常见的并发处理方法。
算法
直接leetcode刷150面试题型面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台,里边我做了不超过20题。体型刷完之后全靠运气答题
一面
一面主要问的我的项目,以及给了一道easy题吧。
项目就直接忽悠他完事儿了,顾着自己讲不要给他提问的机会。问什么答什么,答太多记得最后收回到问题上。
题目给的是一道滑动窗口求最大值,这玩意儿我写完基本的之后跟他讲了一下优化思路,差不多算过了,感觉面试官对我印象可以。
二面
二面也是先问我项目,然后干面经,最后写题。面经真的是,只问Go和数据库,给我干麻了。
Go问的是Channel和Goroutine,问我一个并发处理模型,ABC三个爬虫任务,完成后收回结果,用什么channel,buffer还是no buffer。我一开始回答错了,答案应该是buffer。
数据库就是问的Mysql组件架构,以及B+索引,索引类型啥的,就是面经的基本内容。
面试题的话,是一个N叉树求解直径的问题,就是该根节点的两个子树,从叶子节点开始向上回溯到根节点,经过根节点到另一个叶子节点,经过的节点数为直径(下去又上来)。对于这个树,求出最大直径。
这一题就是求子树高度,然后转化为直径的问题。就是递归更新子树的最大直径。(不想写了,这题网上搜到是1522 N 叉树的直径_1522. n 叉树的直径-CSDN博客)
拿offer
原来说的是一面二面三面hr面,但是二面过一小时多hr加微信就给offer了。总体来说还是比较幸运。本来找的就是Go岗位,Momenta其他部门也是让我转Python岗,但我都拒绝了。幸亏最后能在国庆前拿到offer,29填保研系统,然后国庆爽玩,9号回去入职;今年的中秋和国庆还是连一块的,这下不得不回去了。
也想着赶快恰米,把去新国立从我妈那拿的2个w给还了,稍微实现点财富自由。360一天加餐补还是可以的。