浙软夏令营卓越营员面试复盘
参加了浙软的面试,抽签抽到倒数第二个……在门口等了五个小时,非常热……
记录一下面试的内容,整理了一下经验。
整体来说老师的问题很有含金量很有启发性,没有一个水问题。
也暴露了我专业课准备不充分的问题。
之前完全没想到,会问这么多软件工程的专业问题,老师最感兴趣的尽然是济星云……
与我准备的内容大相径庭2333我只能尽量的说,感觉大错是没有的,个别题目回答不流利,让人感觉基础不扎实
面试内容复盘
刚开始是一个很和蔼的老师,笑呵呵的,坐在正中间:
-
济星云和你名字一样,是为什么
热场小问题,开玩笑,讲讲就过去了
-
ChatGLM和llama的区别
因为我讲了一下人工智能算法精英赛,项目做的是大语言模型
但是真的不会,我直接说不是做大语言模型方向的,确实不了解
然后换了一个最边上的老师,应该是负责软件工程的。
-
你的第一个项目,这个需求是真实的吗
这个项目就是夏令营做的《基于分布式数字身份的电影院售票系统》
电影院的背景是强行加上去的,本身就不是实际的需求
他讲了一些需求要从实际出发之类的问题,我频频点头2333
-
济星云中的需求是怎么来的
一开始是组内大家自己根据日常需要提出的,之后有反馈和建议渠道,收集+评审,确定新需求
追问,反馈渠道获得的需求都做吗?有什么其他的判断标准吗?(表述不太准确)
我总结一下就是说这样不会导致这个项目很臃肿吗?(其实我觉得济星云确实是个有点臃肿的项目……)
-
如何审查反馈渠道提供的需求
我回答,会再由产品组的同学审核一遍,判断是不是真的有需求,有没有必要加到我们的小程序里,有些也会做问卷征集意见。
老师追问,能举一个例子,有哪些需求被舍弃了
-
有哪些需求被舍弃了
我举了乌龙茶(实际上没有被舍弃,脑子一空)
我说是在上面进行课程评价、老师评价的一个需求
但是我们担心可能有同学会在上面发表一些过激言论,而且已经有了一些相同功能的产品
老师补充比如学校的什么官网,我说对
-
你觉得什么是软件工程
……扯了一点是一个保证项目稳定开发的方法(类似这样的)
-
济星云的团队有多少人
我说产品组和研发组都有30~40人,(可能其实还更多)
他就问这真的需要这么多人吗
我说这是一个给同学们练手的平台,没有什么成本……
他打断,交流也是成本,然后开始问下一个问题
-
如何管理团队,保证产品的开发效率和质量
我说一个大型团队会根据项目分成多个小组,每组七八个人,每个小组有一个负责人
他总结,一个两层的架构。追问,是如何分组的?
我说根据项目需求分组的,每一个需求会拉一个群
然后隔两三天定期进行沟通,跟踪进度。
质量的话最后会有一个星期的测试环节,由团队里的同学们进行测试。
他又追问:
-
上过软件测试的课吗?有什么软件测试方法
我说白盒黑盒……然后这里愣了很久,突然忘了里面具体的测试方法了(黑盒有等价类,边界值,判定表……白盒有各种路径覆盖)
这里很尴尬,我呃呃啊啊了一会儿,坐立不安2333
他说你说的白盒黑盒是一种分类,还有其它分类
我说噢,集成测试……他打断,集成测试是很后面的了,前面还有
我就知道问什么了,说先是单元测试、功能测试、集成测试,最后还有性能测试
只能说没记到烂熟于心的程度,脑子里有,但是一紧张讲不出来……
-
济星云有使用什么协同工具吗
我说用阿里云云效,有代码仓库,有CICD,有类似飞书的共享文档,有任务看板
-
熟悉什么设计模式?
我说,就从我用到过的几个讲,把我一时间想到的都说了一遍
-
讲一下单例模式和工厂模式在什么时候使用
就举了几个例子说明
然后他开始问OJ了,就到了我觉得答的最不好的一个题目
-
讲一下从提交代码到判题完成的全流程
我一开始没get到,我以为讲一下OJ的工作过程就可以了。结果他想问的是“从浏览器输入地址到打开网页的全流程”这样的问题,要你讲出所有小细节。
我都讲到开始评测的时候,他打断我,说直接就能评测吗?编译完直接就能评测吗?
我蒙了,(不是吗?
后来听明白了,他就是想我讲操作系统的细节。这就有点慌,没能慢慢思考,讲的有点磕巴
相关的我好像只提到了进程切换的时候保存上下文,switch(我还口误说成io多路复用的select了),中断,其他我啥都没说出来。
确实也没复习,有好多知识点分散在我脑子里,我串不起来,我觉得这个题扣大分,接下来就复习操作系统
现在我复盘有好多可以讲的,从发送请求开始就有套接字,io多路复用这些。
然后时间就已经到了,最后一个老师问我小胶质细胞的项目:
-
为什么要先分割再检测
我说因为认为可能分割会提供一些更有用的特征,作为检测的输入可以提供一些更好的依据(类似这个意思)
他追问,有一个XXXX模型(名字忘了),可以同时分割和检测,有试过吗?
之前我答辩的时候,问我的是Yolo本身就可以检测和分割,那个问题我准备好了,说实验过,yolo效果不如这样……就行了
但是这个模型我名字都没听过,不敢多说,就直接说没用过了
-
你提到了使用了Focal Loss,讲解一下Focal Loss的形式
我说损失函数外面套一个 次方
另外问了我:
-
你自我介绍里提到,想要实现区块链和AI的结合,你觉得有哪些地方可以用上AI
我说比如现在区块链的排序算法,来控制这个请求应该在哪个节点上执行的调度算法,现在是用的传统的RIFT,也许可以使用AI的一些方式来优化这里的排序
总结
面试的时候嘴巴基本没停(有2个地方有磕巴:软件测试方法想不出来、OJ+操作系统底层),但是看第二个软工老师的反应并不是很好,看不出来他的态度。
问题密度非常大,我忘记看我自我介绍完还剩多少时间,应该大概还剩15分钟,上面一个老师就提了快15个问题,我语速也非常快,拼命讲拼命讲。
没想到会问这么多软件工程相关的内容……我以为他会侧重项目一些细节,我详细准备的地方他都没有问。自我介绍里有一些一笔带过的技术细节,其实就是希望老师提问的时候再问一点的,也可能是因为老师也没了解这一块内容不能判断我讲的对不对、或者他知道这种问题我肯定会准备的很充分,反而挑着我没准备的内容问。
以及面试前还会担心老师问一些水问题,比如为什么选择来浙大、为什么想做系统而不是AI等等,完全没问,15分钟提问时间非常扎实,全是干货,好评。
问题提的确实招招致命,济星云确实就不是一个很优秀的大型项目,更多的是同学们练手的平台。但是既然这个项目老师这么喜欢问,就留下来吧。
需要再好好准备一下软件工程相关的内容:
- 设计模式,直接全背熟
- 软件测试
- 需求提取
- 什么是软件工程
- 如何提升团队合作效率
操作系统:
- 进程管理,中断等等,好好复习
- 文件管理
- 网络编程,套接字这些
其实面试前重点准备了文件管理(因为写在了简历里)和网络编程(特地复习了IO多路复用),都没用上……
其实也有机会,我可以在问OJ流程那个题里把网络编程加进去,但是没意识到老师问的是啥
自我介绍优化一下,不要提算法精英赛了,项目内的优化方式我能讲,项目外的其他AI常见知识真的不了解了。
然后开始复习,复习完把上面的问题重新回答一遍。预推免的ppt和自我介绍应该都不用重新准备了,基本上可以复用。
最后总结个准备面试的经验:能准备的内容只有专业知识。
专业知识是问到了一定得答对,打错了很扣分的。而且专业知识被问到了,如果准备的好就有一连串保证不会错的内容可以输出,很加分且增加自信。
其他非专业知识的内容,面试前可能准备了好多,但是很小概率能被问到,而且被问到的时候受限于一个上下文的提问环境,可能没办法把准备的答案直接用上,还是得随机应变。所以干脆不准备了。
项目相关的细节本来其实就是很熟悉的,简单过一遍就可以,相信自己在面试的情况下可以讲得出来,编也可以编出来,具体的细节老师也不知道,只要自圆其说讲的合理就行。
补充
结果通过啦!感谢老师感谢学校