面试-2021微信暑期实习

面试-2021微信暑期实习


Abstract: 记人生第一次实习面试的心理历程。。。

Quick Link:

  1. 面试-C++
  2. 面试-计算机网络与网络编程
  3. 面试-数据库系统

1. Background

2021年2月份,呕心沥血地练习了1个月的托福,成功地考出了与第一次裸考一样的分数,瞬间心灰意冷。大三下学期开学初,没啥动力继续学托福和GRE,而且上半学期没啥课,百无聊赖之际就买了本《深入理解Linux内核》一书随便翻翻。

谁知此书竟有无比玄妙之处,把我之前零零散散自学的几门课的知识连成了线,好多以前懵懵懂懂的东西现在一下子清晰起来。看完后,不禁虎躯一震,自信心爆棚,心想:留学申请要刷软背景,而且身边有大佬大二下学期就去字节实习了,我暑假也可以找个实习啊!虽然但是,贪玩的我还是去参加了4月10日的华山挑战赛😅

累死累活地爬完山回来,打开电脑准备投递实习。选哪个公司呢?目标高点,直接BAT里面选吧。字节?不喜欢玩抖音🙃 阿里?最近风评好像很差🙃 那就腾讯吧,反正QQ、微信一直都在用。

打开腾讯实习招聘,选择后台开发岗位后还要选部门。一眼望去,基本都不认识,除了WXG。WX=>Wei Xin,那就这个吧🤣 谁又会知道最后竟然选择了个hard难度的???

2. Preparation

到腾讯校招的网站上看了下岗位要求,计划就按这个准备:

必须具备的:

扎实的编程能力;
C/C++/Java开发语言;
TCP/UDP网络协议及相关编程、进程间通讯编程;
专业软件知识,包括算法、操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全等。

有一定了解的:

Python、Shell、Perl等脚本语言;
MySQL及SQL语言、编程;
NoSQL, Key-value存储原理。

可以加分的:

分布式系统设计与开发、负载均衡技术,系统容灾设计,高可用系统等知识。

2.1 算法

具有非常薄弱的算法功底,连专门的算法课都没上过。

干脆直接上网买了算法刷题书:《labuladong的算法小抄》、《剑指offer》。我主要看的是第一本,确实很适合准备面试。乖乖地按照书上总结的题型和模板,把书上讲到的leetcode题目在网站上自己亲自敲一遍,大概100题,足够应付实习的面试了。第二本看了一点点,感觉难度要高一些。

2.2 C++

先复习一下大一学的《C++ Primer Plus》,回炉重造一下。

然后看了《深度探索C++对象模型》,对面向对象理解能深一点。

接着看了一直想看却一直拖着没看的《STL源码解析》,确实受益匪浅,非常值得!

最后结合Leetcode上官方出的C++面经,自己总结了一下:面试-C++,但是时间紧迫,没全部写完。

2.3 计算机网络

之前零碎自学过UCB-CS168,现在把课件、作业都复习一下。

然后看了《TCP/IP详解:协议》,太多了,基本就是挑着看。

接着看了《UNIX网络编程:套接字》和《UNIX网络编程:进程间通信》,没时间敲代码,就看了原理。

最后结合Leetcode上官方出的计网面经,自己总结了一下:面试-计算机网络与网络编程,也没总结完。

2.4 数据库

数据库就是在UCB交换时学的,印象比较深,快速过了一遍课件。简历上写了数据库的课程项目,不得不痛苦地重新梳理一下那一大堆代码。

看了《MySQL技术内幕:InnoDB存储引擎》,加深一下理解,和国外课上讲的内容差不多。

再次结合了Leetcode上官方出的数据库面经,自己总结了一下:面试-数据库系统,依旧没总结完。🥺

2.5 操作系统

除了《深入理解Linux内核》,就看了《UNIX环境高级编程》,复习一下各种系统调用。

感觉各其他学科都涉及操作系统,用的比较多,所以就没总结(完全没时间了😵)

2.6 设计模式

就看了几个就看不下去了,非常枯燥。感觉还是得在实际中使用,不然记不住😢

2.7 其他

脚本语言:Python,Shell问题都不太大

可以加分的知识:基本都不会,也没时间学了,不如边工作边学吧🙃

3 Interview

腾讯HR的效率好高,简历刚投三天,面试官的电话就到了,约在4月20日晚上。内心非常的慌,因为好多东西都没准备完。索性直接翘掉了所有课,作业全都抄,疯狂准备面试…

3.1 一面(电话)

感觉一面绝对是所有轮面试里最难的,且是最重要的。后来才听说,一面的面试官是要考证上岗的,所以真的非常专业。一面表现好,后面基本就稳了!

面试官会先打电话给你,发给你个链接去做4-5道算法题,做完后直接call面试官。做题的网站是和面试官的屏幕同步的,但是没有像牛客网那样的在线评测,也就是说没法调试。

大概做一个小时,call面试官。接下来面试官就会让你跟他讲每一题的思路,以及问你有没有更好的方法等等。算法part到这里结束。

之后,他就对着你的简历聊项目,一边聊,一边问项目涉及到的基础知识。问的超级细,细到想扣脚趾!基础知识也都挖的挺深,但绝对不会比课堂上讲的难。当时数据库还没复习完,他就一直盯着我的数据库项目问,直接当场去世🥵

最大的教训:简历上的内容一定要滚瓜烂熟,自己不太了解的千万不要写。

面试官最后会问:你还有什么想问我的?我就问了他们的主要业务是干啥的。

一面结束,面试官表示我基础还可以,回去继续等下一轮面试的通知就行。全程大约2h~2h30min左右,口干舌燥。🤒

3.2 二面(电话)+ 三面(视频)

下面两轮面试形式和一面基本一致,都是一小时算法+一小时基础知识。二三面的面试官应该都是组长、leader级别的,基础知识问的少,基本就在唠嗑项目。比如给你个情景,让你回答怎么设计这个后台之类的,难度总体比一面要低。

比较尴尬的是,三面的面试官似乎没听说过数据库里的Sort Merge Join、Grace Hash Join算法,我解释了半天,他最后还问我是在哪里学的😲

3.3 HR面

三轮技术面一个星期内就结束了,最后的HR面就是随便聊聊,问问你的意向之类的,基本不会挂人。offer call要等差不多2-3周才会收到。

3.4 总体感受

  1. 腾讯比较看重实习生对基础知识的掌握程度,算法题基本不会超过Leetcode的medium难度。
  2. 与面试过其他公司的同学交流后,体会到腾讯的面试流程与内容都是较为专业的,效率也很高。

4 Internship

时间:2021-07-06 ~ 2021-09-09

地点:深圳腾讯滨海大厦

部门:微信事业群(WXG) - 搜索应用部 - IT民工

工作内容:搬砖

体验良好,明年再来。