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

news2024/12/23 22:16:56

之前很多同学嚷嚷有没有社招经验,正好,我有个朋友去腾讯社招面试了。

他的面的是全栈开发岗位,工作两年,后端是Go,前端是 JavaScript + Vue。

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

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

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

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

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

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

一面

鹅厂一面是个小哥,应该是做后端的,基本围绕着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、随便写道题吧,我也不想考,但这是规定,力扣接雨水

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

反问

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

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

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

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

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

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

相关文章

Linux:用户和用户组

Linux系统中可以: 配置多个用户配置多个用户组用户可以加入多个用户组 Linux系统关于权限的管控级别有两个,即: 针对用户的权限控制针对用户组的权限控制 1、用户组管理 创建用户组,语法: groupadd 用户组名 删除用户组…

NLP——Summarization

文章目录 Extractive summarisationSingle-documentcontent selectionTFIDF MethodLog Likelihood Ratio Method对数似然比Sentence Centrality Method 句子中心法 RST Parsing Multi-documentContent selectionMaximum Marginal Relevance 最大边际相关性Information Ordering…

详细介绍ROS中通过shell文件依次启动多个launch文件

本文主要介绍如何在ROS中通过shell文件依次启动多个launch文件,并介绍如何在同一个窗口的不同选项卡中依次启动多个launch文件。 一、先来看一个简单的示例: #!/bin/bashgnome-terminal -- bash -c "roslaunch bringup racecar_gazebo_rviz_znc.la…

Word控件Spire.Doc 【其他】教程(9):从 Word 文档中提取 OLE 对象

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

NestJs 管道(Pipe)

🎄Hi~ 大家好,我是小鑫同学,资深 IT 从业者,InfoQ 的签约作者,擅长前端开发并在这一领域有多年的经验,致力于分享我在技术方面的见解和心得 🚀技术&代码分享 我在 94Code 总结技术学习&…

Windows下安装运行Kafka(最底下有遇到的坑与解决方法)

注:安装kafka需要提前安装Zookeeper 一、Zookeeper安装 1. 下载安装包 https://zookeeper.apache.org/releases.html 注意:要下载带bin的安装包 2. 解压并进入ZooKeeper目录,如:D:\onworking\apache-zookeeper-3.7.0-bin&…

ansible剧本模式特殊模块使用

Nginx安装剧本 ansible-playbook test1.yaml //补充参数 -k(-ask-pass):用来交互输入ssh密码 -K(-ask-become-pass):用来交互输入sudo密码 -u:指定用户 -e:命令行指定变量 --syntax-check…

【服务器数据恢复】HP LeftHand存储raid5不可用的数据恢复案例

HP LeftHand存储简介: HP LeftHand存储支持搭建RAID5、RAID6、RAID10磁盘阵列,支持卷快照,卷动态扩容等。服务端和客户端分别如下: LeftHand存储共有三个级别:物理磁盘、基于多个物理磁盘组成的逻辑磁盘(ra…

广东电信突发故障,手机没信号,对讲机的重要性再次凸显

当我们常用的通信网络出现故障时,就会面临全网瘫痪的情况,这个时候无线电通信就显得尤为重要了! 在6月8日下午两点左右,有多位广东电信的用户发现,自己的手机突然出现了打不出去电话,及上不了网的情况&…

Unity编辑器扩展-第四集-获取物体的方法

第三集链接:Unity编辑器扩展-第三集-添加按钮到组件菜单并且重置组件_菌菌巧乐兹的博客-CSDN博客 一、本节目标效果展示 1.改选中单个物体的名字 2.改选中所有物体的名字 3.选中了所有的物体,但只改第一层物体的名称 4.来个有用的(选中的所有…

Python进阶语法之列表推导式

Python进阶语法之列表推导式 Python列表推导式是Python中最有魅力的特性之一,它提供了一种优雅、简洁的方式来创建列表。这种语法不仅使得代码更加简洁,易读,而且在某些情况下还可以提高代码的执行效率。接下来,我们将一起深入探…

SpringBoot中@ControllerAdvice的三种使用场景

一、全局异常处理 代码示例如下: /*** author qinxun* date 2023-06-14* Descripion: 业务层异常枚举*/ public enum ServiceExceptionEnum {SUCCESS(0, "成功"),ERROR(1, "失败"),SYS_ERROR(1000, "服务端发生异常"),MISSING_REQUEST_PARAM_E…

使用同步信号量和互斥信号量解决生产者和消费者问题

生产者和消费者问题 生产者和消费者问题是一个经典的进程同步问题。在这个问题中,生产者不断地向缓冲区中写入数据,而消费者则从缓冲区中读取数据。生产者进程和消费者进程对缓冲区的操作是互斥的,即任意时刻只能有一个进程对这个缓冲区进行…

RTU电流采集上传

RTU电流采集上传 案例说明器件 物联网平台开发代码修改三元组 测试 案例说明 本案例使用HD1(RTU)检测外部电流,并将电流上传阿里云端。 压力传感器输出电流信号,读取压力传感器数值时需要检测电流大小。haasHD1(RTU)有两路ADC—…

深度学习应用篇-元学习[16]:基于模型的元学习-Learning to Learn优化策略、Meta-Learner LSTM

【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化…

[C语言实现]数据结构堆之《害怕二叉树所以天赋全点到堆上了》

🥰作者: FlashRider 🌏专栏: 数据结构 🍖知识概要:详解堆的概念、小根堆与大根堆的区别、以及代码实现。 目录 什么是堆? 如何实现堆? 代码实现堆(小根堆) 定义堆以及堆的初始化和销毁。 堆的插入 堆…

LeetCode·每日一题·1177. 构建回文串检测·前缀和

作者:小迅 链接:https://leetcode.cn/problems/can-make-palindrome-from-substring/solutions/2309940/qian-zhui-he-zhu-shi-chao-ji-xiang-xi-by-n3ps/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获…

最新水文水动力模型在城市内涝、城市排水、海绵城市规划设计中深度应用

随着计算机的广泛应用和各类模型软件的发展,将排水系统模型作为城市洪灾评价与防治的技术手段已经成为防洪防灾的重要技术途径。本次培训将聚焦于综合利用GIS及CAD等工具高效地进行大规模城市排水系统水力模型的建立,利用SWMM实现排水系统水力模拟。讲解…

【RH850/U2A】:GreenHills编译配置

GreenHills编译配置 GreenHills语法.gpj文件.opt文件示例GreenHills编译器在编译我们的文件时涉及它需要哪些文件及相关配置呢?带着疑问我们开始来梳理。 我们还是以具体示例来展开(硬件平台:RH850 U2A8) GreenHills语法 一般我们是需要查看它的帮助文档的,文档在哪里呢?…

CSP第二轮/NOIP 比赛注意事项

一、在哪里写代码 主办方会提前在桌面已在 E 盘根目录下建立以考生准考证编号命名的文件夹,考生应检查该文件夹名称是否正确(包括编号及大小写字母),如有错误须立即上报监考人员,由监考人员进行更改。确认无误后,考生须为每道试题再单独建立一个子文件夹,子文件夹名与对应…