乐趣区

关于c++:2021年秋招-双非渣硕的我是如何拿到字节跳动研发岗SP

前言

最近应邀在牛客网写 C++ 求职专栏,又把以前的秋招总结补充了很多货色,当初想想还是收回来,心愿可能帮忙更多的老手小伙伴们。

集体状况简介

​ 楼主本硕均读于双非院校(一般二本学校)、本硕都是计算机相关业余,英语六级程度,本科期间辅修了一个水的不能再水的英语第二学位。

​ 本科期间学过很多语言:VB、C、C++、JavaC#都有所涉猎,研究生期间则主攻 PythonC++。研二上学期开始零碎学习 C++, 并且一直零碎看书和实际,两头解体过、迷茫过、放荡过,但从未放弃,始终置信本人,保持咬牙走上来。所幸天道酬勤,最终也是拿到了一些不错的offer

投递经验

​ 笔者从 2020.6.15 号正式开始投递简历,到 2020.8.23 号截止一共投递过 94 家公司,其中既有提前批(20206 月 -7月),也包含正式批(20207 月 -10月)。

小倡议:如果说求职者对本身实力不自信,能够多投投一些公司,选择面放宽一些,不要死盯着那几个大厂投。

​ 共计口试 59 场(最多一天做了 5 场口试,那天天差点逝世),54家公司给了面试机会,54家企业中有些企业是免口试的。

秋招后果 :最终胜利走到了6 家公司的 offer 环节:字节跳动研发岗 SP、华为通用软件开发、百度 C ++ 研发岗、B 站后端研发岗、深服气 C ++ 研发岗以及 农业银行研发岗,最初签了 字节跳动,也是本人心心念念的大厂之一,十分满意了~

​ 接下来从 6 个方面对秋招进行复盘和总结,心愿可能帮到大家鸭,特地是大三大四的小学弟们。

1、算法

​ 在秋招过程中,算法是 极其重要 的,再次重申一遍,真的很重要!口试就不提了,算法不过关,口试根本凉凉,面试根本都要手撕代码,很多面试过程中算法题具备一票否决权,如果你可能顺利解进去,面试也不肯定过。即便面试过了,手撕代码没撕进去,面评估计也是 一般般 了。然而如果算法题做不进去或者说 bug 太多调试不通的话,面试上基本上就 跪了(集体以及身边敌人经验,不肯定精确),在牛客网上也看到过很多根底很好的牛友就是因为面试过程中的算法题没解进去而间接饮恨的,心愿大家千万器重算法这一块,千万千万要器重算法。

​ 我大略在力扣上刷了 300+HOT100 都刷了,剑指 offer 刷了 3 遍,刷完这些根本够用了,本人也有留神总结题型,常见题型就是那些,所以算法题根本没怎么拉过我后腿。一般来说,次要考的就是动静布局、贪婪、二叉树、链表、数组、字符串之类的。

举荐材料:

力扣 1 -300 题(前 300 道题十分经典,倡议学有余力的同学都刷一刷

力扣 HOT100(跟下面有不少是反复的,刷的时候要留神总结

啊哈!算法、大话数据结构(这两本书都是面向老手的图书,图画很多

剑指 offer(这本书不须要多做介绍,校招必备

挑战程序设计比赛(这本书属于进阶一点的算法书籍了,作者是 ACM-ICPC 寰球总冠军,能够说是世界顶级程序设计高手的经验总结了,须要缓缓消化,经典题型太多

程序员代码面试指南(左程云大神的书,我并没有看完,只是看了其中的海量数据处理局部的题目就曾经非常受用了,在某大厂三面中就考查到了其中的海量数据集解决的问题

2、操作系统

​ 操作系统是比拟重要的,面试三大要点之一(操作系统、计网、数据库),我是在 B 站上看过一些操作系统视频,同时本人缓缓看书、看博客学的。其中死锁、虚拟内存、堆栈、过程线程、内存治理、磁盘调度等都是重点,也是面试过程中问的比拟多的一些知识点。你如果可能在面试过程中讲进去一些具体的操作系统常识,而不是泛泛而谈,必定是很加分的,比方常见知识点过程线程区别,在提到线程切换比过程更快时,你如果可能很分明明确的说进去过程切换做了哪些、线程切换做了哪些以及线程为什么比过程快,毫无疑问很加分的。

举荐材料:

B 站哈工大操作系统:https://www.bilibili.com/vide…

B 站清华大学操作系统:https://www.bilibili.com/vide…

B 站美国麻省理工 MIT 6.828 操作系统神级课程:https://www.bilibili.com/vide…

古代操作系统(也是讲操作系统的一本好书,讲的很细

深刻了解计算机系统(赫赫有名的 CSAPP,被誉为“和金子一样重要的计算机根底书籍”,很厚的一本黑皮书,须要缓缓看

古代操作系统:原理与实现 ( 上海交通大学陈海波传授的著述,书中次要介绍操作系统的实践与具体实现细节等,感觉不如 CSAPP)

3、计算机网络

​ 计算机网络也是重点之一,特地是 HTTP 以及 TCP/UDP 相干知识点,算是校招必备考点了,面试必问,然而难度是逐年回升的,起因可能就在于内卷水平越来越重大了吧。比如说以前对于三次握手四次挥手只问过程,当初间接让面试者画出客户端以及服务器端的各个状态码以及解释各种意外状况,比方 SYN 申请失落会怎么样?

​ 倡议计网的学习先从视频动手,而后再看经典书籍,毕竟视频中的常识都是他人总结好又给你解说的,只有本人亲自琢磨、亲自动手实际得来的常识才是本人的,本人学来的才是真,通过实际方知分晓的~

举荐材料:

B 站韩立刚老师的计算机网络(韩老师讲课滑稽易懂,让你在哈哈大笑中学到很多知识点:https://www.bilibili.com/vide…

图解 HTTP、图解 TCP/IP(这两本书比较简单,日本人写的,把简单的知识点简单化

网络是怎么连贯的(这本书紧紧围绕一个问题:输出一个 URL,直到咱们在网页端看到申请的内容,这两头产生了什么?抽丝剥茧将这个问题逐渐细化,带你走残缺个网页拜访的过程

计算机网络:自顶向下办法(也是常见经典书籍之一,重点看第三章传输层 TCP/UDP

4、Linux

C++Linux 根本是离不开的,特地是后端方向跟网络通信关系很大。在理论工作里,很多成熟的我的项目都是在 Linux 上进行开发的。所以有必要学一些 Linux 以及一些网络通信编程,网络通信波及到的知识点很多,比方 IO 模型、线程池、多线程之类的。自己在秋招过程中被问过不少网络通信的问题,最频繁的就是 select、poll、epoll 的区别以及相干底层实现了。这里也举荐一些材料,都是我集体看过的。

举荐材料:

鸟哥的 Linux以及 Linux 就该这么学这两本书( 个人感觉更适宜作为一本工具书来应用,当然了,如果你有短缺的工夫也能够零碎的看上一遍,对于 Linux 也会有更深的意识和理解了)

TCP/IP 网络编程(韩国人写的,书中例子很多,适宜作为入门,另外 github 上有很多笔记,能够边看他人的笔记边看书,加深集体了解

Linux 高性能服务器编程(游双老师的书,其中前四五章讲的是计网的货色,前面讲的很好,波及内容很多,看完就大略明确服务端编程常见知识点和所须要把握的技能了

Linux 多线程服务端编程:应用 muduo C++ 网络库 (北师大陈硕大神的书,须要很多根本,倡议前期再看,我也只是看了一小半)

5、数据库

​ 数据库次要问的都是 MySQL 以及 Redis 相干的一些常识,一般研发岗把握这两个根本也够用了,数据库常问知识点包含索引相干、性能优化、B+ 树、Redis底层模型、跳表以及缓存击穿、雪崩、穿透等常见问题。有时候也会让你手写一些简略的 SQL 语句,比方给你一个学生表和课程表,让你找出成绩排名前十的学生姓名之类的。

举荐材料:

MySQL 必知必会(一本很薄的小册子,不到一周就看完了,看完根本的 SQL 语句没什么问题了

高性能 MySQL(倡议只看索引以及优化这两章,后续的能够缓缓再看,这本书,真的真的很厚。)

Redis 设计与实现(算是 Redis 入门材料吧,认真看完的话就对 Redis 有大略理解了,话说 Redis 这么火爆是有起因的,其中的一些精妙设计真的看完令人大呼过瘾,不得不抵赖,人与人之间真是有差距的。。。

极客工夫 - Redis 核心技术与实战(中科院的研究员开设的 Redis 专栏,集体曾经买了,十分不错

另外再举荐根本数据库底层的书籍:数据库系统实现(华东师范大学数据学院指定数据库原理书籍)、MySQL 技术底细 -InnoDB 存储引擎(InnoDB 的具体分析

.png)

6、C++

C++的知识点比拟多,也比拟细,其实 C++ 并不容易学好,如果你只是简略学习一下语法比方 for 循环、变量类型之类的,那么一两周你就能够上手,然而如果想要学好 C++ 还是须要坚持不懈的 coding,因为集体是C++ 技术栈,这里也只是举荐 C++ 相干书籍和视频,都是自己本人看过的经典书籍和材料。

举荐材料:

B 站黑马 C ++ 视频(黑马机构出版的入门级 C ++ 教学视频,很不错:https://www.bilibili.com/vide…

STL 源码分析视频(C++ 巨匠侯捷老师的源码视频,搭配 STL 源码分析看成果更佳:https://www.bilibili.com/vide…)

C++ Primer 第五版(我愿称之为 C ++ 圣经,800 页左右,我看了 2 遍,超级棒!强推!

Effective C++、More Effective C++(前者 2 遍,后者 1 遍,跟 C ++Primer 中很多内容是有反复的)

STL 源码分析(源码方面的好书,看了 2 遍,当初时不时还拿进去翻翻

深刻摸索 C ++ 对象模型(重点是虚函数那一章,看完你就会对虚函数有新的意识了

碎碎念

​ 可能有些人会问,这些书你都看了吗?这也太多了之类的?本人能不能看完?

​ 说实话,看着是挺多,然而其中有很多知识点是一样的,比方你具体理解计网后,游双老师的那本 Linux 高性能服务端编程中的前四章你大略略过即可,就不再须要细看了,常识是有相关性和相通性的,有了后面的积淀前期天然就好很多了。

​ 还有就是 学会善用目录。有时候,看过目录后就大略晓得这章或者这大节讲的是什么了,倡议在看一本书的时候先看一遍目录,挑选出本人不懂得或者感兴趣的章节来看,而将已看过的或者临时不须要的放到前期再去看。

缓缓学、缓缓看,缓缓的就会有播种了。

​ 如果你像我一样学校不太好,不是什么重点学校或者不是计算机专业的,那么请你笨鸟先飞,赢在起跑线上。下面的书籍材料之类的,我并不是在 5 个月工夫内看完的,自从学 C++ 以来就缓缓看、缓缓学的,我想其余语言,Java/Go之类的也应该如此。

正所谓,天道酬勤,你付出汗水和致力,剩下的交给工夫就好!

最近在看汇编语言,王爽老师的那本《汇编语言》讲得真好,以前的那些寄存器、数据总线、地址总线概念突然变得很清晰明了、惟妙惟肖了,我本人也缓缓学会应用汇编写一些程序,懂得一些指令级程序优化的思路和办法,算是沉迷其中不可自拔吧!哈哈~

​ 一入 IT 就做好 终生学习 的筹备吧,你既然想要拿他人拿不了的高薪,怎么能不付出比他人多的汗水、工夫和精力呢?天上掉馅饼是不可能的,如果你还在想着偷懒耍滑,想要不付出工夫和汗水就想拿到好offer,阐明你并不是很适宜计算机这一行~

结语

如果你没有他人聪慧,不如他人条件好,如果你下定决心学习计算机,请你多投入工夫、多投入精力、多投入汗水!

本文由博客群发一文多发等经营工具平台 OpenWrite 公布

退出移动版