前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >上岸字节基架后端,这条赛道人少点

上岸字节基架后端,这条赛道人少点

作者头像
拓跋阿秀
发布2023-01-30 11:01:09
7080
发布2023-01-30 11:01:09
举报

作者:阿秀

校招八股文学习网站:https://interviewguide.cn

这是阿秀的第「221」篇原创

你好,我是阿秀。

很多学弟学妹都一致纠结到底是学C++还是Java好呢?其实以前就聊过这个问题:Java or C++?选哪个?再次认真聊一聊,Java or C++?

不过也有些人看的比较开,不选择这两种后端语言,而是将目光转向了另一种这几年比较火的编程语言Golang上,按照他们的话说就是这条赛道人少点。

阿秀已经分享过很多校招上岸经验了,其中有Java的,也有C++的、还有前端、测开、测试等方面的,也有一些算法岗的,但在我印象里貌似还没分享过选择Go语言上岸的文章,今天就来分享一下一位学弟的校招上岸字节系统架构的总结文章,他的技术栈就是Golang。

这篇文章是今年九月份这位师弟分享在阿秀的学习圈中的,现在已经快十二月份了,如果你想与他一对一沟通的话可以在阿秀的学习圈中的「精华区」找到本文作者。

以下是原文,其中的我代表这位师弟本人:

1、第一次转折点

2、第二次转折点

3、第三次转折点

4、我的面经(一二三面)


这里是迹寒,对于秀哥给我的这次机会,我十分感激,我想借这个平台给大家介绍一点秋招的经验。

秋招也是成功拿到字节提前批offer~,回顾这几年我感觉自己有几比较关键的转折点。

第一次转折点

我比较幸运,本硕都是985,本科读的光电,硕士读的计算机。虽然说学历还行,但秋招我还是碰了一鼻子灰。

本科专业和计算机不沾边,而且当时很想搞硬件,很长时间都在准备出国,2月拿到美国某名学校offer。

但是很不巧,那年是2020年,充满厄运的一年,疫情彻底改变了我的人生轨迹

隔离期间,我在家无事可干,便抱着玩的态度打开leetcode刷题,当时没想太远,就是想体验一下编程,结果这一刷就是三年

截止今年为止,我的力扣刷题量大概在900+了。

2020年8月底,我收到学校的电话,问我想不想保研,我当时还犹豫再三,最终选择保研,进了计算机专业,研究计算机体系结构。

现在想,我那时还是做了很正确的决定,没有去美国读硕士。

第二次转折点

本以为读研就万事大吉了,大厂offer躺着就能拿到手。

结果我发现事实并不如此,因为没经历考研,我的计算机基础可以说是0。

于是研究生前两年,我基本在恶补基础课:数据结构、计算机网络、操作系统、数据库等等。

但自学还是没老师讲的明白,许多知识都一知半解,后来也是各种看经典书籍、啃大黑书,才弄明白好多东西的。

读研期间导师给了一个课题,但是后面就不管了,基本是自己在做,但我还是坚持了下来,做了一个小项目放在github上,虽然做的很辣鸡,不过还是被我放在简历上。

我的项目的模板是geektutu的go分布式系统,有兴趣的可以看一下,写的很详细。

我从去年9月开始学习go,推荐看尚硅谷go教程:youtube、bilibili,是韩顺平老师主讲的。

然后就是一些教程,Go语言圣经(翻译国外)和Go语言42章经(李骁著);

有一定基础之后再看看geektutu的项目教程,每一行代码都有讲解。

正是凭借这个项目,我在今年3月拿到阿里实习的offer。

关于Go语言的学习路线和项目推荐,我看秀哥也写过,其中也推荐过geektutu的项目:https://interviewguide.cn/notes/02-learning_route/02-language/02-golang.html

记得当时的面试官(阿里P7)没有问八股,一个劲的问项目的细节,我也非常顺利的答了出来。

第三次转折点

今年的6月到8月,也就是2022年608月,我都在阿里实习。

在这之前,我对程序员的理解仅仅是停留在各种媒体的报道中,最显著的标签就是高薪钱多秃头裁员等。

真正进了大厂,我的认识才被刷新。

第一次看到这么多人在一起写代码,做一些很酷炫的产品,不管是手机上的APP,还是背后的云技术,都在深深改变我们的生活。

我的mentor很好,任何不懂的技术,问他就能解决。

Leader是P8,待人十分温柔,没有发过一次火,专门指导架构设计上的问题,在阿里八年就实现了财富自由。

7月8日,我投递了字节提前批,这也是我秋招第一次投递,相比之前的简历,我加了实习的内容。

当时想着提前批练练手,秋招再认真找,毕竟提前批和秋招是两个独立项目。

然后就随便投了一个客户端,7.18第一次面试到7.25三面,我都没好好准备,面试也没遇到啥大问题,结果过了几天,hr就通知我挂了,原因是方向不匹配。

我当时白天实习,晚上面试,一个人在杭州,离爸妈十万八千里,工作 + 想家让我觉得非常累,但上次的失利也让我感觉非常不甘,私下里也是一直复盘。

好在不久之后,我的简历就被另一个部门捞了,hr小姐姐很好,主动加我微信。

有了上次的教训,我决定认真看面经,我主要看秀哥的学习总结,秀哥以前的学习笔记很清晰,也很全面,给了我很大的帮助。

在跟他的聊天中我得知这是他以前的学习笔记,并不是各种拼凑在一起的八股文,确实质量很高阿秀的校招求职笔记PDF版本

实习期间,我也用到了很多基础技术,用的过程中就自然加深了对知识的理解。

8月1日到8日,我面完了3面,第二天,hr就通知我过了。

不得不说,字节的效率特别高,过不过的另说,至少整个过程不拖着你,快刀斩乱麻。

8.17日我拿到了oc,真的巨开心,感觉所有的累都是值得的。

总的来说,我觉得面试考的不是你背的能力,而是独立思考和知识栈的深度;

平时最好养成写博客的习惯,自己亲手写的东西更容易理解记忆,最好能参加实习,感受真正的业务场景;

面试时候不要紧张,多说点话,也不要不懂装懂,知之为知之,不知为不知;

面试后不管过没过都应该记录面经,去修补知识漏洞,这样才能不断提高面试能力。

今年已是极寒之年,只要经历过,不管成功与否,都足以铭记一辈子。

我的面经

8.1 字节系统架构一面

1、上来面试官自己介绍了自己。(太尽职了) 部门的业务,主要做边缘计算,包括基础设施,PaaS,SaaS,FaaS,存储,云原生等。

2、问项目中遇到哪些问题,如何解决的?

我一想,我还没介绍项目就问如何解决,是不是有些不合适,就果断介绍项目。

结果面试官没怎么听,直接又问了一遍刚才的问题。 。。。

3、k8s了解吗。

4、TCP是怎么保证可靠性的。

5、接上题,发送20个包,第三个包丢了,发送端和接收端会怎么做。

6、MySQL有哪些隔离级别。

7、MySQL间隙锁知道吗。(知道是解决“幻读”,不知道原理)

8、接上题,问“幻读”解决什么问题。

9、了解哪些分布一致性协议。(Paxos,Raft)

10、介绍一下Paxos协议。

11、如果发生脑裂怎么办。(IO hence,忘了)

12、写个SQL,从表中获取学生的名字和选课最多的前五个学生。

13、编程 最长的回文子串。 让我先讲思路,我讲了一个O(n^2)的,面试官说还可以优化。(不会) 力扣上有O(n)的实现,不过用的是manacher算法,我打死都不背。 面试官叫我运行,结果报错了,尴尬的一批,还好面试官说思路是对的。

14、编程 go基础语法 复制代码 1 2 3 4 5 6 7 8 9 10

代码语言:javascript
复制
func main() {   
  defer A{     fmt.Println("defer1")   }()   
  defer B{     fmt.Println("defer2")   }()   
  fmt.Println("main")
} 

main() 打印结果是?

15、虚拟内存知道吗?

16、什么时候会发生缺页中断。

17、死锁如何避免。

18、系统什么时候陷入内核态。

反问: 你们部门用什么语言? 你们部门base在哪?

8.3 字节二面

面试官看我简历比较有特点,问了linux 文件描述符1,2,3,-是什么意思。

自我介绍+项目(10min) 针对项目狂问。

1、你们的项目架构是什么样的。(说了一大堆)

2、hook的原理知道吗。(不知道)

3、 有三种代码覆盖率统计方法,你知道吗?(语句覆盖、判定覆盖,分支覆盖)

4、代码覆盖率为什么要达到80%

5、MySQL的DoubleWriteBuffer是什么?为什么要关闭?

6、aio的优点和缺点是啥?(优点我知道,缺点。。。)

7、aio是半异步模式还是全异步模式?(???)

8、网络IO发展历程。(从阻塞IO到reactor模型)

9、题目:链表倒数第k个节点。 写完之后,知道太简单了,又问,返回值如何写注释,应该返回哪些标准错误。

反问: 同一面。 这次面试直接把我打回原形,觉得自己确实还有很多不足的地方,是纸老虎。

8.8 字节三面

面试官全程没开摄像头,可能忙别的事。

上来介绍项目,我叽里呱啦说了一大堆,发现只用了四分钟。

1、你们的文件系统和别的文件系统(比如AFS)相比有什么区别。

2、问你们项目一个完整的IO路径是什么样的。

3、项目中遇到什么难点,怎么解决的?

4、介绍一下aio模型

5、多线程模拟aio和linux原生aio有什么区别。(libeio和libaio)

7、epoll和poll有什么区别。

8、TCP的拥塞控制。

9、实现一个队列,能够入队,出队,统计最小值。 我的方法是队列queue+map,感觉还可以优化。

10、红黑树原理是什么。(只记得旋转,平衡,其它都忘记了)

11、红黑树优势。

12、A,B文件各有50亿条数据,内存无法放下全部数据,问如何快速找到两个文件公共数据。 我说用哈希,但是面试官说不对。

13、对什么语言比较了解。(C++) ,new/delete和malloc/free有什么区别。

14、有继承的类,new/delete构造和析构的顺序。

15、什么是多态。

16、你有看过什么开源项目吗?(Ceph)

17、Ceph的CRUSH算法原理是什么。

做题:最长不重复子串。

反问: 你们部门业务场景? 面试多久出结果?(一周)

一起加油,跑下去,太阳自然会升起,不要在黎明到来前的一刻被黑暗吞噬了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拓跋阿秀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一次转折点
  • 第二次转折点
  • 第三次转折点
  • 我的面经
    • 8.1 字节系统架构一面
      • 8.3 字节二面
        • 8.8 字节三面
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档