搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 王道在线 > 大三跨专业的道友如何拿到腾讯云/网易/头条等多个优质offer

大三跨专业的道友如何拿到腾讯云/网易/头条等多个优质offer

王道在线 2018-06-29

先赞一下热心的学姐张MM,17期C学员,当时郑大生物信息大三,通过努力拿到了腾讯音乐的实习offer,大四时顺利拿到正式offer。后面也多次回王道分享自己的学习和面试的经验,让同学们受益匪浅。

去年,安(hu)利(you)本系两个踏实学弟继续来王道参加了21期C,可惜被学院发现后强制返校,有些遗憾,但也没有办法。王道给他们提供了后续的课程视频及全部资料,利用这些视频他们完成了王道的所有课程内容,再加上精心的针对性准备,最后也是收获了各种满意的offer,值得借鉴!


附张MM的聊天记录:



姜同学的经验帖(大二大三的同学可以参考):




————华丽的分割线————


姜同学的阿里、腾讯、网易、头条、微策略、CVTE、百词斩面试经验总结

网址链接在上面的经验帖里面有的。

阿里

对方的第一个问题是:我看你简历上写的都是C++的项目啊,JAVA你会吗?

我:不会。

我:不行,其实你可以问我C++和Linux的一些东西啊,这些东西我还是比较熟悉的。(其实我的内心独白是:这是什么操作,一晚上学JAVA,怎么可能嘛,再说我现在还在外面,周围连台电脑都没有,三清山上也没有网吧啊,怎么学,当时只想把话题绕开)

面试官:但是我们公司目前招的是JAVA的啊,嗯,C++,让我想想啊。。。

(面试官开始陷入沉思,我感觉一面还没开始就要挂了orz,都是当时投简历的时候脑子进的水)

面试官:堆排序你了解吗,说说堆排序的过程吧。

我:balabala。。。

面试官:B树和B+树了解吗?

我:balabala。。。

面试官:现在假设有很多的数据,怎样用B树或B+树来提高查询的效率?

(其实一开始听到这个题目我是很懵逼的,这是个什么题,条件这么模糊,自己平常琢磨出来的题吗,喵喵喵。但是没办法,只能硬答了)

我:用B+树建索引,balabala。。。有的没的说了一大堆。

面试官:假设现在内存太小,但是数据量太大,内存装不下索引怎么办?

(我现在更懵逼了,完全不知道该怎么办,但还是硬着头皮答了)

然后我们就内存装不下索引这个问题深入地探讨了20多分钟,好吧其实全程感觉我都在说一些有的没的,也不知道答没答到点子上,我后来才知道这一类海量数据的问题其实都有一类通用的解法:https://github.com/linw7/Skill-Tree。然而我当时并不知道,然后面试官看我可能实在也答不出来什么了,这个问题就先放过我了。

面试官:我看你项目上有用TF-IDF算法,这个算法解释一下?

我:balabala。。。(我对我用到的算法还是很了解的)

面试官:你还用到了simhash算法,解释一下?

我:balabala。。。(项目中的算法问题从来不怵)

面试官:Linux中都有哪些锁,你举例说一下?

我:balabala。。。(Linux系统编程还是不虚的)

当时还问了一些别的记不太清了,比如问了一些当时为什么做这个项目,项目中遇到的问题是怎么解决的,还问了多线程并发编程注意事项等等。

面试官:好了,今天的面试就到这里了,你还有什么想问我的吗?

我:请问您平常做的工作是什么呢?

面试官:我主要是负责蚂蚁金服金融业务这一块,balabala。。。

(好吧,我现在才知道自己面的是阿里的蚂蚁金服,因为官网上完全看不出来自己的简历被推给哪个部门了)

一面就这样结束了,大概40分钟,面试官让我之后多学学JAVA,说后面可能会有人面你JAVA。(我:喵喵喵,还有下一面?)。之后的几天我就一直在看JAVA,好歹是把语法掌握了。

二面面试官第一个问题:我看一面面试官给你评价有不会JAVA,自己有没有下去学?

面试官:好,那我就不问你JAVA了。(我:喵喵喵,不问了,刚学完语法现在又不问了?)。

之后问了一些计算机网络方面的,比如TCP三次握手四次挥手,TIMEWAIT状态,什么是子网掩码等。问了一些操作系统方面的比如你对操作系统的理解,库函数和系统调用的区别等。问了一下大学ACM经历(因为我简历上有写),问了一下自学计算机的历程,问了一下项目中的TF-IDF算法。最后是共享屏幕,远程编程,他让我下载一个钉钉,然后通过钉钉把题发给我,共享我的屏幕。这道编程题我写了快50分钟,(后来想想其实题目不难,主要是当时太紧张,之前也没有共享屏幕编程的经历,拿到题目的时候就很方,后来想想题是真的不难)写完后用他发来的数据测试了一下,测试用例都过了,然后把代码发给他,结束了二面。二面问问题的时间再加上敲代码的时间大概有一个半小时。二面结束的那天晚上,我躺在床上的时候忽然想到了那个题目的最优解,然而又有什么用呢当时没想出来orz,但是那会儿我并没有想过20几天之后头条一面我会再度遇到这个题目,并靠这个最优解顺利通过了一面哈哈哈哈哈(可见总结每一个面试题并将它解决掉对后面的面试有多么重要,因为你永远也不会知道下一次面试官会不会再次问到同一个问题,所以碰到问题当时不会不要紧,下去之后立马解决,就算以后不会遇到,权当拓展知识面)

二面过后10天,我得知自己挂了,自己也有反思,其实二面的时候基础知识和项目经验这一块我觉得答得都还可以,就是那道编程题50分钟才写出来真的是太伤了,阿里二面挂了之后我开始在准备面试之余去网上刷题,只是希望以后碰到这种题目脑子转得快一点。

网易

笔试(3月18日):嗯,没错,之前就听说过网易笔试很难,而且网易比较看重学校,像我这种辣鸡211网易爸爸基本上是不考虑的。然而头铁的我还是去参加了网易的笔试。三道编程题,当时只AC了两道,最后一道直接放弃,因为我知道自己写不出来,也知道可能没几个人能写出来,因为真的是很难,有兴趣的可以去牛客网上看看今年春招网易游戏第一批笔试的最后一题,当时看到这道题,初步思路是BFS,但是知道自己写不出来,于是直接放弃。

一面(3月27日):得知自己笔试过了,27号被安排了面试,当时我的反应是:三道题AC两道竟然就过了,果然是最后一道比较难,没几个人能做出来,这样的题反而没有什么区分度。一面问得很杂,C++,项目,操作系统都有涉及,还记得几个问题,比如C++的多态实现机制,内存对齐,const关键字用法,C++中的new和C中的malloc有什么区别,进程和线程的区别,怎样避免死锁的发生,也聊了聊项目,然后抛出一个经典编程题:一个数组,其中只有一个数字出现一次,其他数字出现两次,问如何用最快的方法找到只出现一次的那个数字。答曰:异或。他看我一下就答出来了,肯定是之前看过,又换了一个题:一个数组,其中只有一个数组出现一次,其他数字出现3次,问如何用最快的方法找到只出现一次的那个数字。(我:喵喵喵,之前看过,但是忘了)。然后墨迹了半天,最后在他的提示下给出解法,结束了一面。他说HR会在一周之内通知我面试结果,然而现在都4月9号了还没消息,网易怕是挂了,其实本来对网易也没抱太大希望,只是攒波面试经验而已,通过听网易面试的录音,我发现自己在表达上面还是有些欠缺,回答一些问题的时候结结巴巴,底气不足,即使是回答自己知道的问题也显得没有自信,很容易给人一种技术不行的感觉,现在想来这也许就是网易一面挂了的原因。

------------华丽的分割线,4月12日更------------

原来网易并没有挂掉,今天中午收到了offer,而且一面就发offer了,算是比较开心了。

CVTE

微策略

一面(3月26日) :微策略也是参加过笔试然后得到面试机会,笔试难度和CVTE差不多,编程题是全英文的但是不难,除了编程题还有英文阅读题,做英文阅读的时候感觉好像回到了高中时代,就是给一段英文文章,问你下面哪个描述是正确的这种。记得这家公司好像是外企,所以对英文要求比较高,当时投简历的时候还要求有英文简历(为此我还花了一点时间将中文简历直接复制粘贴到有道翻译上,再将翻译好的句子直接拼成一份英文简历,什么,你问我有语法错误怎么办,不管,就是这么简单粗暴)。一面面试官上来用英文说让我自我介绍一下顺便再介绍一下自己做过的项目,我以我六级飘过的英语水平开始做自我介绍,介绍项目的时候就完全是在照着英文简历念了,然后他用英文针对我的项目提了几个问题,我当时也没太听明白他问的到底是什么,其实感觉对方的英文也不怎么样(哈哈哈,毕竟还是中国的程序员),当时只能硬着头皮答了一些有的没的,感觉他也没怎么听明白我说的英文(哈哈哈,中国式英文口音太重)。就在面试即将陷入双方都听不懂对方英文的尴尬情形下的时候,这个时候他说:好了,接下来我们用中文沟通。(我舒了一口气)。后面问的问题就很常见了,C++的多态实现机制(我发现这个每面必问),gdb调试程序的方法,还有一个算法题,多路归并的时间复杂度分析,这个时间复杂度我一开始没答上来,后来在他的引导下答出来了,感觉这个面试官人还是比较好,会在面试的过程中引导你去解决问题。当然中间还问了一些问题现在忘记了,一面面了25分钟结束了,他告诉我后面应该会有HR再联系我,我基本上知道自己一面过了。

头条

笔试(3月24日):头条笔试五道编程题,只AC了一道,其他几道都是通过部分测试用例,最后一道直接放弃因为当时没时间了。没想到这都过了笔试。收到面试通知的时候真的可以说是很惊讶了。

头条的面试效率应该是我面过的所有公司中最高的了,头条是视频面试,我是3月31日下午3:00开始面,到下午6:00的时候三面全部面完,中间基本上只有上厕所的时间,当场面完当场告诉你结果。感觉头条对算法的要求还是比较高的,三场面试基本上大部分时间都是在做算法题。当然项目和基础知识也有涉及。

二面(3月31日):一面结束很快就开始二面了,二面视频背景应该是在公司,办公环境还比较不错。二面面试官先让我做一个自我介绍,然后说:我看一面面试官对你评价很高啊。我:哈哈哈 是吗。(心想很可能就是一面那道题我给出了一个最优解,有点出乎一面面试官的意料,可能他当时并不知道有这样的解法,感谢阿里二面,感谢《剑指offer》)。然后二面面试官上来又是一道编程题:删除二叉搜索树中特定的节点。我当时拿到这个题的时候一脸懵逼(后来知道是LeetCode原题,只是自己没有刷到orz)。后来在二面面试官的提示下找到了删除节点的方法,勉强写了出来。然后还问了一个比较有意思的题,给一个单链表,怎样随机返回其中的某一个节点?我给出的解法是先按链表长度随机生成一个随机数,再去链表中走相应的步数,返回那个节点。又问我如果链表很长怎么办?我:有多长? 他:无限长。(我:喵喵喵)。最后我给出的解法就是将无限变为有限,把链表分割成有限长度的小链表,再去随机取小链表中的节点。然后他好像勉强接受了这个解法,然后问了一些项目方面的问题,最后说让我在线上等一会儿,应该会有后续的面试。

头条面完之后我开始总结,其实面试过程中问到的一些算法之前都没有了解,像那个洗牌算法和删除二叉搜索树中节点的算法,在之前没有接触过这类的题的时候,想要通过面试,那就只有在面试的过程中不断思考解决方法,如果能在面试官的提示中找到解法,并展示出自己的coding能力,还是很有可能通过面试的。所以面试过程遇到不熟悉的问题不能方,一定要不断尝试去解决,在解决问题的过程中展示出来的能力往往是面试官看中的。

------------华丽的分割线,4月17日更------------

腾讯

腾讯的面试过程真的可以说是紧张而又刺激了。腾讯是找学姐内推的,所以没有参加笔试就得到了面试机会,可以说是非常幸运了。

QQ音乐二面(3月28日):20多天后等来QQ音乐二面,中间一度以为他们leader把我这个渣渣本科生忘记了(然而事实证明他们leader确实把我忘了,还好有学姐时不时提醒leader说还有一个人没面,在这里要特别感激学姐)。QQ音乐把我忘记的这20多天里,我又在腾讯的官网上投了简历,不巧的是27号发现腾讯云把我的简历锁定了,这直接导致我后来又面了腾讯云,然后拿了腾讯云的offer而不是QQ音乐,这波操作真的可以说是紧张而又刺激了。不说了扯远了,说回QQ音乐二面,二面问得东西也比较多,C++多态实现机制(发现这个真的是必问项),++i和i++的汇编层实现原理,static的应用场景,TCP的滑动窗口和慢启动,TCP的TIME_WAIT状态,TCP三次握手交换了哪些数据。开放性问题有,假设有两个人A和B,A要给B转账,如何保证这个过程的安全性和可靠性。就是说A向B转账的时候,如何保证A的钱减少了而B的钱相应地增加了。感觉有点像数据库里面的事务的原子性,如果执行一个事务失败了就回滚为原来的状态。当时这个问题大概讨论了十几分钟,最后还算是给出了一个比较让他满意的答案。然后开始问我对未来的规划,怎么证明自己有很强的学习能力,问我有什么问题问他等等。总体来说感觉二面面试官还是很不错的,也比较愉快地结束了二面。

腾讯云一面(3月29日):一面约了下午1点,感觉可能是内推快截止了,腾讯的面试官都在push进度,下午1点还来面试,真的可以说是比较敬业了。一面的面试官好像知道我面过QQ音乐,他说接下来这些问题可能QQ音乐都问过,所以你答到点子上就行了,这样也不会太浪费时间。我说好。所以他问问题的节奏比较快,我答得也比较快,有些问题我答到点子上,他也默认我会没往下深究。一面面了大概40分钟,确实大部分问题都是QQ音乐问过的,当然也有一些没问过,比如问我KMP算法原理,问我https的握手过程,问我项目中有没有考虑过使用无锁队列实现多线程间安全地访问一个队列(我当时是用互斥锁和条件变量实现的,所以有此一问)。问我有没有实现一个异步的场景应用到项目中,当时答曰没有。一面很快就结束了,当时他说应该会有后续面试官联系我。

百词斩

笔试(3月24日):百词斩的笔试相对来说就比较简单了,三道编程题,基本都是《剑指offer》原题,这个就不多说了。

一面(3月28日):一面问得问题都很基础,TCP三次握手四次挥手,TIME_WAIT状态,Linux下常用命令,gdb调试方法,怎样避免内存泄露,Linux下的sed和awk命令用过没有等等,简单地问了一下项目,一面大概30分钟就结束了。

二面(3月29日):由于当时突然接到班长通知说要开班会,二面给推了。(没想到后来直接三面,哈哈哈哈)

三面(4月2日): 三面是CTO面(哈哈哈,非常荣幸),三面问得东西就比较细了,特别是问项目的时候,记得有一个点上我们还在讨论是用set实现比较好还是用vector实现比较好,还分析了一下两种实现的时间复杂度。sizeof求一个类型的大小的时候是编译时确定还是运行时确定的,SYN泛洪攻击知道吗,怎么避免。还有一道编程题,就是找到一个排序数组中的特定数字的下标,如果这个数字有重复,就返回最后一个的下标,其实就是《剑指offer》原题,改进一下二分查找就好了,再次感谢《剑指offer》。三面很快结束。后面拿了百词斩sp offer,哈哈哈非常荣幸。

总的来说吧,面了这么多家公司,感觉在每场面试之后不断总结,不断改进,不断反思是最重要的。程序员这条道并不容易,尤其是对一个生物狗来说(哈哈哈),感谢在这条路上遇到的每一个人,感谢学姐的帮助和鼓励,感谢阿里大神孔哥在我阿里二面挂掉之后还不断帮我内推给我找机会,感谢阿里云内推群让我认识了很多大佬,说不定秋招还要靠大佬们内推呢哈哈哈哈。

 

—END—






版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《大三跨专业的道友如何拿到腾讯云/网易/头条等多个优质offer》的版权归原作者「王道在线」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注王道在线微信公众号

王道在线微信公众号:wangdaoluntan

王道在线

手机扫描上方二维码即可关注王道在线微信公众号

王道在线最新文章

精品公众号随机推荐