浙软夏令营卓越营员面试复盘

| 面试 | 3224 | 9分钟 | 面试复盘浙大保研

参加了浙软的面试,抽签抽到倒数第二个……在门口等了五个小时,非常热……

记录一下面试的内容,整理了一下经验。

整体来说老师的问题很有含金量很有启发性,没有一个水问题。

也暴露了我专业课准备不充分的问题。

之前完全没想到,会问这么多软件工程的专业问题,老师最感兴趣的尽然是济星云……

与我准备的内容大相径庭2333我只能尽量的说,感觉大错是没有的,个别题目回答不流利,让人感觉基础不扎实

面试内容复盘

刚开始是一个很和蔼的老师,笑呵呵的,坐在正中间:

  1. 济星云和你名字一样,是为什么

    热场小问题,开玩笑,讲讲就过去了

  2. ChatGLM和llama的区别

    因为我讲了一下人工智能算法精英赛,项目做的是大语言模型

    但是真的不会,我直接说不是做大语言模型方向的,确实不了解

然后换了一个最边上的老师,应该是负责软件工程的。

  1. 你的第一个项目,这个需求是真实的吗

    这个项目就是夏令营做的《基于分布式数字身份的电影院售票系统》

    电影院的背景是强行加上去的,本身就不是实际的需求

    他讲了一些需求要从实际出发之类的问题,我频频点头2333

  2. 济星云中的需求是怎么来的

    一开始是组内大家自己根据日常需要提出的,之后有反馈和建议渠道,收集+评审,确定新需求

    追问,反馈渠道获得的需求都做吗?有什么其他的判断标准吗?(表述不太准确)

    我总结一下就是说这样不会导致这个项目很臃肿吗?(其实我觉得济星云确实是个有点臃肿的项目……)

  3. 如何审查反馈渠道提供的需求

    我回答,会再由产品组的同学审核一遍,判断是不是真的有需求,有没有必要加到我们的小程序里,有些也会做问卷征集意见。

    老师追问,能举一个例子,有哪些需求被舍弃了

  4. 有哪些需求被舍弃了

    我举了乌龙茶(实际上没有被舍弃,脑子一空)

    我说是在上面进行课程评价、老师评价的一个需求

    但是我们担心可能有同学会在上面发表一些过激言论,而且已经有了一些相同功能的产品

    老师补充比如学校的什么官网,我说对

  5. 你觉得什么是软件工程

    ……扯了一点是一个保证项目稳定开发的方法(类似这样的)

  6. 济星云的团队有多少人

    我说产品组和研发组都有30~40人,(可能其实还更多)

    他就问这真的需要这么多人吗

    我说这是一个给同学们练手的平台,没有什么成本……

    他打断,交流也是成本,然后开始问下一个问题

  7. 如何管理团队,保证产品的开发效率和质量

    我说一个大型团队会根据项目分成多个小组,每组七八个人,每个小组有一个负责人

    他总结,一个两层的架构。追问,是如何分组的?

    我说根据项目需求分组的,每一个需求会拉一个群

    然后隔两三天定期进行沟通,跟踪进度。

    质量的话最后会有一个星期的测试环节,由团队里的同学们进行测试。

    他又追问:

  8. 上过软件测试的课吗?有什么软件测试方法

    我说白盒黑盒……然后这里愣了很久,突然忘了里面具体的测试方法了(黑盒有等价类,边界值,判定表……白盒有各种路径覆盖)

    这里很尴尬,我呃呃啊啊了一会儿,坐立不安2333

    他说你说的白盒黑盒是一种分类,还有其它分类

    我说噢,集成测试……他打断,集成测试是很后面的了,前面还有

    我就知道问什么了,说先是单元测试、功能测试、集成测试,最后还有性能测试

    只能说没记到烂熟于心的程度,脑子里有,但是一紧张讲不出来……

  9. 济星云有使用什么协同工具吗

    我说用阿里云云效,有代码仓库,有CICD,有类似飞书的共享文档,有任务看板

  10. 熟悉什么设计模式?

    我说,就从我用到过的几个讲,把我一时间想到的都说了一遍

  11. 讲一下单例模式和工厂模式在什么时候使用

    就举了几个例子说明

然后他开始问OJ了,就到了我觉得答的最不好的一个题目

  1. 讲一下从提交代码到判题完成的全流程

    我一开始没get到,我以为讲一下OJ的工作过程就可以了。结果他想问的是“从浏览器输入地址到打开网页的全流程”这样的问题,要你讲出所有小细节。

    我都讲到开始评测的时候,他打断我,说直接就能评测吗?编译完直接就能评测吗?

    我蒙了,(不是吗?

    后来听明白了,他就是想我讲操作系统的细节。这就有点慌,没能慢慢思考,讲的有点磕巴

    相关的我好像只提到了进程切换的时候保存上下文,switch(我还口误说成io多路复用的select了),中断,其他我啥都没说出来。

    确实也没复习,有好多知识点分散在我脑子里,我串不起来,我觉得这个题扣大分,接下来就复习操作系统

    现在我复盘有好多可以讲的,从发送请求开始就有套接字,io多路复用这些。

然后时间就已经到了,最后一个老师问我小胶质细胞的项目:

  1. 为什么要先分割再检测

    我说因为认为可能分割会提供一些更有用的特征,作为检测的输入可以提供一些更好的依据(类似这个意思)

    他追问,有一个XXXX模型(名字忘了),可以同时分割和检测,有试过吗?

    之前我答辩的时候,问我的是Yolo本身就可以检测和分割,那个问题我准备好了,说实验过,yolo效果不如这样……就行了

    但是这个模型我名字都没听过,不敢多说,就直接说没用过了

  2. 你提到了使用了Focal Loss,讲解一下Focal Loss的形式

    我说损失函数外面套一个 1γ\frac 1 \gamma 次方

另外问了我:

  1. 你自我介绍里提到,想要实现区块链和AI的结合,你觉得有哪些地方可以用上AI

    我说比如现在区块链的排序算法,来控制这个请求应该在哪个节点上执行的调度算法,现在是用的传统的RIFT,也许可以使用AI的一些方式来优化这里的排序

总结

面试的时候嘴巴基本没停(有2个地方有磕巴:软件测试方法想不出来、OJ+操作系统底层),但是看第二个软工老师的反应并不是很好,看不出来他的态度。

问题密度非常大,我忘记看我自我介绍完还剩多少时间,应该大概还剩15分钟,上面一个老师就提了快15个问题,我语速也非常快,拼命讲拼命讲。

没想到会问这么多软件工程相关的内容……我以为他会侧重项目一些细节,我详细准备的地方他都没有问。自我介绍里有一些一笔带过的技术细节,其实就是希望老师提问的时候再问一点的,也可能是因为老师也没了解这一块内容不能判断我讲的对不对、或者他知道这种问题我肯定会准备的很充分,反而挑着我没准备的内容问。

以及面试前还会担心老师问一些水问题,比如为什么选择来浙大、为什么想做系统而不是AI等等,完全没问,15分钟提问时间非常扎实,全是干货,好评。

问题提的确实招招致命,济星云确实就不是一个很优秀的大型项目,更多的是同学们练手的平台。但是既然这个项目老师这么喜欢问,就留下来吧。


需要再好好准备一下软件工程相关的内容:

  • 设计模式,直接全背熟
  • 软件测试
  • 需求提取
  • 什么是软件工程
  • 如何提升团队合作效率

操作系统:

  • 进程管理,中断等等,好好复习
  • 文件管理
  • 网络编程,套接字这些

其实面试前重点准备了文件管理(因为写在了简历里)和网络编程(特地复习了IO多路复用),都没用上……

其实也有机会,我可以在问OJ流程那个题里把网络编程加进去,但是没意识到老师问的是啥

自我介绍优化一下,不要提算法精英赛了,项目内的优化方式我能讲,项目外的其他AI常见知识真的不了解了。

然后开始复习,复习完把上面的问题重新回答一遍。预推免的ppt和自我介绍应该都不用重新准备了,基本上可以复用。


最后总结个准备面试的经验:能准备的内容只有专业知识。

专业知识是问到了一定得答对,打错了很扣分的。而且专业知识被问到了,如果准备的好就有一连串保证不会错的内容可以输出,很加分且增加自信。

其他非专业知识的内容,面试前可能准备了好多,但是很小概率能被问到,而且被问到的时候受限于一个上下文的提问环境,可能没办法把准备的答案直接用上,还是得随机应变。所以干脆不准备了。

项目相关的细节本来其实就是很熟悉的,简单过一遍就可以,相信自己在面试的情况下可以讲得出来,编也可以编出来,具体的细节老师也不知道,只要自圆其说讲的合理就行。

补充

结果通过啦!感谢老师感谢学校