介绍一下个人bg:普通211本,ACM省赛银牌和天梯国三,无实习经历,两个项目“acwing的springboot项目和字节青训营的项目”,今年暑期实习共拿到字节和拼多多的offer。我相信社区中肯定有人和当初的我一样没什么项目经历,acwing的这个springboot项目想用又不敢用,或者不知道怎么用的。为此,我想分享一些我的看法。
首先,能不能用?如果就实习而言,我的答案是可以。其实我觉得我们可以不用太关注一个项目是否烂大街,因为即便是到现在依旧可以看到各种用“外卖、点评、商城”的同学拿到offer,这里面有名校的也有背景一般的,项目包装来包装去无非就那样,面试官依旧看得出来,更多的我觉得是你能否对你自己的项目有独特的见解和思考。“学生的项目大多都比较demo,我们更看重的是他们的思考和基础水平”这是pdd面试官的原话。
再聊聊如果用这个项目该如何准备。首先,我们可以想想这个项目能有什么亮点和难点。客观来说,这个king-of-bots项目确实太demo了,如果你想面试时有的聊需要自己去扩展别的点。先给大家看看我的简历是怎么写的:
可以看到我主要还是功能层面的一些扩展,但其实可以把视角打开,我们可以假设自己的项目到真实的线上环境面对高流量时会遇到什么问题,比如匹配对战时对方突然掉线了你要怎么处理?如何处理重连,重连后是否要恢复现场?如果流量较大时如何应对成千上万的连接?如果单台机子处理能力有限我们水平扩展,目前的king-of-bot项目会有什么问题?要做什么修改?可能有同学会问,我这个bot项目哪会做到这么夸张,真上线qps可能也就个位数,哪需要考虑什么高并发高可用啊?确实,你可以不这样实现,但面试官他就是喜欢看你对着这种场景的思考,看你能否给出合理的方案。ok,当我们明确了项目的亮点和难点后就是运用star法则将它给表述清楚然后写进简历里,我的建议是可以把对项目有关的介绍用文档给它写下来然后背一背,这样通过文字输出的方式可以帮你捋顺思路,面试的时候也能更加清晰的表达出来。最后就是要重点准备项目中可能涉及到的八股了,这块见仁见智,比如你用到了WebSocket,那可能会问WebSocket连接的建立过程、WebScoket的消息组成、如果要支持成千上万的连接必然涉及IO多路复用,那IO多路复用那一套是不是得背一背,其他也是类似的思路。