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

news2024/12/23 6:40:18

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根本没用上,所以导致每次都很慢😂

14、你们做的具体业务?

:大致说了一下自从我入职以后做的业务,面试官偶有打断并询问,因为是内部项目不公开,就不展开了。

15、三握四挥具体过程?

:老八股文了

16、算法题:最长子序列

反问:

  • 部门业务?

  • 腾讯基架服务如何?

  • 常规上下班时间?加班现象如何?

小哥直接说过了,问我接下来有没有时间,二面面试官现在正好空,方便的话可以继续面,不方便的话再找HR约时间。

求之不得,我这个人最不喜欢拖泥带水,一次性面完最好。

二面

10分钟后二面开始了,年纪稍大的一个老哥,30+岁的样子,脑袋有点秃,头顶有点亮,看起来像个大佬的样子,我坐直了身子,开始认真回答。

1、你负责的业务是什么?

:balabalba,二十分钟过去了

2、前端开发多还是后端开发多?你觉得你的前端水平如何?

:前后端四六开吧,刚入职时写过半年的前端,后面一年半只写自己功能模块对应的前端了。

我感觉自己的前端水平属于半吊子水平,野路子出生,没有经过系统学习,都是工作中学会的技能,不瞒你说我以前在学校的时候学的都是后端技术栈,所以最开始写前端,全靠抄组内同事的代码,找一个差不多的页面就开抄,抄着抄着就会写了。

老哥笑了一下。。。

3、前端回调地狱是什么?

:在JavaScript中,多层嵌套的回调函数造成的问题。在处理异步请求时,为了保证数据的同步和正确性,往往需要使用回调函数。当多个回调函数嵌套在一起时,就会形成回调地狱。

4、有哪些解决方案?

:Promise或者async/await

5、diff算法是什么?

:diff算法是指在前端框架中用来对比两个虚拟DOM树的差异,并将差异更新到真实DOM上的一种算法,可以减少渲染次数,提高渲染性能,避免对整个页面的重新渲染,从而提升用户体验。

基本思路是,通过对比虚拟DOM树中节点的属性和内容的变化,来确定哪些节点需要更新,哪些节点需要删除,哪些节点需要新增。

6、vue生命周期?用的哪个比较多?

:大致有八个生命周期:beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed。

我们用的最多的是created和mounted,前者created是在实例被创建后会被调用。在这个阶段,Vue实例已经创建完成,数据已经初始化好,可以访问实例的数据和方法。但此时还没有开始模板渲染;mounted则在挂载完成后被调用,此时实例已经被挂载到页面上,并且可通过DOM获取到。在这个时期,实例的数据绑定和状态也更新完毕了。

7、vuex用过吗?想在一个页面中使用两个模块的属性?比如一个用户模块,一个商品模块,应该用什么关键字去调用?

:用过,页面中使用computed和mapState来做区分,可以自定义别名来做。

8、分布式锁如果是基于 Redis 的会有什么问题?

:锁可能会失效,在主从模型下同步并不保证一致,这种场景下会失效。

9、Redis 使用的过程中有碰到过一些热 Key、大 Key 的问题吗?如何处理?

:我理解是想问如何定位key,说 rdbdump 导出之后做(离线)分析,看看哪个 Key占的空间特别大,再做处理,比如哈希、打散等;

10、如果有一些热点 Key,比如某个链接被明星分享了,访问就会很频繁,怎么办?

:这不就是redis的存在意义吗?里面放的就应该是热数据啊。

如果热点数据里面的 Value 过大,可以尝试使用多线程来缓解网络IO压力,这是Redis 6的功能。

11、后台服务架构中如何设计?怎么才能高性能一些?

答:划重点超级难的一个问题!!!,聊了很久,这个问题来来回回大概聊了差不多30分钟都不止,从以下几个方面聊了很久:

池子:内存池、连接池、对象池

并发:请求并发、请求冗余

异步:调用异步、流程异步

缓存:缓存分类、缓存回收、崩溃修复

数据库:分库分表、动态平衡、任务分片、路由策略、读写分离

12、随便写道题吧,我也不想考,但这是规定,力扣接雨水

:啊行行行,你是面试官,你咋说都行,磕磕绊绊写出来了。

反问

  • 询问我的不足之处?答:基础很好,建议加强表达。?????我摸不着头脑,不知道啥意思,没再追问

  • 部门业务?如果我能够通过面试,会负责哪些业务?

  • 项目组的细节,比如代码组织、管理形式等。

今天就到这里了,后面有机会再分享一下其余厂的面经。

这里放个自己的微信,听说再过一段时间微信公众号就不能放二维码了,欢迎来做点赞之交(如果你已经添加我其余微信好友了,无需重复添加)

f1c37d4bfb2630326e74eceb1c89f3ad.png 

打开世界另一扇窗

阿秀会经常在朋友圈分享一些计算机学习经验、趁手的资源软件工具、生活点滴,偶尔也会帮朋友发布一些工作岗位,欢迎围观朋友圈,一般不闲聊。

—THE END—

你好,我是阿秀,毕业于普通学校,毕业时拿过六家大厂的 SP offer ,点击蓝字查看我的校招求职之路。

从小公司实习生到字节跳动全栈研发工程师,再到外企工程师,一段段路走来很不容易,后来组建了一个学习圈子,希望能帮到更多的人少走弯路。

↓↓推荐↓↓↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/604315.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

独立开发变现周刊(第89期):一个 AI 小工具,两个月内赚7.3万美元

分享独立开发、产品变现相关内容,每周五发布。 目录 1、privateGPT: 可以和本地文档进行交互的聊天机器人2、chatbutler: 无代码可视化创建聊天机器人3、CommaFeed:可以自托管RSS阅读器开源项目4、roop: 一键深度换脸5、deeplearning: 吴恩达在推特上宣布…

搜索帮助demo:F4IF_INT_TABLE_VALUE_REQUEST 返回多列值

货铺QQ群号:834508274微信群不能扫码进了,可以加我微信SAPliumeng拉进群,申请时请提供您哪个模块顾问,否则是一律不通过的。进群统一修改群名片,例如BJ_ABAP_森林木。群内禁止发广告及其他一切无关链接,小程…

零基础开发小程序第三课-列表功能开发

最近我新研究了一款无代码开发工具,主打的是一行代码都不写来开发小程序。已经有了两篇文章 利用无代码工具开发一款小程序 公民开发者学习无代码编程,从CRUD开始 前两篇文章已经介绍了如何创建项目,如何建立数据表,以及开发新…

智哪儿×广州光亚展专栏:对话8家AIoT及芯片方案企业,解读其核心竞争优势及成熟项目案例,参展亮点提前看

2023年6月9-12日,第二十八届广州国际照明展览会(光亚展,GILE2023)将在广州中国进出口商品交易会展馆正式启幕。本届展会以“「光」未来”为主题,将迎来3,318家来自18个国际及地区的参展企业,展示规模将横跨…

【MCS-51单片机汇编语言】期末复习总结②——汇编程序设计(题型二)

文章目录 顺序结构分支结构CJNE的使用规则 循环结构包含部分分类 常考题型例题1题目描述题解 例题2题目描述题解 例题3题目描述题解 顺序结构 程序默认以顺序结构执行; 分支结构 用CJNE进行分支; CJNE的使用规则 CJNE A, #data rel 若(A) (data)&a…

高完整性系统工程(九):Invariants

目录 1. INVARIANTS 1.1 例子 1.2 正式的证明 1. INVARIANTS 一个不变式需要满足以下三个属性: 当循环开始时,不变式是正确的在每一次循环迭代之后,不变式仍然是正确的当循环条件为假时,不变式能推出循环结束后的条件&#x…

刘知远团队提出:如何通过扩大高质量指导性对话数据集,来提高模型的性能和效率...

深度学习自然语言处理 原创作者 | 刘嘉玲 随着开源语言大模型(LLM)的百花齐放,模型的性能和效率关乎到产品的成本和服务体验的均衡。那么,有没有办法让语言大模型变得更高效、更优秀呢? 为了进一步提高开源模型的上限,清华大学的研…

数据库新闻速递 明白3中主流的数据迁移方法 (译)

头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共8…

Webstorm 支持微信小程序开发插件 Wechat mini program support

支持微信小程序插件安装: Wechat mini program support, 微信小程序语法支持,rpx 单位报错解决。 插件官方文档 Wiki - Gitee.com 安装方法: File-> Settings->Plugins 选择Marketplace: 输入Wechat ,搜索,然…

岭回归有看点:正则化参数解密,显著性不再成问题!

一、概述 「L2正则化(也称为岭回归)」 是一种用于线性回归模型的正则化方法,它通过在模型的损失函数中添加一个惩罚项来防止过拟合。L2正则化的惩罚项是模型参数的平方和,乘以一个正则化参数λ,即: L2正则化…

初阶二叉树的相关题目

前言: 前面我们介绍了初阶二叉树的相关知识,二叉树常考的还是链式二叉树,而且二叉树也会考很多选择题,本文重点是在给出一些常考的二叉树的性质定理推导和经典练习题目配合强化巩固知识。 目录 一、二叉树的常见性质定理 二、常…

你的业务被AI所取替的风险度有多高?AI社交、克隆人、角色扮演、代理人

hi,大家好,最近我们陆续会推出各种实验性项目,把我们在AIGC和数字体验上的思考进行验证,欢迎持续关注我们的进展。(文末领取PDF) 目前,已经有不少的例子证明了ChatGPT有多好用了。 亚马逊员工在…

定制比例阀控制放大器

定制比例阀控制放大器是为特定应用场景设计的定制化控制系统。它可以根据客户的需求和应用要求,配置输入输出及颤振频率等参数,对现有的控制器进行修改和优化,以满足特定的性能指标和功能要求。随着工业自动化技术的不断发展,定制…

关于安卓viewpager实现堆叠卡片交互

背景 长江后浪推前浪,无聊的需求一浪接一浪。 最近做到一个关于卡片堆叠的需求,觉得挺有意思,所以特此记录一下。 文末将附上源码链接 首先看设计图: 可以看到,是一个卡片堆叠的效果,关于这种UI的实现&…

Android系统安全技术---FBE密钥框架和技术详解

一、前言 用户数据加密是移动设备的重要功能,是使用对称加密算法对Android设备上的所有用户数据进行编码的过程,防止用户数据被未经授权的用户或应用程序访问。 本文是Android系统安全技术系列第二篇,主要介绍基于文件的加密技术。首先介绍An…

到底什么是“云手机”?

今天这篇文章,我们来聊一个很有趣的东东——云手机。 说到云手机,有些童鞋可能并不会觉得陌生。是的,它确实并不是一个新名词。早在2011年左右,国内就有厂商推出了云手机的概念。掐指一算,至今已经有12个年头了。 大家…

APP在应用市场内该如何做推广

苹果应用商城的自然流量都是通过精品推荐,畅销排行榜和搜索来获取的,此外,应用名称、副标题、应用截图视频、应用描述、用户评论、下载量、用户留存率还有曝光量,这些都是影响ASO优化的关键因素。 为了防止一些应用堆砌热词&…

传统设备充电接口如何升级成USB-C PD快充接口?

早在 2009 年开始,欧盟就致力于推动消费电子产品充电接口的统一进程,减少资源浪费推动绿色环保进程,同时充电配件通用化也为消费者带来更好的充电体验。2022 年 10 月 4 日,欧洲议会全体会议上表决通过,在 2024 年底之…

C++服务器框架开发8——日志系统LogFormatter_3/override/宏定义优化switchcase结构

该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。 其教学视频见:[C高级教程]从零开始开发服务器框架(sylar) 上一篇:C服务器框架开发7——日志系统LogFormatter_2 C服务器框架开发8——日志系统LogFormatter_3/override/宏定义优化switchcase…

代码随想录算法训练营day60 | 84.柱状图中最大的矩形

代码随想录算法训练营day60 | 84.柱状图中最大的矩形 84.柱状图中最大的矩形解法一:单调栈解法二:暴力双指针(会超时)解法三:优化双指针 总结 最后一天打卡留念! 84.柱状图中最大的矩形 教程视频:https://www.bilibili.com/video/BV1Ns4y1o7…