血泪经验!在字节实习后,让我来告诉你项目怎么选?
救命!实习后的我才发现,网上教程里的 MVC 三层架构,在真实工程项目里连零头都算不上!有些部门甚至连写 SQL 的机会都不给,只能用封装 SDK 或依赖下游服务。这让我不禁想问:找实习的同学们,面对网上铺天盖地的项目,到底该怎么选才能在面试中脱颖而出?今天就把我的 “踩坑经验” 和盘托出,咱们好好唠唠!
选项目的三大黄金准则!
准则一:业务为王,技术为辅
你可以多思考你做这个项目是为了什么,假设你是一个视频,那么你的核心肯定就是Feed流、视频存储、自适应码流等等这种业务命脉,那你的核心就可以放在这部分上,而不是写什么使用 JWT 登录,什么双 token 无感刷新。这些东西放在哪个项目中都可以,可替代性太强了,就算你做了,也不要写在简历上,有的简历我觉得换个项目也一样可以使用这些技术。对于这个项目,你要自己去思考业务场景,或许你就会发现很多不一样的地方,或许就突然顿悟了为什么这个地方要这么设计,不要只跟着网上抄。还有一个完整的项目,业务场景太多了,是不是可以考虑很深入的一个模块,比如把点赞模块抽离出来,做成一个服务,这个时候就去想想怎么做成一个通用的服务,而不是只是你的单独一个项目可以用到。而且这样还有一个好处,就是在跟面试官聊的时候,你可以说说你的一个思考,为什么要抽出来作为一个服务,怎么怎么通用,或许面试官会觉得你很有工程思维。
准则二:业务复杂度要 “刚刚好”
因为太复杂的业务,不太容易在面试那么短的时间给面试官讲清楚,可能你这个项目真的很难,但是你讲不清楚,面试官可能会认为你的理解不深,所以讲不清楚(身边的朋友有这种情况)。当然不能太复杂,也同样不能太简单,太简单面试官都没什么好问的。选择一个有技术深度的项目可能会更加好,这个技术深度不是说中间件用的多,而是把中间件用的很恰当。比如说,你用消息队列,就是为了做一个异步发短信,那是不是有点大材小用了。当然这是个很简单的例子,我相信市面上的项目用消息队列一定有他的理由。但是你可以去评估一下合不合理,用其他的技术,不使用中间件能不能解决这个问题。
准则三:选会 “进化” 的项目
会“进化的项目”就是可迭代性强的项目,这里的迭代性强是什么意思呢?是指这个项目某些功能或者模块可以很容易的经历几次的迭代,这个迭代的过程就是非常好的跟面试官去聊的一个过程。面试时把迭代过程像讲故事一样娓娓道来,从发现问题到解决方案,这技术演进路线图就是你的加分利器!
一点点小建议
技巧一:“示弱式” 展示
别一上来就把项目吹得天花乱坠!一上来就把你这个项目最终的一个样子展现给面试官了,你要有一个和面试官聊的过程,所以你可以故意漏出这个功能很容易发现的缺点,然后面试官问的时候,顺势抛出 “压测后发现问题→调研方案→最终优化” 的完整闭环,这比直接炫耀成果更显深度!
技巧二:准备 “AB 方案”
面试之前对于重点功能,在简历上写一套解决办法,自己再准备一套,然后在面试的可以说说你调研了两套,但是考虑到......的原因所以选择了第一套。这种对比分析能力,哪个面试官看了不心动?
以上全是我摸着石头过河总结的干货!有没有大佬来聊聊不同看法?也欢迎 27 届的小伙伴分享选项目的独门秘籍!#牛客AI配图神器#