干货!普通人的秋招经验分享.
2019年11月, 把自己的三方协议寄了出去, 基本宣告秋招结束, 做个简单的总结
基本情况
本人是一个北京林业大学网络工程专业的一名大四学生, 在大一和大二暑假有俩段实习经历, 可以说拿了一副一般的牌, 在刚刚结束的秋招中, 收获了如下offer:
地点 | 公司 |
---|---|
北京 | 美团(广告后台), 京东(基础架构), 贝壳找房(基础架构),ihandy |
上海 | 小红书(基础架构) |
广州 | 虎牙直播(音视频传输), 网易游戏(平台研发) |
深圳 | 腾讯微信(后台开发) |
基本是各个公司相对核心的业务 , 其中大多为sp和ssp, 值得一提的是额外达成了9月面试全胜的成就, 于我而言, 基本算是超出了我的预期. 秋招过程中, 我走了很多弯路, 总结了一些经验, 在这里做个记录, 希望能帮到大家.
秋招的流程和薪资
基本上互联网公司这里7月份开始提前批, 8月份密集的投简历笔试, 9月份密集的面试, 10月分出正式的谈薪结果. 提前批往往可以省略笔试环节, 所以一定要提前准备抓住提前批的机会.
薪资方面各个厂的校招其实差不多, 可以分为三档:
- 白菜
- sp
- ssp
研究生和本科生在大厂几乎没差距 也就 1--3 w 的差距
简历
简历, 是招聘的核心, 简历的作用主要有俩点:
- 限制面试官的提问范围
- 展示你一些需要长期积累在面试中很难表现出的东西
这里附一下我的简历, 可以做个参考:
先说第一条, 很多人对简历有个误区, 就是 以为简历是用来尽可能展示自己的工具, 所以什么项目都往上写, 什么技术用过就敢往上写, 其实不对!!!!这里跟我念三遍, 然后牢牢记在心里: 简历是限制面试官的提问范围工具! 简历是限制面试官的提问范围工具! 简历是限制面试官的提问范围工具!
这个问题是在我秋招之前大二找实习的时候明白到的, 本人一直偏全栈一些,而且喜欢什么技术都搞搞, 当时的简历就想把自己用过的技术做过的所有项目都写上去, 导致的结果就是, 面试管发挥空间太大, 那么多东西, 大部分你只是用了你要用的东西, 很多深入的用法不了解很容易被问穿. 所以, 简历上但凡出现的技术, 项目, 一定要搞会.
第二条是我觉的当下的秋招, 简历越来越重要的原因, 总所周知, 面试题的题库是有限的, 伴随牛客之类的网站在学生群体越来越火, 考试性质的面试, 已经很难区分出背题怪和真正有实力的人了. 面试官也会发现这个问题, 这时候 简历上一些东西,就尤为重要. 对我来说, 我的github 大一就开始同步我的成果, 我的知乎专栏, 大二就开通了,
虽说内容质量可能比较一般, 有时候我会称呼我的git仓库是垃圾桶, 但是,至少这些东西不是突击几个月就可以得到的, 从这些东西, 也可以看出你每年在关注什么技术, 不会让人觉得你的能力是突击出来的.
简历上可以展示的内容, 还有:
- 学校,以及在校经历 包括成绩荣誉
- 竞赛
- 实习
- 项目
- 博客和github
针对不同的情况可以有不同的准备路线, 比如 学校在北上广深可以准备实习, 学校牛逼可以准备竞赛, 有大佬带可以准备项目...
还要注意 排版等问题, 争取限定到一页, 把精华留在上面, 让面试官一问就眼前一亮.
这里是我用的模板, 大家可以参考一下
我的简历其实就是对上述内容的一个展示:
-
经历部分, 我着重强调了 我的实习经历, 虽然没有大厂, 但是胜在开始的早并且能看出来成长性, 所以算是加分点, 放在了第一位. 其次是我的项目经验, 我的项目经验比较丰富, 分为个人的玩具 和 简单的商业项目, 个人的玩具主要是想展示我对技术的兴趣, 商业项目是想展示我的做事方式, 并且技术栈能和我个人技能部分一一对应. 剩下的就是我的知乎专栏, 虽然文章质量不一定多高, 但是开始的比较早, 所以算是加分项, 也放在了简历上.
-
而基础知识和亮点, 主要体现在我个人技能:
-
编程语言方面, 我强调了我很擅长Python这一有vm的语言和c++这一没vm的语言, 并且以我的项目经历作为作证, 把 C++/Python 混合开发 作为了我一个亮点
-
网络方面, 我强调了我对http TCP ssl协议 的理解, 和用网络库和web项目加以作证
-
操作系统, 主要是并发编程这里, 我把协程作为了一个亮点, 用在知乎的文章加以作证
-
数据库和缓存, 这里强调了我对redis源码的理解
-
面试
面试是一个套路性质工作, 好的面试状态, 应该是让你觉得 每次面试都在走一个固定的流程, 国内的技术面试一般三轮, 可以总结如下:
-
第一轮是基础常识面, 往往会让你写写题, 回答一些学校课本里比较重要的基础知识
-
第二轮面试, 会侧重考察你的项目, 和基础知识的深入, 需要一些套路来应对这个
-
第三轮面试, 往往是看你做事态度和认知水平. 会考你一些系统设计的场景.
关于面试能力, 我一般分为几个:
-
面感 面试的感觉, 包括流程, 话术, 状态
-
手撕算法 单独列出来是它比较重要
-
基础知识 主要是计算机科学的学生的核心竞争力(计算机网络, 操作系统, 数据库....)
-
项目经验 互联网技术栈的熟练情况, 业务工作流程的了解, git等团队写作的工作方法...
-
亮点!!!!
这里谈俩个东西, 面感和亮点, 别的内容受限篇幅, 会单独开文谈.
面感, 这个很玄学, 主要包括你的自我介绍, 你想让面试官问的东西, 怎, 获得方式只能靠多面. 这方面我算比较失败, 之前一直没面, 提前批投了波头条, 八月中旬投了波阿里, 面感很差, 直接送了波人头. 自闭得回家休养了俩周. 直到 8 月底面了一次贝壳找房, 一面面试官把我会的东西榨干了, 整个人醍醐灌顶, 我才发现我会的还挺多, 自信心一下就来了, 之后的面试就再也没挂过了. 所以 提前多面一些公司, 找到醍醐灌顶的感觉, 就稳了.
亮点也是面试的关键, 举个例子, 你可以深入研究一下无锁编程, 当面试官合你聊网络编程的时候, 你强调一下你会无锁编程, 当场写一个无锁队列, 并讨论优缺点, 十分加分哈哈~
这里可以给大家参考一下我准备的东西,
一个是我的自我介绍:
我叫xx, 就读于北京林业大学网络网络工程专业, 我有俩段实习, 一次是大一暑假在木瓜移动 做 后端开发, 负责广告审核平台的开发. 另一次是在大二暑假, 在知乎, 负责社区OPS平台的前后端开发. 我的技能树大约是这个情况, 首先我掌握整套Web 开发流程, 以Python, Vue ,Golang 为代表, 值得一说的是, 和我的竞争者相比, 我有一些Python C/C++混合开发的经验, 我的量化交易交易框架大量使用了这项技术. 其次我还懂一些协程, 有一些实践并在知乎上写过很多文章谈这个. 另一反面, 我比较擅长C++网络编程, 学校比较重视这个我也对这个感兴趣, 主要产出是实现了一个C++ 的Unix网络库.
自我介绍的目的, 主要是引导面试官看你的简历, 因为面试前一般面试官没看过你简历, 有的看的太草率就会跳出你简历的限制漫天发问, 那样基本就凉了. 所以 通过你的自我介绍, 要引导面试官关注你的重点, 对你提问.
另一个是亮点, 面试官的问题就那么多, 正确答案都知道, 怎么甩开***呢? 靠的就是亮点, 我准备的比较好使的俩个亮点:
-
https 的原理, 这个问题所有面试官基本都会问,但是答得好的并不多, 然而我们课设要求实现过,, 所以我谈 ssl 原理就可以讲的特别详细, 从 ssl 所在的协议层, 到各个加密方法的使用和原因, 再到防御什么攻击手段, 基本这套回答上来, 再加上我说我实现过, 大部分面试官都会比较满意.
-
协程的原理, 协程并发 Reactor 模式是后台开发的热门问题, 基本很容易把话题引到这个方面, 我简历中的网络库, 和知乎的文章很容易和这个话题对应上, 从协程解决了什么问题, 怎么和并发模型搭配 再到 常见语言库的协程实现方案, 一套回答下来, 基本 sp 预定了.
其实我的项目也准备了几个亮点, 所以到了后期, 我的面试基本就是自我介绍一做, 算法题一写, 基础知识一回答, 顺便在回答的过程中引导一下我的亮点, 再讲讲项目的亮点, 面试就结束了, offer 就有了 十分枯燥.
关于基础知识学习
基础知识的学习, 有个通用的思路, 就是 把书读薄, 做起来, 在读厚 , 很多人一上来就推荐经典大部头, 其实违反人性的. 就算知道这个东西很好, 在没有正反馈的前提下, 也是很难读下去. 所以 我个人建议的思路是, 先大致了解这个知识的内容, 然后开始做, 做的过程中, 有了思考, 再回头看经典大部头, 会有种恍然大悟的感觉, 带着开拓的思路连带着把其他内容看看, 慢慢的 大部头就没那么难啃了.
针对不同的基础知识, 有不同的学习方法, 这里举几个例子:
- 网络
网络这里核心要关注协议 和 流程, 协议部分就是 这个协议提供了什么功能, 比如http协议来说, http协议提供了什么功能, 传参数怎么传, 保存登陆状态怎么搞.... 流程就是一些常见的功能的实习, 比如 网页请求, 数据包路由等流程, 用到多个协议分层负责不同的步骤.
网络编程这里要注意套接字的参数, 和各种并发模型
这里给大家推荐的资料:
[1]: https://developer.mozilla.org/zh-CN/docs/Web/HTTP "http 的mdn文档"
[2]: https://www.bilibili.com/video/av34135819 "湖大教书匠的计算机网络课程"
[3]: https://item.jd.com/11163782.html "Linux多线程服务端编程 使用muduo C++网络库"
[4]: https://juejin.im/book/5c70dbbe51882562046911bc?referrer=5b2069896fb9a01e266b916d "掘金- 深入理解 TCP 协议:从原理到实战"
- 编程语言
这个要看个人的技术栈, 建议一个带虚拟机语言和一个不带虚拟机语言搭配, 侧重了解以下方面:
- 编程语言的语法
- 编程语言的机制, 比如虚拟机语言的虚拟机机制的实现(垃圾回收, 内存分配, 函数协程栈), 非虚拟机语言的(反射, 资源管理, 编译时运行时工作等)
- 编程语言理论* 如果让你实现一个 dsl 你会根据业务涉及哪些语法, 怎么理解用的编程语言的异常处理, 类型等机制
这里的参考资料:
[1]: https://www.liaoxuefeng.com/wiki/1016959663602400 "廖雪峰的 Python 教程"
[2]: https://zh.cppreference.com/w/cpp "Cpp renfence"
[3]: https://www.ituring.com.cn/book/1564 "流畅的 Python"
[4]: https://book.douban.com/subject/3117898 "Python 源码剖析"
-
操作系统
我学的不太好, 看课本就行, 理解一下
- 内存管理 注意分层的思想
- 进程调度 lru, lfu 等算法思想的实践 *cfs 是加分项
- 并发编程 理解资源的概念, 进程 线程 协程的资源和优缺点
- io操作 (中断, 各种套接字参数等)
- 进程间通信 (注意优缺点)
- 编译 链接 装载 (步骤, 调用约定等) 等内容就可以, 这里要注意的是和前面学的 含有虚拟机语言的设计的思想对应上
这里的参考资料:
[1]: https://book.douban.com/subject/1390650/ "现代操作系统"
[2]: https://book.douban.com/subject/3652388/ "程序员的自我修养"
- 数据库
mysql 主要理解 锁 , 索引, 日志, 缓存的机制的设计和使用
redis 看源码就行, 代码质量高可读性好, 理解常见数据结构和reactor 并发模型
参考资料:
[1]: https://book.douban.com/subject/24708143/ "MySQL技术内幕"
[2]: https://time.geekbang.org/column/intro/139 "极客时间 MySQL实战45讲" [3]: https://juejin.im/book/5afc2e5f6fb9a07a9b362527?referrer=5b2069896fb9a01e266b916d "掘金- Redis 深度历险:核心原理与应用实践"
[4]: https://juejin.im/book/5bffcbc9f265da614b11b731?referrer=5b2069896fb9a01e266b916d "掘金- MySQL 是怎样运行的:从根儿上理解 MySQL"
- web开发
学会一个web前端和web后端框架就行, 用于理解http协议的实践和使用
参考资料:
[1]: https://m.ituring.com.cn/book/2463 "Flask Web开发:基于Python的Web应用开发实战"
[2]: https://vuejs.org/ "vue官方文档"
[3]: https://juejin.im/book/5bc844166fb9a05cd676ebca "掘金-vue组件精讲"
关于刷题
我觉得大厂也不是多想考刷题, 主要这个手段比较成本低, 只要你简历亮点足够多, 刷题不会太为难你, 不过该准备还是要准备, 至少不能成短板. 这里建议 leetcode 刷100题, 剑指 offer 过一边, 知识点可以参考高中noip的考纲,
参考资料:
[1]: https://renrendoc.com/p-14880081.html "noip 复习资料 李思洋"
[2]: https://www.nowcoder.com/courses/cover/vod/1?coupon=ASjk9nA "牛客网 直通bat算法课 必看!!!!!!"
尾巴
秋招的过程, 可以十分难熬, 不停的要进行无反馈等待, 投完简历等笔试, 笔试完等面试, 面试完等下一面, 都面完了要排名, 排名完了等意向书, 等完意向书等正式 offer....基本过程中都没有反馈. 不过, 好事多磨, 秋招过程中, 收到了各个公司的认可, 结识了一堆优秀上进的热心群友, 这些正反馈, 让你看到了你光明的未来, 收获的***, 比什么都多.
#腾讯##美团##京东##小红书##校招##C++工程师##面经#