实录2次投简腾讯6面后台开发终收offer,面试学习经验分享给大家

前言

这篇博客记录第二次腾讯后台开发社招面试流程,虽然面试流程因人而异,但就我个人感受而言,腾讯的面试从考察内容方面来讲,还是有一定的共通性,这一点,可以从网上众多的面经可以看出,因此,就有了本篇博客,感兴趣的同学可以参考下,文章比较长,请耐心阅读。

五月上旬从前公司离职,即所谓的裸辞,离职后没有立即找工作。花了20天时间对过往两年的工作进行一番总结和梳理,期间主要分析了Linux内核网络源码。时间到了七月中旬也没有开始找工作。因为期望去一家大公司,但是自身实力还不允许。网上看了众多面经,以及复习我之前收集的面试题,大厂对算法与数据结构要求比较高。因此,先从算法与数据结构开始复习,大学的时候学习过这两门课,复习的时候重新将大学课本拿过来学习,《数据结构(C语言版) 严蔚敏》和《算法设计与分析使用教程》。

大概花了1.5月,数据结构从基本的数据结构复习,包括线性表、栈和队列、串、数组、树和二叉树、图和排序算法。除了书本的理论复习,还借助leetcode网站进行刷题练习。leetcode我刷了大概100多道题,目前总共有1000多道,刷题无需追求数量,更重要的是能够理解解题思想。这里推荐下力扣的专项练习栏目,我基本上把专项练习全做了,对数据结构的理解帮助真的非常大。除了leetcode,另一项练习就是《剑指offer》,这里也要推荐下,面试的手写算法考察大概有50%的题型出自本书。在我自己实际的面试过程中,考察的手写算法题基本上来自 leetcode(简单和中等题型) 和《剑指offer》。

刷题贵在精不在多,个人感觉,普通算法题基本上是套路题,只要掌握基本数据结构和基本算法,足以应付绝大部分考察。后期我基本上不刷题了,偶尔挑一道简单题保持手感。这里要额外说一下,基本的排序算法一定要掌握,比如冒泡、选择、插入、快排、归并、堆排、桶排序、基数排序。这些排序的时间复杂度和空间复杂度以及区别、使用场景一定要了然于胸,快排、归并、堆排要能够迅速手写出来,到了复习后期,我每天都会练习手写这三个排序,现在基本上保证这三个排序算法每个用时在165秒内写出。排序之所以重要,是因为很多题目都会用到排序,比如海量数据,数据预处理等,不同场景用到的排序也不相同。

算法方面,递归和递推用的也比较多,这里需要注意递归有可能存在重复计算问题,此外,dp问题也可以练习下。算法方面还可以参考左神的《直通BAT算法精讲》系列视频。除了基本的数据结构之外,红黑树,平衡树考察的也比较多,这里也要重点关注下。数据结构和算法复习时间1.5月,相当于其它知识所需时间的总和。掌握好数据结构和算法对操作系统、编程语言、计算机网络等也有相当大的帮助。比如,c++ map和set的底层实现基于红黑树,deque的双端队列,list的双向链表。hashmap和hashset的哈希。操作系统里面进程调度算法用到红黑树等。

算法和数据结构复习期间,去腾讯面试了一次。面经参考之前的博客。从结果来看,真是惨不忍睹。算法和数据结构这一块还好,因为有很好复习缘故,问题都能够回答。但是在操作系统、计算机网络、编程语言等角度来看是不及格的水平。腾讯面试考察对软件工程真的是很全面,这一点,在招聘说明里面有详细提到:

具备全面的软件知识结构认知(操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全);

此次面试之后,又陆陆续续参加了其它几个面试,包括江行智能、海康威视。基本上都因为操作系统、计算机网络、编程语言的问题,没有拿到offer。有些公司的技术栈是c++,我只是在大学的时候用过c++,毕业三年一直从事嵌入式c语言的开发,因此,对于c++的问题,无论简单还是困难,都回答不上来,这大概是所有面试失败的共同原因之一。此外,计算机网络是真的没有复习过,没有任何准备,如此,失败也是必然。至于操作系统,很多内容都是知其然不知其所以然,比如进程管理、调度,内存分配等等。通过总结面试失败的原因,以及参考了网上数量众多的面经,归纳了自己需要补足的地方:c++,操作系统,计算机网络以及额外的扩展知识.

c++的复习用了四周,将800多页的《Primer c++》看了三遍,《STL源码剖析》看了大概三遍有余。第一遍看的时候,仅是大概浏览一下全书内容,第二遍是细致的阅读各个章节的内容。第三遍则是依据网上的面经,试题,主要阅读重点章节。在之后的面试过程中,基本上没有被c++的问题难倒过。文后给出我汇总的c++考点。《Primer c++》全书800多页,看了三遍,用了三周左右,这还是以前学习过的,如果要是没学过,不知道需要多久。

操作系统这一块,重点关注进程管理、调度、进程间通信、线程同步、内存管理、虚拟内存等等。复习的方法是先总结网上面经提到的考点,然后结合书本分析。这一块我主要看了《深入理解Linux内核》,《Linux环境编程:从应用到内核》两

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值