我来说说这次春招

今天算是基本结束掉了自己的第一次密集招聘,所以稍微总结一下这次奇妙的经历。以下是不完整回忆,记录一下方便日后回顾。

公司 职位 情况
阿里 Node(内推) 失败
腾讯游戏 C++(内推) 失败
Autodesk 数据岗 失败
饿了么 Node 失败
微软 软件开发 待面试
小红书 后端 成功
Teambition Node 成功
暖暖游戏 后端 成功
英语流利说 后端 成功

懵逼的大厂内推面

大厂的内推面,一般都是在春招的早期开始的。因为是第一次参加这种技术面试,整个人完全是懵逼的。一个寒假刚玩的很嗨,回校以后能忘的都忘的差不多了。还没开始准备,内推面居然就开始了。

第一个电话是在3月的某天晚上10点接到的,是阿里打来的,聊的很慌。当时连 Node 都没有系统的学习一次,《Nodejs硬实战》 才看了一半,靠着之前的一些项目经验强行答题。 多进程细节Http通信细节 都没有回答清楚,非常可惜。感觉现在来答至少不会是第一面就挂掉的尴尬状况。

没啃几天 Node,又是一个晚上10点又接到腾讯游戏的电话了。当时投内推的时候,事业群是随便选的,也没想到是腾讯游戏打来的(可能是之前一学期写了一个线上斗地主的游戏吧~),又是一次没准备好的面试,超级尴尬。TCP状态机C代码编译过程 这种无敌基础的问题居然给答错了,现在想起来真是贼丢脸。这次面试还暴露出来一个问题,因为平时用 Mongo 比较多的原因,对关系型数据库的理解稍弱了一些,也为后面的面试埋下了一些隐患。

疯狂准备

连续挂掉两个内推面以后,参加了一些大厂笔试。但是我就发现了一个很尴尬的问题,我一直在准备 Node 。笔试题里永远都是 C++Java,这样的准备是毫无意义的呀。这个时候我才醒悟过来,还是一心钻到 Node 里去吧,毕竟喜欢嘛,其他岗一律不投了,索性我把自己的简历也从一份整理成了两份,一份数据岗,一份Node岗。现在看来,这是非常重要的一个自我认知。

在一边疯狂系统刷 Node 的过程当中,也萌发了自己维护一个开源项目的想法,希望自己在以后的面试过程当中能够拿出一些实际的东西,这也催生了之后的 express-seven

这准备过程当中去面了 Autodesk的数据岗 ,这次面试和前几次不太一样,主要以我自己对项目经验介绍为主,从数据处理的项目到后端项目聊了个遍。感觉这个交流过程还是蛮开心的,但是在等了两周后还是被拒了。其实说实话,我现在也不知道被拒的具体原因吧,可能是技术栈不太合适吧。

连续的被拒,心态还是有点崩了,不过还好很快就调整回来了。继续刷 Node,也开始在 LeetCode 上刷题,找找手感。

一直在路上的4月与5月

饿了么

第一个有准备的 Node 面试也不约而至,是饿了么大前端部。因为我的 Node 学习路线就是按照他们出的博客来学习的,当时面我的大佬也说我是第一个看完攻略去面的。下面是提问点:

  • 作用域和闭包
  • 内存回收机制
  • 两个文件相互 require
  • Event Loop
  • 异步和多线程的差异

然后让我写了一个 String转对象的函数 ,和一个 数组的处理函数 。代码基本都OK,但是文件的相互 require 上回答的不是特别好,只能答出会出现的现象,但是忘记原理了。没过几天也收到了拒信,说替代现在的实习生能力是够得,但是因为现在实习生名额很少,所以没能通过,主要问题是对很多 Node 原理没有去实践过。这次面试虽然没有通过,不过大佬给我指出了很多问题,也指引了我 Node 学习方向,给了很多鼓励。

小红书

4次被拒,心态真是炸裂。去小红书面试前闭关了三天时间,然后早早到了新天地SOHO,开始了三轮的面试。下面是提问点:

  • 第一轮
    • TCP状态机
    • 手写快排
    • 手写两个简单的算法题(二分,编码)
  • 第二轮
    • 手写两个数据结构题
    • 内存分配策略
  • 第三轮
    • 聊项目经历
    • Spring的依赖注入和切面编程

知识点和自己很匹配,所以整个过程非常的流畅,特别是算法题都是很快就解出来了。除了我对 Java 真的没有那么熟悉,所以 Spring 聊的比较差。面试官当场就说我是最近来面试的最好的,所以当场就给了口头Offer。至此拿到了第一个Offer。

Teambition

express-seven 写好几天后就赶到了张江高科,参加 Teambition 的面试。整个过程聊项目更多一点,因为那段时间正在写游戏服务器,所以聊了很多 Pomelo,聊了很多多进程的解决方案。因为聊得时候直接打开我 Github 聊得,所以也问了很多项目里面的问题,以及对一些 Web框架 的认识。因为一直是TJ大神的脑残粉,所以从 express 聊到 KOA2 还是游刃有余的。技术面的时间不是很长,和HR聊了蛮长时间。整个过程也是非常的愉快,面试官也很年轻,没有压迫感,所以也算是正常发挥了。回学校不久后就接到了通过通知。这两次的成功经历,也为自己涨回来挺多自信,也积攒了很多的面试经验和技术知识。

暖暖游戏

因为一直对游戏行业有憧憬,所以也参加了暖暖游戏的面试。去到公司以后,先做了30分钟的笔试题,第一题就是 C++每种数据类型占多少字节,我确实没有认真准备过C++啊!还好除了第一题其他都答的还不错,都是一些基础的填代码,手写代码和逻辑题。然后就开始了面试,以下是提问点:

  • Hadoop存储原理
  • 多进程通信
  • 网络通信
  • 大数据量的缓存方案(Redis)
  • 数据库的底层实现(B+树的增删查改)
  • 无序数组找第K大数
  • 游戏中服务端和客户端的同步策略

整个过程当中,因为确实没有准备 HadoopSpark 的相关知识,所以感觉 Hadoop 聊得很噶, Redis 因为对底层也不是特别熟,还只停留在内存数据库层面,所以聊得也不是特别好。但是到自己比较擅长的网络、算法区域就还比较顺畅。几天以后收到了通过通知。

超头疼的英语流利说

就昨天去面了英语流利说,长达4个小时的5轮面试,回学校以后连走路的力气都没了。这次面试是最近几次里最不顺利的,能看出自己在很多知识的掌握上都不深入,以下是提问点:

  • 第一轮
    • http 通信的过程
    • http pipeline
    • 内存的分配策略
    • 内存的回收策略
    • 超大数据的处理
    • 数据库的底层实现(B+树)
  • 第二轮
    • 两个算法题(链表,树)
    • 数据库索引
    • 前后端传输加密手段
  • 第三轮
    • Node Event Loop
    • 死锁(避免方案、解决方案、悲观锁和乐观锁)
    • 数据库索引为什么快(排序二叉树)
    • 如何在 Node 里实现装饰器
    • 单例模式
    • 多线程通信
    • 叙述几种排序的实现(快排,堆排,排序二叉树,冒泡)

这里还只是不完整回忆,一上来聊操作系统就聊的不太顺畅,对于 http pipeline 也是一知半解。所以第一轮其实聊得就挺噶的,不过还好后面转到了自己比较熟悉的部分。第二轮要稍微好一点,数据库索引部分因为知道原理用的比较少一点,所以聊得不太好。算法题还是比较得心应手,挺快就给出了解。到第三轮,死锁的例子回忆了半天,就感觉压力贼大,后来又被问到了知识盲点的 乐观锁和悲观锁 ,心态就有点崩了。最后记忆就混乱了,单例模式也给写错了。又因为平时用 Node 单线程的缘故,对多线程了解的要少一点,所以多线程共享内存部分也聊的很一般。总之在这三轮的狂轰乱炸下,答到后面感觉自己基础不太牢、心态不太好,有失水准了。不过很幸运,今天也接到了通过电话,自己感觉挺侥幸的,不是那种稳稳拿住的感觉,所以对自己还是有点不满意。

未来

整个春招走完算是知道了自己几斤几两,很多知识还要补,还要巩固。后面的微软面试应该还是会参加,不过暂时不考虑去实习了。校招的时候不管怎么样还是会去参加一些大厂的考试,来检测一下自己在接下来几个月的成长吧。所以文字很干,但还是希望对你有用吧。

最后共勉。

你可能感兴趣的:(我来说说这次春招)