22届双非一本跟谁学字节腾讯阿里面经

说在前面

经常“吸”社区,也要时不时反馈一点,一起延续开源精神。

个人情况:22 届双非一本,从去年 12 月开始面试找寒假的实习,由于学校疫情原因没去成功,于是经过寒假复习“二战”。先后面了跟谁学,腾讯,字节,阿里。

由于我个人情况特殊,从大一开始使用 Go 语言到现在,了解比较多,C++ 用来写题,有的问题可能不具有参考价值,理性看待。

另外有的问题确实记不得了,大家不要太看重问题,因为大部分都是八股的题型,网上一搜一大堆,博客的总结能几万字,但是没有面试官喜欢听这种东西,都是搞技术的不喜欢花里胡哨,我曾经就因为答协程区别和特点被反问 你这个有点像背的,,不过我也没反驳,下次总结避免就好了。你要答出问题的本质,底层的思考,说出跟别人不一样的地方,用有些面试官的话来说就是 这个问题我只想听你说一句话,我看我能不能听到。说白了就是你说了一大堆可能在对面听来都没听到,说不到点子上等于没说。

另外本文我主要突出面试过程,不是面试问题的总结帖(有的问题我真的记不得了 :(。

好了,不说废话了,大家看正文吧,有什么问题欢迎找我聊~

跟谁学两面 oc,第一次面试

一面

自我介绍

项目:

  • 用go写的rpc框架的具体功能细节,注册中心单机还是分布式的,其中一个挂了怎么办?一致性,可靠性怎么保证的。超时控制,加锁和管道支持并发,单机(考虑了多机情况,说了已经在todo里了)。

  • Go+QML 利用cgo实现的跨平台桌面应用功能,场景,为什么要写这个东西? 我说为了性能,追问性能如何体现,如何测试的,如何优化。答宏观上从任务管理器,top中看,细节上从pprof进行性能定位调优,从火焰图上看。追问pprof还有什么功能,你一般是怎么定位问题的?回答还是先具体再细节。

这时候我就俩项目,后面怕不够,又想拿go写个web的,正好学校说需要重构某个子选课系统,就跟同学接了,这个下面说。

写个快排?时分复杂度分析?看你了解过go的标准库实现,说说go的快排源码怎么实现的,答三数取中,根据数据量选择多种排序方式组合,追问细节我就不知道i了,,确实没看过这个。。他说没事。

协程与线程区别?为什么快,快在哪了?自定义了4个伪寄存器 fp sp sb pc,轻量,初始2KB动态伸缩,由runtime管理,对os透明等等各种原因,又说了以下gmp调度的优势。追问寄存器是什么,你对寄存器还有什么了解。我说了一点关于go和c 在寄存器方面使用的不同,函数传参,调用堆栈等等,扯了点汇编区别,就又问了几个汇编指令,过了。

虚拟地址,物理地址区别

rpc与http区别,使用场景,自己总结一下再说几条

还有点八股没啥难的 有点忘了。。

也没问啥难点一面就过了

二面部门leader

详细聊虚拟地址与物理地址,为什么分这俩,段页作用,为什么内存占用能比实际要大的多(还是虚拟地址作用),循序渐进的从现象到技术实现来问,不是考试。

go+qml项目问了几个关于cgo的特性,聊了聊优劣势,看得出来这个项目好多面试官也不懂,cgo特性一是用起来结合其他语言的时候确实有坑点,二是拿go写gui有点杀马特,不招人待见?

闲聊网络跟os,最后问了个智力问题,就过了。

总结

感觉难度不大,缺人进来打杂,要求不高。问了一下前辈,说加班严重,校招的话工资高了可以放备选考虑去。。面试体验还不错,自己缺乏一点回答技巧上的经验,聊技术不能一下到点子上,废话略多。

字节二面挂,腾讯二面挂

这俩对我帮助最大。

字节

字节对我最大的帮助是深度思考算法,为什么要这么写,别的方法行不行?

自己感觉有了点面试方面的经验,就投了较大的厂,遭到毒打。

字节一面是算法面,最后写了个单链表归并非递归,勉强通过。

二面上来扣20分钟rpc项目,挖出你这个项目的所有特点为止:

  • 序列化方式有哪几个,区别是什么,自己写过吗
  • 协议用的哪个,为啥不用udp
  • ...鞭打。。。

当时确实缺少对项目的深度思考,也是参考了声哥的项目,不过他是java写的,用go写起来参考了不少框架源码,rpcx,grpc,实现起来略费劲,时间仓促,底层思考略少。

二面挂是因为问了个快排复杂度,详细分析这三个时间复杂度的结果,怎么来的这个值,举例子说明等等,自己算法这方面当时确实弱项,挂了正常。

腾讯

腾讯对我最大的帮助是看源码,有的东西嚼别人的东西是不够的,应该学习一手资料,详情参考曹大的博客《工程师应该怎么学习》。还是太菜了,缺乏深度思考

几个亿找中位数

搜索树旋转过程

对面应该是c++的,问我map,我说我用go,他就说go也行,你说说go map 时间复杂度,为啥是这个值,为什么这么多数,O1能直接访问到,当时map只了解了一点,遂答的浅。

问 gc,gmp模型

后面忘了。

从这里开始,我去把go map的源码包括 runtime/map.go还有相关的汇编代码过了3.4遍,逐行注释源码,写成了博客,这才有了后续跟阿里面试官(技术专家)扯map 20分钟,详细问到扩容的代码实现。。

也看了channel的源码,挺多的,假期期间算是把底层源码这块入了个门,能扯几句了。

阿里三面挂

笔试算法还是写的不好。

这个是寒假回来的了,阿里云的,一面跟技术专家聊了45min,面试官应该是c++的,懂go,全程比较愉快,最后15分钟写了个题,改编版无重复字符最长字串,10分钟a了就过了。这里记录几个有意思的问题:

  • 有什么方法可以让函数无限递归不爆栈?尾递归,返回还是函数本身,栈帧覆盖?
  • 什么方法可以限制从堆分配内存的内存范围?
  • 逃逸分析,有哪些情况会逃逸,为什么?(go的逃逸分析)
  • 几个地址段,中断向量表的1024,代码段,数据段,堆栈等等。

二面是笔试面,1小时俩题,20分钟a了,接雨水改编版,左视图。问思路,把接雨水改了改,写完了过了

三面应该是主管,到这里的时候项目补了个选课系统,全程问项目整体设计,不具体扣到最深的细节,又问了职业规划,除了go 还意向什么语言,答py c++ rust也可,,貌似对c++意愿不够,其实我c++还可以的,go封装太多了,其实挺想学c++的,之后对方声音变低了,还问了俩问题就结束了,最后问一面的技术专家说原因是笔试不好所以挂了。。

原因我是没想明白,,二面不是补笔试都a了,问题也都答了。。玄学,也不纠结。

阿里区块链测开

被捞了。一面摸底面,先问你学过哪几个方向,答网络os组原都学过,于是每个都问了一遍,问题有点多,记不住了,挑几个印象深的吧,不分先后:

  • docker用过吗,隔离实现底层?dockerfile,dockercompose,指令说几个,看我说了expose,问端口映射方式,追问冒号左右哪个是主机哪个是容器。。。我还真忘了,上一个dockercompose和dockerfile是几个月前了。。
  • vlan了解吗,学校做过,但没深入了解。对方看我不太懂就没追问。。
  • https详细握手过程,说了tls 12 13,psk,sessionid,sessionticket,ecdhe,rsa反正一大堆,你懂的。
  • 从源码到二进制代码的整个流程,编译链接载入内存等等。我说了这里看到的地址都是虚拟地址,平常看到的0xc00000xxxx里的c是虚拟地址与物理地址的转换表的下标,瞎扯了程序领空和用户领空的区别。

昨晚突击二面,我说不想测开,他说给我转到平台研发部,还详细说了一下他们部门的工作,说不是BS架构,没后端,只能到平台研发,是C++,我就说也行,面试3分钟就结束了。。。

腾讯过

开学面了俩除了阿里云就是这个,比较顺,刚oc。

一面是俩人,问项目,应用层协议,https过程,最后写了个树的题,递归写的比较简单,忘了。。

二面就20分钟,全程问go rpc,穿插一些网络方面的问题,比如tcp udp选择,区别,技术实现等等,没写题,有的问题我还没打上来,感觉对方也不是很满意要凉了,给我的感觉是随便聊了几句就结束了。。最后还是过了,,要求略低,可能缺人。。。

#实习##面经##腾讯##golang工程师##字节跳动##阿里巴巴##高途#
全部评论
666😌
3 回复 分享
发布于 2021-05-20 08:28
楼主用go写的RPC有放在github吗?
3 回复 分享
发布于 2021-05-20 09:30
楼主能给个博客地址和github链接吗?
点赞 回复 分享
发布于 2024-02-15 21:27 香港

相关推荐

好久没来牛客了,今天面试了一个实习生,感觉对方形象乱糟糟的,头发像鸡窝,像刚睡醒就来面试了,第一印象直接大打折扣,感觉我没有受到应有的尊重,再加上对方业务能力也一般,我直接挂掉;大家面试的时候还是好好收拾一下自己吧,争取给面试官留下个好印象,面试这东西还是存在眼缘的
MinJerous:更在乎本质,应该看候选人是否和岗位需要的能力匹配。洗脸/不洗头都无所谓吧,说不定人家刚刚通宵准备,就是为了这场面试呢?你挂掉他核心原因还是他能力不行,而不是形象。就算形象好点,能力不行你敢给过吗,不怕后面+1质疑你
点赞 评论 收藏
分享
避坑恶心到我了大家好,今天我想跟大家聊聊我在成都千子成智能科技有限公司(以下简称千子成)的求职经历,希望能给大家一些参考。千子成的母公司是“同创主悦”,主要经营各种产品,比如菜刀、POS机、电话卡等等。听起来是不是有点像地推销售公司?没错,就是那种类型的公司。我当时刚毕业,急需一份临时工作,所以在BOSS上看到了千子成的招聘信息。他们承诺无责底薪5000元,还包住宿,这吸引了我。面试的时候,HR也说了同样的话,感觉挺靠谱的。于是,我满怀期待地等待结果。结果出来后,我通过了面试,第二天就收到了试岗通知。试岗的内容就是地推销售,公司划定一个区域,然后你就得见人就问,问店铺、问路人,一直问到他们有意向为止。如果他们有兴趣,你就得摇同事帮忙推动,促进成交。说说一天的工作安排吧。工作时间是从早上8:30到晚上18:30。早上7点有人叫你起床,收拾后去公司,然后唱歌跳舞(销售公司都这样),7:55早课(类似宣誓),8:05同事间联系销售话术,8:15分享销售技巧,8:30经理训话。9:20左右从公司下市场,公交、地铁、自行车自费。到了市场大概10点左右,开始地推工作。中午吃饭时间大约是12:00,公司附近的路边盖饭面馆店自费AA,吃饭时间大约40分钟左右。吃完饭后继续地推工作,没有所谓的固定中午午休时间。下午6点下班后返回公司,不能直接下班,需要与同事交流话术,经理讲话洗脑。正常情况下9点下班。整个上班的一天中,早上到公司就是站着的,到晚上下班前都是站着。每天步数2万步以上。公司员工没有自己的工位,百来号人挤在一个20平方米的空间里听经理洗脑。白天就在市场上奔波,公司的投入成本几乎只有租金和工资,没有中央空调。早上2小时,晚上加班2小时,纯蒸桑拿。没有任何福利,节假日也没有3倍工资之类的。偶尔会有冲的酸梅汤和西瓜什么的。公司的晋升路径也很有意思:新人—组长—领队—主管—副经理—经理。要求是业绩和团队人数,类似传销模式,把人留下来。新人不能加微信、不能吐槽公司、不能有负面情绪、不能谈恋爱、不能说累。在公司没有任何坐的地方,不能依墙而坐。早上吃早饭在公司外面的安全通道,未到上班时间还会让你吃快些不能磨蹭。总之就是想榨干你。复试的时候,带你的师傅会给你营造一个钱多事少离家近的工作氛围,吹嘘工资有多高、还能吹自己毕业于好大学。然后让你早点来公司、无偿加班、抓住你可能不会走的心思进一步压榨你。总之,大家在找工作的时候一定要擦亮眼睛,避免踩坑!———来自网友
qq乃乃好喝到咩噗茶:不要做没有专业门槛的工作
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
16
87
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务