首页 > 笔经面经 > 有幸被菜鸟开奖,结束秋招,回馈牛油

有幸被菜鸟开奖,结束秋招,回馈牛油

头像
arking
发布于 2018-09-15 21:25:04 app内打开
赞 51 | 收藏 503 | 回复58 | 浏览21514

从去年11月份开始准备找工作,今天有幸拿到菜鸟的意向书,终于可以划上一个句号了。目前的offer情况是:菜鸟(意向书)、腾讯(意向书)、百度(意向)、拼多多(意向书)、oppo、多益网络。期间还面过华为、cvte、多益网络等公司,其它还有一些公司的面试已经拒掉了

这里回馈一波,希望大家都能拿到满足的offer。书单见下图

  1. C/C++:《C程序设计语言》、《C++ Primer》、《STL源码剖析》、《深度探索C++对象模型》、《Effective C++》
  2. 操作系统:《操作系统——精髓与设计原理》(本科教材)、《UNIX环境高级编程》(部分)
  3. 计算机网络:《计算机网络——自顶向下方法》(本科教材)、《UNIX网络编程》(部分)
  4. 数据结构与算法:《数据结构与算法分析C++版》(本科教材)、《剑指offer》、牛客网剑指offer原题、leetcode高频题100多道
  5. 综合:《王道程序员求职宝典》(这个只看了部分,感觉这本书对笔试还是很有帮助)

其实看的不多,都是一些基础知识的书籍。最开始看的是《C程序设计语言》和《C++ Primer》,然后过年回去把《剑指offer》刷了一遍。过年来之后在牛客上把剑指的原题刷了一遍,然后就是计网和操作系统的2本理论书。实习之前的知识储备大概就是这样,当时战战兢兢的也没敢海投,但是想着准备了一段时间了好歹检验一下,所以投了腾讯,最终有幸拿到了实习offer。之后的日子就是刷C++剩余的几本书加上UNIX编程的2本神书。每天就是刷几十页的书,然后在leetcode上刷几个小时的算法题。因为我刷书的时候会用markdown把一些个人认为比较重要的地方记下来,之后方便复习,所以刷书刷的并不快,数据库就来不及看了。所有刷书过程中的笔记都在github上了,戳这--> github.com/arkingc/note

关于找工作的一点个人看法:总的来说还是“实力+运气”。有了一定准备之后offer肯定会有的,只是早一点和晚一点的区别。当然准备的越多,拿到好的offer的概率就越大。不用纠结实习经历和比赛,如果有的话更好,没有的话那就踏踏实实准备基础知识吧,因为我就是没有比赛,也没有实习。所以没有办法,只能在基础上面多花点功夫准备一下啦。准备基础知识的时候多总结,比如操作系统,面试问的最多的无非就是进程线程、内存管理、同步互斥这些;计网主要是应用层(主要是HTTP),然后传输层(主要是TCP、然后拥塞控制、三次握手四次挥手这些)、网络层。数据结构的话如果是C++我感觉把STL容器都理解到位就好,然后就是多刷算法题,算法题的总结也很重要,比如数组所有元素的排列组合,然后包含相同元素时怎么做不包含相同元素时怎么做,对这些题做一个整理会方便记忆,就例子中排列组合的题来说对dfs的使用也会更加熟练。再比如链表排序,逆序对考察归并排序的理解和使用。。。总之花了时间准备和没有准备过的区别肯定是显而易见的。面经的话可以把别人的面经做个分类,根据每一类的每个问题去做整理和延伸。这样基本上能应付大多数常规问题,当然要应付更深的问题,肯定还得多花时间。我的github上也做了一些整理:

我每次面试之前就是把这些内容过一遍,只要不是问的太偏应该能覆盖到相当一部分问题

最后再附上一起找工作的小伙伴们前前后后的一些面经:点这里

小伙伴去实习之后就没继续总结了,我再补充一点我自己的(很多已经忘了,所以只包含部分问题)

阿里二面(菜鸟)

  1. 三次握手和四次挥手
  2. 怎么解决IPv4地址的不足(说了NAT)
  3. 虚拟内存的理解
  4. ...
  5. 算法
    • 一个字符串的题,先不起来了。。
    • 二叉树每个节点有一个权重,找出树中权值最大的路径(leetcode上有原题)
    • (手撕)实现auto_ptr

阿里三面(菜鸟)

  1. 给定2个字符串str1和str2,从str1中删除所有str2中的字符
  2. 实现一个html解析器,根据标签构造一颗树(好像考察重点是状态机)
  3. 项目
  4. 根据项目内容问的一些问题
    • 自旋锁和互斥锁的区别、使用场景,还有几个延伸问题记不清了
    • 除了打开锁,还有什么方法优化性能(说了类似map-reduce的思想,开多个线程每个线程处理一部分数据,最后归并)

百度一面(智能云)

我投的是C++,但是面试的是一个java小姐姐,小姐姐不知道问什么,就问了4个算法题

  1. 求树的深度
  2. 找出字符串中第一个只出现一次的字符(O(1)空间)
  3. 这个题忘了。。
  4. 给出一个数组,找出第一个缺失的正数(leetcode原题)

百度二面(智能云)

  1. 聊项目
  2. 说说你对文件系统的理解(我的项目是文件系统相关的)
  3. 说说内存管理(题目比较开放,应该是考察对内存管理的理解)
  4. 一些基础问题,记不清了。。
  5. LRU cache(leetcode原题。补充:添加时间淘汰机制)
  6. 实现一个大小写不敏感的类(包括构造函数、==运算符、get函数等。比如使用“BAIDU”和“baidu”构造的2个对象,调用==时应该返回true)

百度三面(智能云)

  1. 求二叉树2个节点的最近公共祖先(剑指offer最后一题。手撕,我实现的是有指针指向父节点的情况,后面问了没有指针指向父节点时怎么做)
  2. 经理面(问了项目,然后聊人生,最后问了top K问题,问了如何最快找到,答的是开多个线程,分别找出局部top K,然后找出全局top K。然后问了开多少个线程呢)

拼多多一面

  1. 网络协议模型(我说的是五层模型)
  2. TCP的TIME_WAIT状态
  3. 怎么解决死锁(从理论上答了死锁预防、避免避免、死锁检测的一些方法)
  4. 。。。
  5. 手写代码:有序链表合并

拼多多二面

  1. B树和B+树
  2. 。。。
  3. 手写代码:LRU cache(leetcode原题。补充:线程安全,因为我的项目是跟锁有关的)
  4. 手写代码:洗牌算法

大概就是这些。。很多因为时间关系已经记不清了,大部分问题都是笔记中总结有的问题。最后再次祝大家都能找到满意的工作!(双手合十)

最后最后再求个offer比较:腾讯云的后台开发和菜鸟的ET物流实验室(主要业务是基于物流场景的无人车)的C++研发怎么选?主要从发展和加班等角度,地点都能接受

58条回帖

回帖
加载中...

本文相关内容

近期热帖

热门推荐