本人 27 岁,坐标上海,工作后端开发五年,计算机专业 [软件工程] 本科学历 [普通二本] ,期间从 PHP 转成 golang 。
其实这个帖子应该接到四月份写的另外一帖: https://www.v2ex.com/t/665049#reply39
四月份面试了一波大厂,发现自己是真的有差距的。所以从四月份开始给自己制订计划。因为大厂必考算法和网络相关的,所以把大学早就丢掉了的《计算机网络》和《数据结构》重新拿出来,对着 B 站视频学了一遍。这里要说明下,数据结构没怎么学懂,就是把常用的算法和数据结构概念撸了一遍(面试这块其实也不是问的太多,然后就是去刷 leetcode 算法题),大概刷了 30 道吧。然后就是 MySQL,Redis 。等到自己都过了一遍基础知识之后,就开始了我的面试尝试了。这里有个方法我自己试下来还是蛮有用的,就是先投一些中小型公司,看看市场要求,边面试边总结,边回去看相关知识点,做到会的要精通,不会的掌握基础概念,等到这些小公司都能顺利拿到 offer 之后,就开始去面那些大一点的公司(比如 蜻蜓,ucloud 等)。这里面我走了弯路,浪费了几个大厂的机会(字节跳动和叮咚买菜),因为很多公司都有保鲜期的。 最后,等到自己感觉知识点都 ok 了之后,开始去投递那些大厂(百度、腾讯)。 我半年下来,前前后后大概面了 60 多家吧,其中 B 站三次,百度 4 次,腾讯 5 次。反复查漏补缺。中间有几次都自闭了,但想着不能这就这么算了,毕竟花了这么多时间。总得来说,结果是好的。
最后附上百度三面题目,具体记不清了 [其实都是基础]
一面: 自我介绍; mysql 索引 mysql 锁类别--乐观锁悲观锁 mysql 事务隔离级别 tcp 三次握手 io 多路复用机制 [ select 、poll 、epoll ] redis 常用数据类型 网络七层协议 算法题: 青蛙跳楼梯---菲薄那次数列 将两个有序数列合并
二面 [比较多的问的是如何优化自己目前的系统,有没有去优化过,思考过] : 自我介绍; 根据项目点问; HTTP 状态码; MySQL 乐观锁,悲观锁意思和应用场景 [共享锁和排它锁] ; 消息队列 [ rabbitmq ] --如何确保消息不丢失等; 负载均衡机制 [轮询、哈希等] netsate 等用法; 算法题: 给定二叉树,两个节点,找出共同的父节点 lru 算法;
三面 [技术经理面] [问的都是发展和态度]
tcp 三次握手; 负载均衡算法; 自我介绍; 自身发展规划; 最看重什么; 最大的压力来源是什么; 自身优势是什么 [为什么能够契合这个岗位] ;
B 站三面:
一面 [技术面基础] 根据我写的简历点问我(这里有坑,就是自己不熟悉的别写太多); tcp 三次握手; syn 攻击; MySQL 索引 golang 调度模型 golang 传值和传引用区别,为什么,优缺点,怎么选 golang defer 用法 golang for-----range golang context 进程、线程、协程区别; 二分查找;
二面 [直接写了一个算法] 火车站卖票,四个窗口、10000 张票,利用 golang 实现;
三面 [ HR 小姐姐聊]
经历,期待、优势、规划; 期望等;
总的来说就是:NO pain,NO gain,坚持就是胜利,共勉!