当前位置:   article > 正文

阿秀去面腾讯了(社招两年面试经验)

阿秀的面经

d51493c745e8a7e567dc4306914ce0a9.png

作者:阿秀

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

小伙伴们大家好,我是阿秀。

前段时间说了自己换工作的事:阿秀离职了,虽然最后选择去了外企,但在换工作期间也看了不少机会,基本国内的一二线厂都面过了,基本前2面都能过,有几家第 3 面挂了,也有几家offer报上去但没审批下来,在上篇文章中聊到过这一点,就不再赘述。

我从学校毕业后就一直在字节跳动抖音部门搬砖,今天分享一下我的腾讯社招 2 年经验面经和答案,我面的是全栈开发岗位,后端是Go,前端是 JavaScript + Vue。

先说一句,我在公众号上分享过很多校招上岸经验以及面经,可以看下这里,这是全部的校招上岸经验分享文章:往届校招面经&上岸经验分享

但是社招分享的不多,其实倒不是我不分享,真的是很少遇到不错的社招经验。

造成这种局面的可能有很多种原因,可能是大多数人工作了就很难保持当初那份还是学生时的赤子之心了,柴米油盐酱醋茶生活琐事就够忙活的了,面经本来也是一件比较耗费时间合集精力的事,干起来也费力不太好。

还有就是也没什么合适的平台可以分享社招经验,不像校招,可以去牛客网或者实习僧这些平台分享,也有人给予正面反馈,所以社招面经和经验真的不多。

因为自己工作也没多久,就两年时间,所以我知道大概率可能还是一半考察业务,一半考察基础,事实证明,基础占六成,业务占四成,其中业务就是自己在工作中的具体业务,基础则就是校招那些东西,编程语言、操作系统、计算机网络、数据库(MySQL + Redis)、算法等。

我大概是三月份的时候就断断续续开始找一些机会,其实去年 11-12 月份的时候我就刷过一些算法题,当时就想着找找感觉,刷了小 10 天就没再继续刷了。

6f6e453f3e1f2b7e62dd74100272f6a6.png

而在今年一月份的时候我就开始在力扣上重新刷题了,一直断断续续的刷,总共加起来 200+ 道题是有了。

41cc7c7007b997bc3e92a683fca4b5a2.png

对接触一线业务的后端程序员来说,第一次跳槽,那么编程语言、计算机网络、数据库、操作系统四大块是一定绕不开的,这四块是最基本的根基所在,系统和网络还好,数据库绝对是考察重点,在此之上才是一些其余的分布式、微服务架构、服务治理等。

最后再在面试中补充你自己对工作项目的思考,聊聊你的业务,所负责的模块,前期做的一些市场调研,以及与同行的方案对比,你的创新点或者说优越点在哪里。

其实工作久了的人就会知道:编程语言不重要,重要的是业务,这句话有多么的对。

一面

鹅厂一面是个小哥,应该是做后端的,基本围绕着Go和计算机基础来问,面试时间很长,差不多一个半小时了,前端基本没问。

1、看你自我介绍是写全栈的?前端技术如何?

:工作中自学的前端,会写一点,不算很好,基本够用的水平

2、前端开发过程中有遇到什么自己觉得难搞的点吗?

:有,有一个功能印象较深,开发实现了url页面分享的功能,这个在我们开发时市面上还没有很好的例子,并且在内网分享会上写了文章进行分享。

哦,那挺好的,那我们聊些后端吧

3、Go 里面使用 Map 时应注意问题和数据结构?

:可以通过定义 value 为 struct 来节约内存;哈希分桶的结构,用哈希值的高八位和低八位分别来做桶内定位的依据和分桶的依据等;

4、Map 扩容的细节可以说一下吗?

:这个《Go 语言底层原理剖析》这本书里有,不展开,其实跟 Redis 中渐进式 rehash 的思路差不多;

5、Rehash 过程中存放在旧桶的元素如何迁移?

:见2

6、sync.Map 比加锁的方案好在哪里?底层数据结构?

:缓存 + map 组成的结构;底层 map 实际依然是加锁的,但是读的时候加上缓存可以增加并发性能;

7、如果有这样一个场景,在并发环境想要用哈希容器,你会采用哪些方案?

:sync.Mutex / sync.RWMutex或者sync.Map

8、还是上面那个场景,并发环境共享同一个 map 可以吗?

:不可以,可能会panic

9、channel 知道吧,他的底层数据结构大致说说?

:见2,不赘述

10、mysql中的事务?

:事务是一组操作单元,要么全部执行成功,要么全部执行失败,不存在第三种情况,主要用来保证数据库一致性。

事务具有四个特性:ACID

  • 原子性(Atomicity):事务中的所有操作要么全部执行成功,要么全部执行失败,不会出现部分执行的情况。

  • 一致性(Consistency):事务执行前后数据库的状态是一致的,即数据库中的约束和规则都得到了保持。

  • 隔离性(Isolation):多个事务并发执行时,相互之间不会影响彼此的执行结果。

  • 持久性(Durability):事务执行完成后,对数据库所作的修改将被永久保存到数据库中。

11、索引什么时候下会失效?可以举个例子吗?

:场景很多,比如一次性查询超过全表40%以上的数据,gorm框架里自带一个model结构,其中有create_time字段,如果我按照 create_time 去做范围查询,查询1970-2021年间的数据,那么索引就形同虚设了,因为走的是全表扫描;

12、写个SQL吧,求一个商品表中价格最高的第10和第14个产品?

:使用limit关键字

13、有写过查询时间很慢的接口吗?最后有查到原因吗?

:有,写过,入职没多久的时候遇到过这个问题,好像是刚入职一个月左右。

最开始以为是SQL写的不行,直接用explain看了一下发现没什么大问题,索引也用上了,后来排查下来发现是缓存没加上。。。每次取数后忘记回表了,这样每次都走的DB,redis根本没用上,所以导致每次都很慢声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/667271

推荐阅读
相关标签