半个月6次面试,终于进百度HR面了

今天和大家分享一下来自粉丝的面经投稿,他在最近半个月内疯狂的面试,光百度就约面了两个岗位,一共进行了6场面试,并且其中一个进到了 HR 面。

他的基本情况是这样的:统招本科,计算机相关专业,拥有八年的工作经验,目前处于离职状态,之前的薪资 20K+ ,期望薪资 25K+ 。

大家可以看一下他下面分享的面经的难度:

第一家:百度地图后端研发工程师

职位要求

工作职责

  • 负责百度地图POI数据中台的研发和数据体系建设,支撑千万级数据处理压力的高可靠系统研发工作
  • 负责POI数据建设与情报/特征/模型等层面的架构设计和工程实现,场景为大规模分布式存储、计算、数据挖掘应用
  • 探索研究大数据解决方案在POI数据处理和情报分析方面的应用,分析与改进现有系统
  • 负责地图部分用户端产品的研发和数据系统后台服务架构研发

职责要求

  • 计算机相关专业本科及以上,1年以上相关工作经验
  • 熟悉Linux及常见数据结构和算法,至少熟悉一种主流开发语言(Python/Golang/C++)
  • 对大数据处理和数据工程与分析有浓厚的兴趣,良好的团队合作精神和主动的沟通意识

一面

  1. 自我介绍
  2. 说一下IoT云平台的搭建,遇到的困难,怎么解决的

高并发,消息队列,分库分表,redis集群,将来支撑千万级上亿级(dns负载均衡,反向代理负载均衡)

对比了无服务和微服务的优势和劣势

半夜服务器告警,解决问题

主要对接国外第三方,遇到的困难

  1. 编程题
Go两个goroutine交替打印1-10 
//G1 1 
//G2 2 
//G1 3 
//G2 4 
//… 
//G1 9 
//G2 10

用两个channel读写数据就好了

长度10初始化都为0的数组,顺序填入1-10,因为中间一个数值漏掉了,填到最后发现数组没有填满,找出漏掉了哪个数字?
例如输入[1,2,3,4,5,7,8,9,10,0] 返回 6 

写出了O(n)的,说用二分查找可以写出O(logn),这个不是很明白怎么写

  1. 反问

公司的业务,工作时间,福利等

  1. 什么时候能来上班

看offer进度

二面(没后续了)

  1. 自我介绍
  2. 为什么离职

团队解散了,协议离职

  1. 说一下IoT云平台构建的实现以及技术难点

消息队列:数据倾斜问题,数据不丢,重复消费

redis:使用hash以及Pipline

数据库:增加索引,分库分表

这里聊了很多细节问题,根据业务来说这个东西

  1. 操作系统处理死锁的方法

信号量,共享内存(这块感觉还有别的可以说)

  1. 操作系统内存管理的方法

分页,分块,FIFO,LRU(这块感觉还有别的可以说)

  1. 会不会写python脚本

说写了爬虫,爬了百度,弹出了验证码

  1. Redis持久化

AOF,RDB还有混合持久化

  1. Memcache知道吗

多线程,不支持持久化(具体不了解)

  1. Redis分布式锁

加锁,解锁

  1. 登入linux终端,输命令很卡

top检查cpu使用,网络问题(在国内访问国外),内存,磁盘使用是否在临界区

  1. 使用shell统计文件中top3的ip地址

没搞定,就说了grep,awk的一些命令

  1. 磁盘满了写不进去,排查命令

df,du查看磁盘

  1. 找出文件夹中最大的几个文件,命令是什么

这块说有什么命令可以列出来,但是具体忘了

  1. 说一下ES和Redis的区别

ES是搜索引擎,redis是数据结构数据库,可以做很多事情比如消息队列,geo啥的

  1. 写代码
创建链表
1->2->3->4->5
输入2,让链表偏移
4->5->1->2->3

写出来了,但是有bug,说是看一下代码风格,说一下写题目的思路

  1. 有没有offer

暂时还没有

  1. 职业规划

深耕服务端,了解架构,有机会也可以走向管理

  1. 反问
  1. 介绍了一下业务
  2. 培训,晋升
  3. 福利

第二家:百度文库研发部_服务端研发工程师

职位要求

工作职责

  • 负责百度文库的服务端研发工作
  • 编写核心代码,承担关键技术攻关任务
  • 参与服务架构设计,独立完成业务需求分析和设计
  • 对现有服务框架的升级、性能优化和稳定性建设
  • 推动技术与产品创新,建设良好的技术文档,帮助团队理解需求和技术架构,提高开发效率

任职资格

  • 计算机或相关专业,本科及以上学历
  • 两年以上 Golang/PHP/Java/Python/C++ 项目开发经验,有良好的编程习惯
  • 熟悉 Linux 操作系统和开发环境,有良好的数据结构、算法基础和系统设计能力,熟悉技术领域的通用组件如Mysql、Redis,Kafka,ElasticSearch等,有较深的理论研究和实践经验,并能落地到业务中
  • 熟悉web service相关技术,如高并发处理、存储与缓存,RPC、消息队列等技术
  • 有支付、会员、文档智能化等系统相关研发设计经验者优先
  • 有较好的团队合作精神,较强的沟通能力,主动性强,有很强的自我驱动力
  • 有较好的产品意识,主动关注产品效果并积极推进产品方案的落实与完善

一面

  1. 自我介绍
  2. 还会别的啥语言吗

会的啊,python后端,java写android,C/C++配合Lua开发固件

  1. go的竞争问题

比如说map,多个协程访问,可以加锁。

atomic包的CompareAndSwapInt32

编译器使用 race 发现竞争问题

  1. map解决竞争还有什么办法

加读写锁,使用sync map

  1. sync 包还有哪些东西?

mutex,RWmutex,waitGroup,Once

  1. 看一段代码,说下输出。
package mainimport ("fmt""sync""time"
)type Person struct {name stringage int
}var p Personfunc update(name string, age int) {p.name = nametime.Sleep(time.Millisecond * 200)p.age = age
}func main() {wg := sync.WaitGroup{}wg.Add(10)for i := 0; i < 10; i++ {name, age := fmt.Sprintf("nobody:%v", i), igo func() {defer wg.Done()update(name, age)}()}wg.Wait()fmt.Printf("p.name= %s\np.age=%v", p.name, p.age)
}

输出结果不一定,go的协程执行顺序不好说

name和age不一定相等,因为有sleep

加锁可以解决

  1. chmod 644什么意思?

给权限,4读,2写,1执行

文件所有者,文件所属的组,其他的用户

  1. Linux 常用命令有哪些

cd,ls,ps,top,
lscpu,cat,touch,mkdir,
grep,awk,
df,du,
ifconfig,netstat,ip addr

  1. docker的Cgroup有哪些作用?

限制cpu和内存资源用的

  1. docker compose是用来做啥的?

使用yaml文件,管理启动和停止多个容器用的

  1. 写sql平均年龄大于35的部门id,dpid是部门id,cid是员工id,age是员工的年龄

SELECT dpid

FROM employees

GROUP BY dpid

HAVING AVG(age) > 35;

  1. 说一下mysql的慢查询,怎么排查?

打开慢查询的日志,设置慢查询的超时时间,用explain显示执行计划

将type如果是all或者是index优化到range会比较好

索引优化

  1. 索引是什么样子的时候type会是range

不是回答的很好,应该是索引的范围扫描

  1. type还有哪些取值

ref,system,这块没答全

  1. 说一下最左匹配

老问题,(a,b,c)顺序问题

  1. 联合索引a,b,c 查询语句 WHERE c = 1 AND b IN (1, 3) AND a = 3;用的索引长度

这块a肯定是能有的,b是in不知道能不能用,得拿sql试试

  1. redis排名怎么用,取前10的命令

Zset

  1. 说一下布隆过滤器,原理,问题,优化

bitmap实现,多个函数落在里面,如果说在,不一定在,如果说不在则一定不在,优化的话,增加bitmap的长度,设置函数的个数

  1. 缓存穿透,怎么解决

既不在redis,也不在数据库。使用布隆过滤器过滤,加载空的key,业务层增加参数校验,使用分布式锁减少访问数据库

  1. redis分布式锁如何实现,zoomkeeper怎么实现

redis知道,zoomkeeper不太懂

  1. redis哪个版本加入了setnx带过期时间的

谁记这东西啊(2.6.12)

  1. 常用设计模式有哪些,都是干啥用的?

工厂,抽象工厂,单例,创建对象用的

责任链,gin和goframe的中间件调next用的

装饰器,python中用来包装函数,然后可以用来计时

适配器,统一外部接口

观察者,回调函数实现异步

  1. 哪里人?目前薪资多少?
  2. 用两个go协程交替打印1,2,3,4一直到100

这种类型的题目都没啥好玩的,不过用的是他们的编辑器,没啥提示,有bug但是最后解决了

  1. 反问
  1. zoomkeeper如何实现分布式锁,刚刚没答出来:他说自己去搜
  2. 业务有啥:说文库,ai生成内容图表,脑图啥的,等过来就知道了
  3. 上班时间:10点到晚上9点(这么卷!!!)

二面

  1. 自我介绍
  2. 其他的语言会不会

会的啊,python后端,java写android,C/C++配合Lua开发固件

  1. go逃逸分析

变量类型不确定,有全局变量引用,给slice分配的长度太大,给slice分配的长度不定

使用gcflags case by case 分析

  1. gin的http方法怎么实现的

这快没看,然后就说了下gin中间件的实现

  1. gin框架的tag

说了有json,然后说gin的不太熟,但是goframe的有 method方法,v参数校验,dc描述。

gin应该和goframe差不多

  1. channel了解吗

说了数据结构里面有哪些字段用来干啥的,说了一下channel的一些用法以及注意事项

  1. sync包有哪些东西

mutex,rwmutex,sync.map,sync.once,sycn.pool
说了一下他们是干啥的

  1. http状态码

1XX,2XX,3XX,4XX,5XX

  1. http状态码499

这个没碰到过(查了一下是Nginx定义的)

  1. redis的使用,数据一致问题

原子操作,多个操作可以用lua脚本,也可以用事务,事务用起来比较坑,回滚啥的

  1. Mysql innodb为什么主键推荐用自增

底层B+树,不自增的话插入数据容易导致节点分裂和合并,影响效率

  1. mysql删除数据,容量会不会变

不会变,删除只是标记为删除,要把表删了才全删了,因此删除不会释放磁盘的空间

  1. mysql表设计优化

先说了表的字段数量优化,再说表的字段类型优化,尽量选容量少的

然后引申到mysql的优化,语句优化走索引,参数优化buffer_pool_size,锁超时优化,连接数优化

根据业务优化,读多写少加缓存等

  1. 微服务优缺点

优点:服务拆分,职责分明,语言不限,部署有工具docker,k8s,多云端部署

缺点:需要运维关注,不熟悉业务排查问题慢

  1. 微服务排查问题的方法

根据请求id,链路追踪,log记录,普罗米修斯监控,grafana告警,架构文档梳理

  1. 迭代升级频繁方案

灰度,内测用户,实时监控状态,渐进式的开放,出问题回滚还是修复,看业务影响

  1. 说做的挑战的项目

消息队列:数据倾斜问题,数据不丢,重复消费

redis:使用hash以及Pipline,bigkey拆解

数据库:性能优化,分库分表

  1. 写代码
  a:="baissbaidubbbaidu"b:="baidu"c:="baissbb"将a中出现的b去掉,输出的就是c了

用了两个for循环就搞定

  1. 反问
  1. 业务有啥:文库ai gc相关的
  2. 上班的时间:10点到晚上9点(看来是真的忙,这接近12小时了啊)
  1. 有后续的话,3天内就有结果了,感觉我挺不错的

三面

  1. 自我介绍
  2. 离职的原因
  3. 为什么想来北京发展
  4. 为什么毕业了想去深圳
  5. 做项目的时候合作的比较愉快的经历
  6. 有挑战的项目是哪个,如何克服挑战的
  7. 说一下有挑战的项目的一个业务的逻辑
  8. 第一份工作的离职原因
  9. 说一下python和go的一个使用上的区别
  10. 说一下团队的大小,以及在团队中承担的角色
  11. 说一下如何学习go的
  12. 写go的时候遇到了哪些问题,怎么解决的
  13. 如果出现和同事有争议的事情,该如何解决,如果同事一直坚持怎么办
  14. 领导做出了错误的决策怎么办
  15. 反问
  1. 工作内容,业务
  2. 工作时间
  3. 团队的人数,入职培训

HR面!

期待他的好消息。

欢迎关注 ❤

我的文章都首发在同名公众号:王中阳

需要简历优化或者就业辅导,可以直接加我微信:wangzhongyang1993 , 备注:XXX平台名称

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用钉钉Oauth2授权登录Odoo配置

准备工作 需要用到的模块: Odoo/auth_oauth OCA/server-auth/auth_oidc 因为钉钉的Oauth授权流程比较特殊,需要继承改造res.users上的几个方法 models\res_users.pyclass ResUsers(models.Model):_inherit = "res.users"dingtalk_userid = fields.Char(Dingtalk Us…

推荐一款Win11主题WPF UI框架

最近在微软商店,官方上架了新款Win11风格的WPF版UI框架【WPF Gallery Preview 1.0.0.0】,这款应用引入了前沿的Fluent Design UI设计,为用户带来全新的视觉体验。最近在微软商店,官方上架了新款Win11风格的WPF版UI框架【WPF Gallery Preview 1.0.0.0】,这款应用引入了前沿的…

图论总结

重链剖分 树上修改,查询路径信息之类的 最多经过logn个轻边, 这样可以更好地划分 注意点: 修改边权可以转化到点权上面: 注意lca的位置不要修改, 应该是update(id[y]+1,id[x]) 例题: 轻重边: https://www.luogu.com.cn/problem/P7735 判断是不是重边,信息转化到点上面,…

logstach 8.6.2输出到mongo 6

logstach官网下载:https://www.elastic.co/cn/downloads/past-releases 1、查看logstach有没有自带输出到mongo的插件,到logstach安装目录/bin下cd /data/logstash-8.6.2/bin/ ./logstash-plugin list --verbose2、没有自带输出到mongo的插件就安装./logstash-plugin install…

模拟集成电路设计系列博客——8.4.3 数控振荡器

8.4.3 数控振荡器 在之前的章节中,我们介绍了一种简单得基于LC振荡器得数控振荡器方式,通过开关控制谐振电路中的电容值实现数控频率方式。 另一种更直接的利用模拟PLL中的LC振荡器VCO的方式是直接通过DAC的方式将数字码转换成模拟量,然后对电容施加控制。值得一提的是这种压…

android 性能优化 -systrace

简介: Systrace允许监视和跟踪Android系统的行为(trace)。它会指明系统都在哪些工作上花费时间、CPU周期都用在哪里,甚至可以看到每个线程、进程在指定时间内都在干嘛。它同时还会突出观测到的问题,从垃圾回收到渲染内容都可能是问题对象,甚至提供建议的解决方案。但是不能…

故地重游

近来,种种原因让我总觉得对任何事都失去了兴趣,整个人犹如失去灵魂的躯壳一般。一切都在往前走,但我想更快一些却无能为力,比较稳定的环境也就注定了过程的时长,又没有改变当下的勇气,每每思量心猿四起,无法自拔。本诗在故地重游(初到京第一工作地)所做,一步步走在那…

pip安装问题记录

【问题1】 pip安装某第三方库的时候报错:metadata-generation-failed解决办法: 1、确保你的pip和setuptools是最新版本:pip install --upgrade pip setuptools 2. setuptools版本不适配,不能进行构建: pip install --upgrade setuptools==57.5.0

P2286 [HNOI2004] 宠物收养场 题解

P2286 [HNOI2004] 宠物收养场 题解 set 做法P2286 [HNOI2004] 宠物收养场 set做法 题链\(_{洛谷}\) \(_{题库}\) 思路 一眼查找前驱后继的题。注意到一句话:那么用 set 就没有什么阻碍了,方便又快捷。 题意很简单,若宠物多则查找与人需求最接近的上下两个值,人多则找与宠…

Dijkstra算法理解-无人机路径规划

1、理解 Dijkstra算法是路径规划算法中非常经典的一种算法,在很多地方都会用到,特别是在机器人的路径规划中,基本学习机器人运动相关的都会接触到该算法。 Dijkstra算法本身的原理是基于贪心思想实现的,首先把起点到所有点的距离存下来找个最短的,然后松弛一次再找出最短的…

Three.js

右手坐标系 //每秒转一圈 const clock = new THREE.Clock() function tick() {const time = clock.getElapsedTime()mesh.rotation.y = time * Math.PI * 2 //一秒转一圈renderer.render(scene, camera)window.requestAnimationFrame(tick) } tick()const client = {x: 0,y: 0 …

关于古书介绍上“单鱼尾”是什么?

在阅读一些古书时,读的往往时某些版本的综合刊定版,而介绍有关原版时,会出现这个词语“单鱼尾”或者双鱼尾,这是什么意思呢? 搜索发现,原来古书也不是一页页,单页的,而是双页印刷,然后中间折叠,装订成册的。而折叠的具体位置在哪呢?就由鱼尾型标志标明,显然鱼尾最凹…

数据特征采样在 MySQL 同步一致性校验中的实践

本文介绍了当前DTS应用中,MySQL数据同步使用到的数据一致性校验工具,并对它的实现思路进行分享。作者:vivo 互联网存储研发团队 - Shang Yongxing本文介绍了当前DTS应用中,MySQL数据同步使用到的数据一致性校验工具,并对它的实现思路进行分享。 一、背景 在 MySQL 的使用过…

什么是容器镜像?

镜像是容器的模板,容器运行需要借助镜像来装载环境。镜像描述了容器所需的运行时环境,我们以Docker镜像为例来了解镜像到底是什么。Docker镜像实际上是由一层一层的文件系统构成,这种层级的文件系统称为UnionFS。UnionFS文件系统是一种分层、轻量级并且高性能的文件系统,它…

字符串相似度算法完全指南:编辑、令牌与序列三类算法的全面解析与深入分析

在自然语言处理领域,人们经常需要比较字符串,这些字符串可能是单词、句子、段落甚至是整个文档。如何快速判断两个单词或句子是否相似,或者相似度是好还是差。这类似于我们使用手机打错一个词,但手机会建议正确的词来修正它,那么这种如何判断字符串相似度呢?本文将详细介…

Avalonia应用在基于Linux的国产操作deepin上运行

本文介绍了Avalonia应用如何在基于Linux的国产操作deepin上运行。deepin系统介绍 deepin(原名Linux Deepin)致力于为全球用户提供美观易用,安全可靠的 Linux发行版。deepin项目于2008年发起,并在2009年发布了以 linux deepin为名称的第一个版本。2014年4月更名为 deepin,在中…

java中的测试片段和include控制器使用

1.作用 可复用,提高测试计划的可维护性和效率。 2.具体使用 2.1在jmeter中将写好的一组请求保存为测试片段,保存到一个jmx文件 2.2新建一个线程组,添加include控制器,选择刚刚保存的测试片段文件即可将刚刚的测试片段重用。

splay-前驱后继

在平衡树中,经常会让我们查一下一个值的前驱或后继是谁,写两个函数就非常麻烦好吧,所以这里咱们用一点小技巧来让他变 成一个函数(这里的前驱后继定义时包括与本身相等的值) 代码点击查看代码 int nxt(int k){if(!m[rt].size) return 0;int root=rt;while(k!=m[root].val&…

softlockup detector

1 简介 从内核稳定性问题的角度来看内核安全,是基础,也是必备技能。很多时候,一个内核稳定性问题,就是造成系统安全的罪魁祸首。 当出现异常死锁、Hang up、死机等问题时,watchdog的作用就很好的体现出来。Watchdog主要用于监测系统运行情况,一旦出现以上异常情况,就会重…

drduino串口通信中文乱码

​ 第一次使用 Arduino 板学习时,遇到了串口工具接收乱码的问题。 最初认为可能是数据位或停止位设置不正确。当前设置如下:波特率:9600 数据位:8 校验位:无 停止位:1在 Arduino 代码中使用 Serial.begin(9600) 进行初始化。 Serial.begin(9600):- 波特率:9600- 数据位…