字节跳动后端C++上岸总结(一二三轮技术面+总结)
首先推荐一个超级全的免费经典计算机PDF仓库,可以说你见过的PDF电子书基本都能在下面两个仓库里找到: 地址1:https://github.com/forthespada/CS-Books(由于VPN等因素如果不能访问可以尝试地址2)
地址2 :https://gitee.com/ForthEspada/CS-Books 这可能是整个GitHub上最全的计算机经典PDF仓库了。 在我自己学习计算机的过程中,慢慢的养成了收集书籍的爱好,前段时间看了一下,吓了一跳!!不知不觉间我已经收集超过 1000 本了。其中涉及C/C++、Java、Python、Go语言等各种编程语言,还有数据结构与算法、操作系统、后端架构、计算机系统知识、数据库、计算机网络、设计模式、前端、汇编以及校招社招各种面经等~
这是最近分享的计算机专业秋招提前批&正式批的上岸和面试经验众多文章中的一篇,更多校招上岸分享:
前言
我自己也经历过互联网秋招,在面试的过程中,被问过各种各样的问题,但是大部分都是基础性的题,所以基本功很重要,也很关键。
在我以前通过校招上岸字节跳动后,将自己的秋招找工作笔记开源在github上了。
可以说我能够凭借双非的学历进入字节跳动全靠我自己总结的这份笔记,秋招结束后我总结了自己的秋招经历:阿秀的秋招总结之路(已拿字节跳动SP),后来又完整复盘了自己在校招前一年时间里系统准备&学习计算机的过程:完整复盘秋招一年间自己的学习经过!应届生必读!
后来我将自己的学习笔记制作成了PDF,并且同步到了自己的校招学习网站上,现在免费分享给学习学妹们,希望你们以后找工作能够顺利一点、走的坦荡一点!
自己以前的学习笔记包括操作系统、计算机网络、数据库(MySQL、Redis)、常见情景题、智力题以及计算机面试中需要注意的问题。
下面是我的校招学习笔记网站内容大纲
不少学弟学妹们在这个网站的帮助下,顺利进入BAT、TMD,甚至去了字节跟阿秀一起做同事,都跑来找我报喜!
这是我的学习笔记网站:
不说了,快来冲!!!
以下是原文:
前几天已经分享了一些2023届的秋招提前批&正式批的面试经验,如果你没看过可以去瞅瞅、
今天再来分享一位应届生同学的上岸经验,这位童鞋最开始是在这篇文章:7天五面,提前批顺利上岸飞书后端下留言说自己同样字节OC了,还问了一句”如果没有交叉面,正常3面就结束的话是不是就是大白菜的offer了“。
于是阿秀邀请他来做一些上岸分享,当然这个分享并不是让他为爱发电,阿秀在聊天中也跟他说到了,可以付给他一些稿费或者免费进入阿秀的学习圈,二选一即可。
最后这位童鞋选择加入阿秀的学习圈,而不是选择要稿费。
如果屏幕前的你也打算分享的话,欢迎添加我的微信:aXiu_go,备注校招分享,虽然稿费不多,但是够你吃一段海底捞还是绰绰有余的。
说回这位同学,跟前两位不同,这位童鞋最开始并不是阿秀的学习圈里的成员,也不是什么科班出身,而是非科班一枚。
什么叫做三无人员?
用他自己的话说就是非科班、无实习、无论文的三无状态,简历也属于挂麻了的那种。
以下是他的分享原文,其中的我代表这位学弟本人,主要按照以下几个方面来进行分享:
- 1、个人背景
- 2、心路历程
- 3、备战校招
- 4、字节面积
- 5、小小建议
阿秀自己经历过互联网秋招,在面试的过程中,被问过各种各样的问题,但是大部分都是基础性的题,所以基本功很重要,也很关键。
在我以前通过校招上岸字节跳动后,将自己的秋招找工作笔记开源在github上了。
可以说我能够凭借双非的学历进入字节跳动全靠我自己总结的这份笔记,秋招结束后我总结了自己的秋招经历:阿秀的秋招总结之路(已拿字节跳动SP),后来又完整复盘了自己在校招前一年时间里系统准备&学习计算机的过程:完整复盘秋招一年间自己的学习经过!应届生必读!
后来我将自己的学习笔记制作成了PDF,并且同步到了自己的校招学习网站上,现在免费分享给学习学妹们,希望你们以后找工作能够顺利一点、走的坦荡一点!
自己以前的学习笔记包括操作系统、计算机网络、数据库(MySQL、Redis)、常见情景题、智力题以及计算机面试中需要注意的问题。
下面是我的校招学习笔记网站内容大纲
不少学弟学妹们在这个网站的帮助下,顺利进入BAT、TMD,甚至去了字节跟阿秀一起做同事,都跑来找我报喜!
这是我的学习笔记网站:
不说了,快来冲!!!
一、个人背景
大家好,非常高兴秀哥给我这次分享的机会,希望能给大家一些帮助。
我个人学历是双非本,末流985硕,非科班的工科专业。
本科期间搞得都是电路设计相关的比赛,然后有个保研和一些奖学金经历。但是在今年这个行情下,这些东西都不怎么有价值。
相反的,我非科班、无实习、无论文的三无状态,属实是让我简历挂麻了。
相遇即是有缘,我最近发现三位谷歌大神写算法刷题资料,支持Java、C++、Go三种语言,其中对于面试中考察较多的链表、树、动态规划、数组等知识点讲解的都很全!如果你算法能力比较弱,比如互联网大厂面试中手撕算法比较差的话,那要好好看看了。
BAT大厂必备!支持Java、C++、Go三种语言版本!谷歌大佬亲自总结的Leetcode刷题笔记~
二、心路历程
我一开始就是以提前批为目标的,只是没想到今年的提前批这么惨淡,大厂就没开几个。
我投了50家左右吧,简历挂麻了,属实是挂麻了,包括现在这个oc的岗位也是简历挂了之后被捞起来的。
1、至暗时刻
我大概是从三月份开始,就没怎么睡过好觉,每天基本上是早上八点到晚上十一点的学习时间,精神压力还是蛮大的。
今年六月底开始投简历,七月初有了第一次面试,但是当时确实是第一次面试。
不出意料,搞砸了,各方面都准备的很差,语言表达也很有问题,自我介绍的时候都是磕磕碰碰的,当时面完就挂了。
然后我就痛定思痛,好好总结,准备要一雪前耻。
然而当时的我不知道,下一次面试,居然要等到七月底。
整个七月,就是我不断挂简历,不断笔试,不断投简历的循环,三个星期都没有什么面试的消息,中间一度感觉非常绝望。
特别是当我看到我字节简历挂了的那天,非常难过,跟好朋友出去喝了几瓶啤酒,感叹今年真tm难啊!我这简历也不是很差啊,甚至都得不到一次面试的机会。
那真的是我最低谷的一段时间了。
2、峰回路转
之后突然有一天事情迎来了转机,有hr给我打电话说要捞我,我然后我就面了现在的这个部门。
很幸运,碰到的几个面试官人都非常好,字节的效率也非常高,很快就开始了面试。
同时其他投出去的公司也渐渐开始有了回音,一切都慢慢走上了正轨。
3、第一封意向书
时间很快,终于在八月上旬,经历了三轮技术面试后,我终于拿到了自己的第一封意向书,来自字节跳动。
当时的感觉就是心里的一块石头落地了,在这个地狱级的2023秋招,我总算是找到了一份工作,而且还是字节跳动,感觉自己的努力总算没有白费,舒服了,感觉一些都值得了。
4、再接再厉
拿到字节offer后,真的是高兴了好几天。
然后还是要鞭策自己,还不能放松,还没结束,校招还远远没有结束,我还是要好好准备之后的面试,加油加油。
三、备战校招
我是在去年6月份左右开始准备找工作的,因为本科时候搞嵌入式写C比较多,加上教研室用cpp比较多,所以目标是找偏基础架构方向的cpp的后端开发。
在这里给大家分享一些我个人学习时用到的资料吧,秀哥的网站就不说了,神级宝库,看就完事了,看到这篇的估计大家也都关注了。
1、C++
首先是c++相关,对于语言来说,一开始是经典黑马c++学起,之后跟师兄们请教,了解到了cpp大神侯捷老师,然后就看了侯老师的视频跟侯老师翻译的一些书。
这一部分最大的感触就是一定不要浮于表面,不能只会调用个stl库就行了,还是要去了解一下原理,侯老师的视频讲解的都很透彻,强烈推荐观看。
之后就是多写多用,不断提高。
这里推荐一个b站up叫神经元猫,他的视频都是转载、翻译了一个国外的小哥的油管,讲cpp讲的蛮好的,可以当成工具书去查看。
2、操作系统
操作系统的话,一开始是直接啃csapp了,当时看的很浅,只是了解了一些皮毛,但是也帮助我构建了一个对计算机世界的整体认识,真的是一本非常好的书,我最近也在重新读这本书,会有不一样的体验。
后来在b站看到了南京大学的jyy老师的os课程(up主:绿导师原谅你了),真的是讲的非常非常非常好了,强烈推荐有时间的同学们去看一下。
学操作系统不能没有jyy,就像西方不能没有耶路撒冷。
3、计算机网络
计算机网络一直是我的软肋,这部分我就只是看了看湖科大,小林coding跟一些博客,了解的比较浅,就不误导大家了,哈哈哈。
4、算法
算法的话,就是了解数据结构后就直接去刷力扣,我也信奉秀哥说的实战始终就是最好的演练,多刷就完事了,再多技巧,题量达不到都是白扯。
真的不要扯什么虚的,题量达不到的话,再多的模板/技巧都没用,我现在有500+的刷题量左右。
我是从去年8月份开始刷,中间有些间断,高强度刷题是从今年3月份开始的,推荐大家还是先按模块刷题,形成解题的一个思维吧,之后在随机刷,全面提高自己的能力。
5、数据库
数据库我也没看太多,因为目标是搞基础架构方向的,所以更多的还是看一些原理性的东西。
不怕你笑话,我到现在也还不太会写SQL,云玩家了属于是。
6、设计模式
设计模式浅浅的了解了一下,看的是博览网李建忠老师的课,有的设计真的是让人拍大腿,巧妙。
李建忠老师和侯捷老师的课程都很不错的说,我看秀哥的星球里置顶帖的资源里也有他们的视频资源,都比较全,直接去下就好了。
7、宝藏好物
下面这几个东西是我十分推荐的,尤其是想做基础架构方向的同学,应该还是有些用处的。
首先是一定要尽早准备!,这门分布式系统的课程真的很棒,看的同时去做一下他的配套lab,go语言手撕一个raft协议,还是挺有意思的。
然后是CMU的15-445这门课,是讲数据库原理的,lab也很有挑战性。
最后是推荐一个宝藏up主:硬核课堂 ,他们有很多非常硬核的内容,包括一些系统设计,论文导读之类的视频,都是非常猛的知识,推荐有余力的小伙伴去看一下。
秀哥以前开源过一个国内外优秀CS课程的github仓库:Awsome-Courses,其中就提到了MIT 6.824,除此之外还有一些不错的MIT、CMU等世界CS名校,其中包含计算机基础学科(操作系统、计算机网络、编译器、数据库、数据结构与算法等)以及人工智能&AI等高级科目,都挺实用的。
国内外计算机的优秀课程
地址:https://github.com/forthespada/Awsome-Courses
以上就是我学习中用到的一些资源了。
现在的感觉是,即使我学了这些东西后,还是开始太晚了,真的是太晚了。
是的,我没有瞎说或者凡尔赛,我真的感觉时间很紧,到现在自己还是有很多知识漏洞的,还是没有形成自己的知识体系。
如果再来一次,我一定更早点开始准备。
即使我提前一年就准备的校招,我是去年六月份开始准备的,到到现在上岸大概花了一年零2个月的时候,即使经历过14个月的系统学习,我依然觉得自己开始的太晚了,需要做的事情依然很多,自己的基本功依然不扎实。
我看秀哥的秋招总结也是的,他是校招前一年,也就是八月份的时候系统准备了,到上岸的时候整整过去了一整年,他系统学习和准备12个月,我则花了14个月。
所以奉劝那些跟我一样的非科班同学,一定要尽早准备!一定要尽早准备!一定要尽早准备!
四、字节面经
字节我一共面了3场,一场比一场时间久,第一场65min,第二场80min,第三场更夸张足足面了120min。。。
下面是我的具体面经:
一面 65min
- 一开始就是介绍一下项目,阐述一下做这个项目的原因跟设计思路,然后是开始问问题。
- 项目中内存池的作用,有什么好处,讲一讲是怎么设计这个内存池的。
- 在写raft协议的时候,有没有遇到什么困难,怎么解决的。
- TCP UDP区别,分别适合什么场景。
- TCP拥塞控制。
- SELECT EPOLL。
- 线程的共享资源和私有资源。
- C++内存模型。
- C++多态。
- Linux软连接和硬链接。
- 然后手撕了一个跟二分相关的题目。
总之一面还是问八股比较多,也符合我的认知,主要就是考察基础知识。
二面 80min
- 先问了一下项目现在的开发进度。
- 问了一下如果要优化你的项目,怎么去找优化的地方(怎么找到性能瓶颈)。
- 内存池的设计,有没有去测试性能会提升多少。
- 各个模块的性能测试有做吗,时间大概都是什么量级的。
- C++静态函数能不能访问非静态成员变量,如果是给他传一个对象呢。
- 栈申请对象快还是堆快,为啥。
- malloc的对象直接delete,程序会崩溃吗。
- new 数组 不用 delete[] 什么东西会泄露。
- rand5 实现 rand7
- 手撕力扣844,写完问了一下复杂度。
二面问了很多项目细节的问题,特别是性能跟测试相关的东西。
三面 120min
- 怎么去决定项目中的存储结构的,有什么考量。
- 实现了内存池,怎么去测试性能。
- 面试官说如果是线上的一个系统,怎么直接用线上数据来进行测试。
- 设计一个系统要考虑的指标有什么。
- 如果用户说,访问服务的时候偶尔会延迟,怎么去找问题。
- 看日志里的什么指标,怎么定你要看的指标。
- CPU的占用率,百分比的分子分母分别是什么。
- 内存池跑在32位系统和64位系统上可能会有什么问题。
- 内存池会不会无限扩展。
- 回收内存的时候,如何确定回收的块的大小。
- 用Gtest有没有觉得他什么问题。
- 你设计数据库的话,如何保证事务的原子性。
- 问我有了这undo和redo日志有没有可能还是会有问题,然后问我这俩日志的写入顺序。
- 最后手撕了一个类似括号嵌套匹配的问题。
三面面试官是leader,问的都是些场景题,完全没有八股文。
很多情况下,都是他抛出一个问题,然后我们两个人一起讨论,阐述看法,一起去解决这个问题,然后不断的去扩展,面试官人很nice,面试体验非常好。
我感觉这个时候需要贴个图hhh
五、小小建议
自己说不上什么建议,自己一路走来感觉起起伏伏吧,有起有伏,主要是想给后来人下面这几条建议,都是我的心里话:
首先是一定要对自己有个明确的规划,确定好自己要找什么方向的工作,然后就要为了这个目标而去努力,一定不要改来改去,那样大概率啥都学不好。
还有不要太迷恋各种教育机构,其实很多机构讲的课都是还蛮浅的,还是要去多看书,多找资料,多自己总结。(没有说教育机构不好的意思啊,求生欲满满)
然后就是学习要趁早,时间真的很紧,不要觉得一年时间很多,其实你真正准备起来的话时间过得很快的,你想要学的比较深入的话,一定要早点开始。
还有就是要自律,该奋斗时就别摆烂,我是一个很喜欢打游戏的人,但是为了保持一个良好的找工作状态,我已经半年没有打开我的steam了,真的是多么痛的领悟啊。
最后很想对大家说的一句话,要对知识有敬畏之心,知识是学不完的,永远不要满足于现在的知识面,不断学习,才能进步。
祝大家都能拿到满意的offer,加油加油!!!!!
以上就是这位同学的分享了,上周他加入学习圈后,在圈里做了也上岸分享,目前他的分享已经被加精,你可以在学习圈内的精华区找到他的分享原文(如下图)或者与他进行1VS1的交流:
其实这段时间阿秀自己也没闲着,在星球里持续输出了不少内容,只不过我不是那种很外向或者喜欢宣传自己的人,很多人都不知道我最近一直在做的事,我是那种比较喜欢自己完成了某些事再分享的人,而不是只会在那里喊口号。
对于自己没做过或者没什么准备的事,我是不想拿出来说的,如果你关注我比较久的话应该知道我是个行动派。
比如自己总结了全国一二线城市的互联网公司,比如杭州有101家、深圳有108家、上海有225家等。
自己也写了一个从0教你写好一份属于自己的简历,以前还分享过其中的项目经验应该如何描述这周改了90多份简历...
一些校招面试经验和内部资料分享等,这部分内容只会在星球更新和迭代了,比如一些面试中杀时间的利器,让你光明正大的耗面试时间同时还能增加自己在面试官心目中的印象分,为啥我会这么说呢?因为我以前就是这么干的,这些都是我在实战中运用过的一些技巧。
上周自己写了个爬,哦不,手动收集了差不多1400多份一二线大厂真实面经(阿里、字节、腾讯、美团等),简单去重和过滤掉质量较低以及篇幅文字较少的面经后,还有差不多600余份真实面经。
此外还有一些过来人的学习路线和项目推荐,这就更不用说了,比如为一些计算机基础薄弱的小伙伴专门写了一个计算机校招基础学科速成路线。
此外,对于每位阿秀的学习圈中的圈友也会奉上自己以前的学习和校招面试总结笔记,也就是《阿秀的学习笔记》PDF版本:阿秀的校招求职八股文PDF版本,目前以及以后都只有这一种PDF版本下载方式。
以后会继续笔耕不辍,输出一些有价值的内容。
欢迎点击此处了解阿秀的学习圈详情,这可能是你校招求职路上最有含金量的一次点击。