实习面试记录|一次偏全栈方向的技术面试
同样,也是假期的面试记录,搬过来一下 刚面完一场实习技术面,趁还有印象记录一下,也分享给正在准备实习的同学。 面试官是财经保险业务的前端同学,不过交流中提到,他们现在实际上更倾向于招聘全栈方向的开发者。 面试时长:约 46 分钟 整体流程:自我介绍 → 项目深挖 → Web 基础 → AI Coding → 算法 → 反问 1. 项目深挖 主要介绍了两个项目: - 基于 Tauri + TypeScript + Rust 的桌面课表工具 - 使用原生 HTML/CSS/JS 开发的个人主页 桌面课表部分问得比较细,包括为什么做、工程结构、本地数据存储、OCR 调用、识别结果如何恢复成课表,以及 Excel 和图片导入如何统一。 我的实现是将不同来源的数据转换成统一的课程草稿,经过用户确认和修改后再保存到本地,最后更新桌面组件。 2. Web 基础 围绕个人主页继续追问: - 浏览器输入 URL 后,到页面渲染完成经历了什么? - 前端项目构建后会得到什么? - 为什么网页离线运行时会缺少部分内容? - 页面动画如何实现?底层原理是什么? 这一部分答得一般。DNS、TCP、HTTPS 和浏览器渲染都有所了解,但很难完整地串起来。 动画方面,因为主要通过 AI 辅助开发,自己负责需求设计和结果验收,具体底层实现研究得不够深入。 3. AI Coding 这一部分交流了很久。 面试官问:如果重新开发之前的代码修改助手,你会如何利用 AI Coding 工具完成整个项目? 我主要介绍了自己的开发流程: - 通过 AI 反问明确需求 - 比较技术方案并做出取舍 - 从 MVP 开始实现 - 本地测试、验证和验收 - 记录问题现象、根因与解决方案 - 使用独立上下文的 AI 进行代码审查 还问到了模型输出格式不符合预期时怎么办。 我的回答是不能只依靠 Prompt,需要结合程序侧的格式校验和必要的清洗处理。 4. 算法题 一道简化版的代码 Diff。 输入 old code 和 new code 两个字符串数组,要求输出 keep / delete / add 操作,使旧代码变成新代码。 当时没有想到合适的算法,最后没能完整实现。 面试后复盘,发现可以从最长公共子序列(LCS)和编辑序列的方向思考。 这是本场面试暴露得最明显的薄弱点。 5. 反问环节 我问了面试官一个自己最近一直在思考的问题: 现在知识获取越来越容易,但反而不知道什么值得学习,应该怎么度过这个阶段? 面试官的回答让我印象很深。 现在借助大模型,很多人都可以快速实现一个功能,但真正重要的是能不能判断代码的正确性、安全性、性能和可维护性。 企业项目往往需要维护很多年,也会不断有人接手,因此和个人做一个能跑起来的 Demo 有很大区别。 我还问了现在企业实际使用 AI 编程的程度。 据面试官介绍,他们团队前端的 AI 代码量大约达到 90%,后端约 60%~70%。 他也提到,AI 降低了编码成本,因此团队正在倾向全栈招聘,希望减少前后端沟通和业务理解成本。 当然,这只是面试官介绍的团队情况,不代表整个行业。 最后的一点感受 这次面试,项目和 AI Coding 部分交流得还不错,但计算机基础和算法明显需要继续补。 最近几次面试下来,我越来越感觉到: AI 可以帮助我们写出代码,但不能代替我们理解代码。 会使用工具是一回事,能判断工具生成的东西是否正确、是否合理、能不能长期维护,是另一回事。 目前还在不断探索和补基础,也欢迎大家分享自己的学习经验。 希望这份面经对准备实习的同学有所帮助。