在校生必看! 安妮的2023:前进 | 实习 | 工作
前言
下面这篇博客是笔者的2023年总结,记录一下这一年的具体经历,审视自己身上的不足,记录一些感悟还有一些我的碎碎念,最后附有面经,想要看面经的同学可以直接跳到最后。
bg:24届四非本科,大二确定方向开始学习go后端。
工作
找实习
从第一家小公司离职修整了几天,解决了学校的考试之后,我就开始了新一轮的找实习历程,因为我知道在学历不出彩的情况下,必须要通过大厂实习经历作为背书才能在市场上稍微具备不错的竞争力。
于是在一月居家开始了新一轮的复习,并在中旬的时候(年前)开始了新一轮公司的投递,除了大年三十没复习,其他时间基本天天都在看八股,写代码,刷算法。我还是挺讨厌算法题的,感觉现在算法也变成了一种另类的八股,常考的就那些,还是记题解的成分偏多,而从没见过的mid题做出来的几率还是不高。
另外,感觉平常在家里的学习效率确实不高,建议远离舒适区,布置一个固定的学习环境。
面试情况如下,拿了莉莉丝和百度两个offer,最后选择去了百度,因为背书和方向都更符合我的预期一点。
拿到offer之后还是开心了几小时,毕竟是拿到大厂offer一直是我大学的目标,那一刻觉得觉得自己的努力得到了认可,几小时之后激素水平掉下来了,也没有什么特别的感受,我想人生也许就是这样吧,真正实现抱负的时候也未必有多快乐,我们更需要关注和享受的反而是追逐梦想的经历,路上的那些经历才是最美好的回忆。
之后在二月飞回学校处理完琐事之后就立马飞去了北京,开始了新一轮的实习经历。
百度经历
在百度从二月末实习到五月末,学到的东西还是挺多的,那段时间进步也非常快。入职之后和组长进行了一次one by one,表达了自己想快速进步的想法,之后花了几天熟悉了一下环境,就开始正式开发了,主要还是用go重构之前的老代码,接触到了很多之前没有接触到的东西,比如图片、视频、各种组件,还蛮有意思的,因为对自己要求比较高,想多学点东西,所以都是向正式员工看齐的,能自己解决的东西就自己解决,各种内搜、google、gpt什么的都用上,实在解决不了的问题就会整理一下和mt对齐,每天的日报也有在很认真的写,review一下自己的不足和进步,我认为这是一个很不错的反馈方式,记录下自己的错误(技术、业务、架构、沟通等等),尽量不在同一个地方摔倒两次。
不得不说百度的基建还是很好用的,开发规范也做得比较好。在百度也对整体的开发流程有了更深刻的认识,需求评审 -> 技术评审 -> 排期 -> 开发 -> 单测 -> CR -> PR -> 测试 -> 发布的这个全流程非常规整,这是在小公司很难接触到的。
当然,在边实习的时候面试也没有落下,当时春季实习开展的如火如荼,我也顺便投了一些,大概因为学历的原因,有一些大厂没有给面试机会(美团阿里就是在说你们),最后是拿到了深信服、腾讯云智和腾讯某BG(怕被定位就不说了)的实习offer,对比了一下当前工作还是觉得腾讯更好点,所以决定五月底入职腾讯。
回过头看看,百度这段经历给我带来了什么呢?
当然,有利就会有弊。
腾讯经历
五月底从百度离职之后,立马入职腾讯。这是笔者大学四年的目标,但是收到offer的那一刻真的非常平淡,心境没有一丝波澜,可能是因为在百度的几个月已经让我对大厂祛魅了吧,也许所有境遇都是围城,羡慕互联网大厂的高薪,却看不到大厂的工作强度;羡慕银行的稳定,却看不到各种无意义的加班和端腔作势的上级;羡慕公务员的轻松和身份;却看不到公务员福利的下降、工作务虚以及不自由。笔者一直觉得:生活是自己的,学会享受当下、苦中作乐,远比追求遥不可及的上岸有用,因为上岸大概率也只是从一个坑跳到另一个坑。
面腾讯的时候和面试官聊的非常开心,感觉大家都有在认真搞技术,而且做的方向比较有深度,是我一直想做的方向,大家看笔者最近的博客也知道笔者在深挖K8S了,相比于CRUD代码,我更喜欢做一些有难度、有深度的事情。
腾讯组里的氛围很好,同事都比较友善,上级也很不错,没有什么业务上的压力,工作时间也没有特别长。在这里也学习到了很多之前没有接触过的东西,比如前端、K8S、Python,自己也做了一些需求,但是离自己独立开发还是有一定距离,因为项目的历史包袱比较重,然后技术栈基本之前都没有碰过,全是从0开始学习。并且因为同时也在抽时间复习秋招,投入到实习产出里的时间没有那么多,所以我对这段经历的产出还是很不满意的,感觉有点在混日子,没有表现出自己真正的实力,也犯了一些失误,明年入职了再继续努力吧。
实习到八月进行答辩,八月下旬告知转正成功,收到转正通知之后,综合评价了一下,因为这份工作的方向、强度、薪资、成长性等各方面我都很满意,仔细想了一下,除了字节抖音tt、腾讯wxg这种核心业务,就没有比我转正的这个更好的offer了,所以就没有再继续投递了,也没有再继续准备面试了。
下面是秋招投的一些公司
之后一直实习到十一月学校有事就离职了,明年还会继续努力的~ 关于工作就讲到这里吧。
爱情
在三月的时候和我爱人确定了关系,到现在也已经在一起八个月了,一起经历了很多,她是一个很好很好的女孩子,当然因为异地等各种各样的原因中间也有过很多争吵,不过幸运的是我们一起克服了这些矛盾和争吵,异地的距离也没有将我们分开。仔细想想,功名利禄并没有那么重要,拿多少offer、赚多少钱都比不上珍惜眼前人,最后希望明年可以结束异地,在一起很久很久。
生活
上面是我2023年的计划表,除了减肥失败以及秋招没有能成为offer收割机,其他的基本都实现了。在2023年我建立起了运动和阅读的习惯,并且也培养了一些兴趣爱好,比如骑行、摄影等等,比起2022的一昧埋头努力,2023我学会了及时给自己正反馈,做得好就适当满足自己,累的时候就远离消耗自己的事情,好好休息;身体不对劲的时候就运动,思想不受控的时候就多静坐、冥想,这才是持续发展之道。
希望明年能成功瘦身,如果成功的话会和大家分享经验的哈哈哈,同时把更多的时间精力花在爱的人身上,亲人、爱人、朋友,工作和事业真的只是生命中占比很小的一部分,让爱的人开心才是第一要务。
面经
百度面经
一面
技术
1.自我介绍
2.上一家实习项目相关
3.slice和array的区别
4.slice在append的时候发生了什么
5.context源码
6.context的应用
7.MySQL的四个隔离级别
8.什么是幻读?幻读是怎么解决的?
9.索引的优点
10.主键索引和非主键索引的查询会有什么区别?
11.设置索引的时候按照什么规则去设置
12.Redis数据类型有哪些
13.AOF说一下吧
14.RDB说一下
15.AOF和RDB的优缺点
16.常用的Linux命令
17.用Linux写一个查询热点IP(出现次数前十)的命令
18.平衡二叉树
19.岛屿数量
Q&A
1.面试表现
2.岗位内容
3.面试流程
二面
技术
1.自我介绍
2.深挖实习项目
3.MySQL优化的一些方案
4.设计一套存储吧
5.详细说说刚刚的MySQL优化
6.你刚刚说尽量不要使用select *,知道原因吗
7.MySQL的一些存储引擎知道吗
8.Memory用过吗
9.int(n)的n是什么意思
10.创建表的时候能不能不选择主键呢,如果不选择的话会有什么问题呢?
11.MySQL隔离级别
12.联合索引知道吧,index (a,b,c) 如果where b=1 and c =1 能用上索引吗 ; where b=1 and a=1呢
where b=1 and a>1 呢?
13.Redis用在项目中过吗?拿来做了什么?
14.Redis的数据类型
15.Redis主从同步是怎么做的
16.Redis存在内存里,如果崩溃了数据就全没了,怎么解决的
17.详细说AOF和RDB
18.AOF和RDB合体知道吗
19.有一些key都有相同的前缀,比如abb_xxx,用什么命令全拉出来
20.Redis怎么实现一个分布式锁
21.常见的HTTP Code
22.HTTP和HTTPS的区别
23.Nginx的惊群听过吗
24.打开ide 写一个大数相加
30.写一个快排
Q&A
1.表现怎么样
2.什么时候出结果
3.这个岗位具体是负责什么内容
4.你现在大三?没课吗?能实习多久?
三面
实习经历
1.自我介绍
2.你现在是大三,课程还多吗?
3.你专业课成绩怎么样
4.为什么只在上家公司做了三个月呢?
5.上上公司是老师的公司吗?是全天实习吗?
6.上家公司你所在的组的人员构成,还有做的东西是什么?
7.描述一下你之前做的一些事情
8.可以实习多久呢?
9.有考虑去考研吗?
10.为什么不考研而是直接参加工作?
下面的项目设计附上答案,可能答得不是很准确,但是思路应该没什么大问题
项目设计
11.一个餐馆有两个痛点:1.厨师没有一个线上点餐系统 2.现在的方案是按桌上,先来先到,该怎么设计,考虑权重,让所有客户都满意
(答案:首先用Redis的Zset来做,score权重由1.客户点菜的数量 比如有一桌是10个菜一桌是5个菜 10个菜就应该更优先 2.每一道菜需要的时间 比如3Min能做好的菜比5Min能做好的菜更优先 第三点是被提醒才想起来的 就是下单的时间也需要考虑进去 先下单的订单更优先)
12.score的权重计算公式应该怎么设计
score=菜数*n%(越大越大)+下单时间*k%(越早越大)+每道菜的时间*j%(越快越大)
13.如果让你来摸索一个合理score的计算公式,你打算怎么入手
主要还是从客户反馈来入手,给客户发问卷,填完问卷送菜品/小礼品,修改对应的权重公式
14.对于流量比较大的系统你该怎么设计 要注意的点:1.流量控制 2.数量要精准不能超卖
(答案:
1.流量控制: 上消息队列做流量消费+服务熔断+服务限流
2.超卖的问题:多级缓存的情况就尽量先更新数据库 再删缓存,如果不一致了也可以订阅binlog还有重试的机制进行兜底 如果只有数据库,那就可以上事务进行操作)
15.小红和小明同时下单,只有一个MySQL,怎么防止超卖
(悲观锁和乐观锁的方式 悲观锁就是select.... for update的方式直接把记录锁住,问题就是并发量很低,线性执行 乐观锁就是先无脑更改字段,后面再来检查是不是超卖了 乐观锁没说好,我想的是在业务层实现乐观锁,然后想了一个不优雅的方式,被面试官指出来了问题,面试官提醒之后,其实直接在MySQL层采取MVCC的思想,加上一个version字段,通过快照比较记录的创建版本号和删除版本号)
16.系统的HTTP接口很慢,怎么排查
(1.浏览器看请求 是网络的时间长 还是server处理时间长)
(2.看业务日志 有没有记录)
(3.看操作系统 是否内存不够用 OOM CPU是否被占用)
(4.从中间件入手 比如Redis是不是崩掉了 MQ是不是崩掉了 有没有阻塞的情况)
(5.代码 看是否有频繁的线程切换 或者多重循环 死循环等等)
Q&A
17.有其他offer吗
18.百度是你的意向公司吗?
19.为什么百度是你的意向公司?
20.你对实习工作有什么要求吗?
21.如果给你发offer的话最早入职时间?
22.这是日常实习还是暑期实习,有转正吗
23.面试表现
24.面试结果什么时候能出
腾讯面经
一面
技术
1.自我介绍
2.实习项目
3.异步调用是什么
4.MQ如何保证数据不丢?
5.数据的生产消费会涉及到顺序吗
6.消息如果产生积压了怎么办?
7.为什么业界推荐kafka
8.Go重构PHP的时候碰见过什么问题
9.如何确定和定位问题
10.语言方面用的是Go吗
11.map使用的时候得注意什么
12.Go定义struct 有各种各样类型的数据 定义的时候顺序对后期的使用有没有影响? (内存对齐)
12.Go的GC
13.说一说wg
14.linux用的多吗? 说点命令
15.tcp玩过吗? 怎么解决粘包
16.能实习多长?什么时候来
Q&A
17.面试表现
18.岗位职责
二面
1.自我介绍
2.为什么要出来看机会呢?
3.Linux相关: 如果给你一台纯命令行的Linux机器 你要先看哪些指标?该怎么看
4.top怎么看任务的磁盘占用率
5.CPU使用率是怎么得出来的
6.top怎么看哪个进程在哪个核心上
7.top有一个指标是buffer/cache 你知道在Linux中buffer 和 cache有什么区别吗
8.深挖dns查询过程
9.深挖进程、线程、协程,结合理论、Linux内核实现、Go实现来答
10.深挖GMP
11.你刚刚说到了锁 Go有几种锁 适用场景分别是什么?
12.map和struct有什么区别 (这两玩意有什么相同点吗)
13.深挖Go内存分配和回收 (三色GC+逃逸分析+堆栈底层 + 指针、值)
14.设计一个整个的go的可执行程序 优雅处理panic 你怎么设计? main函数也可能出现panic
15.如果有很多http请求出现了time_wait和close_wait状态,可能是什么原因,怎么解决?
16.你搭过虚拟机吗?vmware这种虚拟机和docker虚拟机有什么区别?
17.它们各自的利弊?docker有什么弊端?为什么现在都在说k8s抛弃docker?
18.编排是什么?为什么k8s叫做容器编排而不是容器管理?
19.什么是云原生?
20.为什么说K8S是容器编排龙头,了解过其他编排工具吗?
Q&A
21.实习期多久
22.转正
23.面试表现
24.面试流程 后面有一轮老板面 我们这边要两三年才能上手
三面
1.纯问项目
2.K8S相关问题
结语
这就是笔者的2023,忙碌且充实,清澈但苦涩。希望2024能够更开心一点,顺利毕业,平衡工作和生活,成功瘦身,多陪陪爱的人。
记得一定要多陪陪爱的人。
#24届软开秋招面试经验大赏##实习##那些我实习了才知道的事#