AI 入门 30 天挑战 - Day 29 - 面试准备指南
完整项目和代码本教程是AI 入门 30 天挑战系列的一部分GitHub 仓库: https://github.com/Lee985-cmd/AI-30-Day-ChallengeCSDN 专栏: https://blog.csdn.net/m0_67081842?typeblog⭐欢迎 Star 支持Week 4 第八天拿到心仪的 Offer简历优化 算法题 项目展示 模拟面试每个概念都解释每行代码都说明白预计时间3-4 小时含费曼输出练习 第 1 步快速复习昨天的内容30 分钟费曼输出 #0考考你合上教程尝试回答□ 多模态模型相比单模态有什么优势举一个应用例子 □ AI Agent 的核心能力有哪些 □ 扩散模型的训练和生成过程各是什么 □ 未来 AI 发展的 5 个趋势是什么 □ 如果要向投资人介绍 AI 行业你会怎么说⏰ 时间25 分钟如果能答出 80% 以上我们开始今天的面试准备之旅如果不够花 5 分钟翻一下 Day28 的笔记。 第 2 步面试准备的整体策略60 分钟说人话版本想象你要参加一场重要的考试场景 1裸考没有准备 → 直接去面试 → 被问到了才想起来 → 紧张得说不出话 → 结果凉凉 ❌ 场景 2充分准备 → 研究公司背景 → 准备自我介绍 → 刷题练手 → 模拟面试 → 结果稳了 ✅ 这就是准备 vs 不准备的差别! 面试 70% 准备 30% 发挥生活中的例子相亲 第一次相亲: → 会精心打扮简历优化 → 准备开场白自我介绍 → 想好聊什么话题项目展示 → 预演可能的对话模拟面试 → 展示最好的自己 面试也是一样! → 简历 你的第一印象 → 自我介绍 破冰环节 → 项目 你的实力证明 → 算法题 基本功测试面试的四个环节环节 1简历筛选HR 看 → 30 秒决定去留 → 关键词匹配 → 亮点突出 → 格式清晰 环节 2电话/视频初面HR 或技术负责人 → 自我介绍 → 基本问题 → 沟通能力 → 意愿度 环节 3技术面试技术团队 → 算法题 → 项目深挖 → 基础知识 → 解决问题能力 环节 4HR 面/高管面最终轮 → 文化匹配 → 职业规划 → 薪资谈判 → 综合素质 费曼输出 #1向小白解释面试准备任务 1创造多个比喻场景 A向小学生解释用考试做比喻 面试 期末考试 简历 平时作业 自我介绍 开场白 算法题 数学题 项目 实验报告 要想考得好 → 平时要努力学习积累 → 考前要复习面试准备 → 考试要细心面试发挥场景 B向家长解释用相亲做比喻 简历 个人条件介绍 → 学历、工作、收入 → 照片项目截图 → 兴趣爱好技术栈 面试 见面聊天 → 第一印象自我介绍 → 深入了解技术问答 → 看对眼文化匹配 → 谈婚论嫁薪资谈判场景 C向老板解释用销售做比喻 你 产品 简历 产品说明书 面试 销售演示 Offer 成交 要卖个好价钱 → 包装要好简历精美 → 功能要强技术过硬 → 演示要好表达清晰 → 价格要合理期望薪资要求每个场景都要详细说明⏰ 时间20 分钟 卡壳检查点如果你在解释时卡住了□ 我说不清楚简历应该包含什么 □ 我不知道如何准备自我介绍 □ 我只能说好好准备但不能说明白准备什么这很正常标记下来继续往下看然后重新尝试解释提示简历 你的广告突出卖点自我介绍 电梯演讲1-3 分钟项目 你的作品展示实力 第 3 步简历优化详解70 分钟好简历的标准 好简历的 6 个标准: 1. 简洁明了1 页纸 ✓ HR 只有 30 秒 ✓ 重点突出 ✓ 去掉废话 2. 针对性强匹配 JD ✓ 研究职位描述 ✓ 突出相关技能 ✓ 用对方的术语 3. 量化成果用数字说话 ✗ 优化了模型性能 ✓ 将准确率从 85% 提升到 92% 4. 项目导向展示能力 ✓ 做了什么项目 ✓ 用了什么技术 ✓ 取得了什么成果 5. 格式规范专业 ✓ PDF 格式 ✓ 统一字体 ✓ 没有错别字 6. 真实可信不造假 ✓ 可以包装不能造假 ✓ 写上去的都要能讲清楚 ✓ 背景调查能通过 简历模板# 张三 | AI 算法工程师 138-xxxx-xxxx | zhangsanemail.com | 北京 GitHub: github.com/zhangsan | 博客zhangsan.tech ## 求职意向 AI 算法工程师 | 机器学习方向 | 全职 ## 教育背景 2020.09 - 2023.06 XX 大学 计算机科学与技术 硕士 2016.09 - 2020.06 XX 大学 软件工程 本科 ## ️ 技能清单 编程语言Python (熟练), C (了解) 深度学习PyTorch, TensorFlow, Keras 计算机视觉CNN, R-CNN, YOLO, GAN 自然语言处理Transformer, BERT, GPT 其他工具Git, Docker, Linux, SQL ## 项目经历 ### 项目 1股票价格预测系统个人项目 2023.01 - 至今 【项目描述】基于 LSTM 和 Transformer 的股票价格预测系统 【技术栈】Python, PyTorch, LSTM, Transformer, Tushare 【我的工作】 - 独立设计并实现基于 LSTM 的价格预测模型 - 引入 Attention 机制将预测准确率提升 15% - 开发 Web 界面支持实时预测和历史回测 【项目成果】 - GitHub 获 200 stars - 在知乎发表相关文章阅读量 10w ### 项目 2图像分类系统课程设计 2022.09 - 2022.12 【项目描述】基于 CNN 的图像分类系统支持 10 种物体识别 【技术栈】Python, TensorFlow, CNN, CIFAR-10 【我的工作】 - 搭建 5 层 CNN 网络包括卷积、池化、全连接层 - 使用数据增强和 Dropout 防止过拟合 - 在 CIFAR-10 数据集上达到 85% 准确率 【项目成果】课程优秀前 5% ### 项目 3情感分析 API实习项目 2022.06 - 2022.08 【项目描述】为某电商开发评论情感分析系统 【技术栈】Python, Flask, BERT, RESTful API 【我的工作】 - 基于 BERT 微调情感分类模型 - 开发 Flask API日均调用 10w 次 - 优化推理速度从 100ms 降低到 30ms 【项目成果】获得实习转正 Offer ## 荣誉奖项 - 2022 年全国大学生数学建模竞赛 一等奖 - 2021 年研究生国家奖学金 - 2020 年优秀毕业生 ## 自我评价 热爱 AI 技术有扎实的理论基础和丰富的实战经验。 具备良好的学习能力和团队合作精神。 希望在 AI 领域长期发展为公司创造价值。 第 4 步算法题准备90 分钟常考题型 AI 岗位算法题常考类型: 1. 数据结构基础必考 ✓ 数组、链表、栈、队列 ✓ 树、图 ✓ 哈希表 2. 算法思想高频 ✓ 排序快排、归并 ✓ 查找二分 ✓ 动态规划 ✓ 贪心算法 ✓ 回溯法 3. 机器学习基础专业 ✓ KNN、K-means 实现 ✓ 决策树分裂 ✓ 梯度下降 ✓ 交叉验证 4. 深度学习加分 ✓ 手写 Attention ✓ CNN 前向传播 ✓ Backpropagation ✓ 激活函数实现 经典题目详解print( * 60) print( AI 岗位经典算法题) print( * 60) # # 题目 1两数之和送分题必须会 # print(\n【题目 1】两数之和) print( 题目给定一个整数数组和一个目标值找出和为目标值的两个数的索引。 示例: 输入nums [2, 7, 11, 15], target 9 输出[0, 1] 解释nums[0] nums[1] 2 7 9 解题思路: 方法 1暴力枚举 O(n²) → 两层循环遍历所有组合 方法 2哈希表 O(n) ⭐推荐 → 用字典存储 {数值索引} → 遍历一次每次检查 target - num 是否在字典中 ) def two_sum(nums, target): 两数之和 - 哈希表解法 hash_map {} # {数值索引} for i, num in enumerate(nums): complement target - num if complement in hash_map: return [hash_map[complement], i] hash_map[num] i return [] # 测试 nums [2, 7, 11, 15] target 9 result two_sum(nums, target) print(f\n输入nums {nums}, target {target}) print(f输出{result}) print(f✓ 时间复杂度O(n)空间复杂度O(n)) # # 题目 2合并两个有序数组基础题 # print(\n * 60) print(【题目 2】合并两个有序数组) print( 题目给定两个有序数组将它们合并成一个有序数组。 示例: 输入arr1 [1, 3, 5], arr2 [2, 4, 6] 输出[1, 2, 3, 4, 5, 6] 解题思路: 双指针法 ⭐推荐 → 两个指针分别指向两个数组的开头 → 比较大小小的放入结果数组 → 移动指针 → 直到一个数组遍历完 → 把另一个数组剩余元素加入结果 ) def merge_sorted_arrays(arr1, arr2): 合并两个有序数组 - 双指针法 result [] i, j 0, 0 while i len(arr1) and j len(arr2): if arr1[i] arr2[j]: result.append(arr1[i]) i 1 else: result.append(arr2[j]) j 1 # 加入剩余元素 result.extend(arr1[i:]) result.extend(arr2[j:]) return result # 测试 arr1 [1, 3, 5] arr2 [2, 4, 6] result merge_sorted_arrays(arr1, arr2) print(f\n输入arr1 {arr1}, arr2 {arr2}) print(f输出{result}) print(f✓ 时间复杂度O(mn)空间复杂度O(mn)) # # 题目 3KNN 算法实现专业题 # print(\n * 60) print(【题目 3】实现 KNN 算法) print( 题目实现 K 近邻分类算法。 示例: 训练数据[[1,2], [2,3], [3,3], [6,5], [7,8]] 标签 [0, 0, 0, 1, 1] 测试样本[4, 4] K 3 输出0属于第一类 解题思路: 1. 计算测试点到所有训练点的距离 2. 选择距离最近的 K 个点 3. 统计这 K 个点的类别 4. 返回出现最多的类别 ) import numpy as np from collections import Counter class KNNClassifier: K 近邻分类器 def __init__(self, k3): self.k k self.X_train None self.y_train None def fit(self, X, y): 训练KNN 不需要训练只是存储数据 self.X_train np.array(X) self.y_train np.array(y) def predict(self, X_test): 预测 predictions [] for x in X_test: # 计算距离 distances np.sqrt(np.sum((self.X_train - x) ** 2, axis1)) # 找最近的 K 个点 k_indices np.argsort(distances)[:self.k] k_labels self.y_train[k_indices] # 投票 most_common Counter(k_labels).most_common(1)[0][0] predictions.append(most_common) return predictions # 测试 X_train [[1,2], [2,3], [3,3], [6,5], [7,8]] y_train [0, 0, 0, 1, 1] X_test [[4,4], [5,5]] knn KNNClassifier(k3) knn.fit(X_train, y_train) predictions knn.predict(X_test) print(f\n训练数据{X_train}) print(f标签{y_train}) print(f测试样本{X_test}) print(f预测结果{predictions}) print(f✓ 时间复杂度O(n)空间复杂度O(n)) # # 题目 4Softmax 实现深度学习基础 # print(\n * 60) print(【题目 4】实现 Softmax 函数) print( 题目实现 Softmax 激活函数。 公式softmax(x_i) exp(x_i) / Σexp(x_j) 示例: 输入[2.0, 1.0, 0.1] 输出[0.659, 0.242, 0.099] 注意: → 数值稳定性减去最大值 → 概率和为 1 ) def softmax(x): Softmax 函数 - 数值稳定版本 x np.array(x) # 减去最大值防止指数溢出 x_shifted x - np.max(x) exp_x np.exp(x_shifted) return exp_x / np.sum(exp_x) # 测试 x [2.0, 1.0, 0.1] result softmax(x) print(f\n输入{x}) print(f输出{result}) print(f概率和{np.sum(result):.6f}应该等于 1) print(f✓ 时间复杂度O(n)空间复杂度O(n)) print(\n * 60) print( 算法题准备建议:) print( 1. 每天刷 2-3 道题保持手感) print( 2. 总结套路看到什么题用什么方法) print( 3. 注重沟通边写边说思路) print( 4. 考虑边界空数组、负数等) print( 5. 优化代码时间、空间复杂度) print( * 60)按 Shift Enter 运行 费曼输出 #2深入理解面试技巧任务 1解释技术细节思考题为什么简历要用 STAR 法则写项目面试时遇到不会的题怎么办如何展示自己的学习能力薪资谈判的技巧是什么任务 2模拟面试场景你要参加 AI 工程师面试要求准备 1 分钟自我介绍介绍一个你最满意的项目回答一个技术问题解释一下 Attention 机制向面试官提 2-3 个问题⏰ 时间30 分钟 卡壳检查点我解释不清项目的难点和解决方案我说不明白自己的技术优势我不能流畅地回答常见问题提示STAR Situation, Task, Action, Result不会就说不会但展示思考过程提问 你对公司感兴趣 第 5 步项目展示技巧60 分钟STAR 法则 STAR 法则 - 讲故事的框架 Situation情境: → 项目背景是什么 → 遇到了什么问题 → 为什么要做这个项目 Task任务: → 你的任务是什么 → 目标是什么 → 有什么限制条件 Action行动: → 你做了什么 → 用了什么技术 → 为什么选择这个方案 Result结果: → 取得了什么成果 → 有什么量化指标 → 学到了什么 项目介绍模板【项目介绍模板】 Situation: 当时我们公司/实验室需要解决 XXX 问题。 传统方法是 XXX但是存在 XXX 缺陷。 Task: 我的任务是开发一个 XXX 系统 要求达到 XXX 指标 时间只有 XXX。 Action: 我做了以下工作: 1. 调研了 XXX 方案最终选择了 XXX 2. 设计了 XXX 架构 3. 实现了 XXX 功能 4. 优化了 XXX 性能 关键技术点: - 用了 XXX 算法因为 XXX - 解决了 XXX 问题通过 XXX - 克服了 XXX 困难 Result: 最终成果: ✓ 准确率达到 XX% ✓ 速度提升 XX% ✓ 成本降低 XX% ✓ 获得 XXX 奖励/专利 我的收获: ✓ 掌握了 XXX 技术 ✓ 学会了 XXX 方法 ✓ 理解了 XXX 原理 第 6 步模拟面试题库50 分钟常见问题interview_questions 【自我介绍类】 1. 请用 1-3 分钟介绍一下你自己 2. 你为什么选择 AI 这个方向 3. 你的职业规划是什么 【项目深挖类】 1. 介绍一个你最满意的项目 2. 项目中遇到的最大困难是什么怎么解决的 3. 如果让你重新做这个项目你会怎么改进 4. 这个项目的创新点在哪里 【技术基础类】 1. 解释一下过拟合和欠拟合怎么解决 2. Batch Normalization 的原理和作用 3. Attention 机制是怎么工作的 4. CNN 和 RNN 各适合什么场景 5. 梯度消失和梯度爆炸怎么解决 【机器学习类】 1. KNN 和 K-means 的区别 2. 决策树是怎么分裂的 3. SVM 的原理是什么 4. 集成学习有哪几种方法 【深度学习类】 1. Backpropagation 的推导 2. LSTM 相比 RNN 有什么优势 3. GAN 的训练过程和崩溃问题 4. Transformer 为什么比 RNN 好 【编程实践类】 1. 手写 NMS 算法 2. 实现 IoU 计算 3. 画出一个 CNN 的结构图 4. 写出 Attention 的代码 【开放问题类】 1. 你最近读了什么 AI 相关的论文 2. 你怎么看待大语言模型的发展 3. AI 会带来哪些社会问题 4. 你平时怎么学习新技术 【反问环节类】 1. 你们团队主要做什么业务 2. 这个岗位的具体工作内容是什么 3. 公司对新人有什么培养计划 4. 技术栈主要是什么 print( * 60) print( 模拟面试题库) print( * 60) print(interview_questions) print(\n * 60) print( 面试技巧总结) print( * 60) tips 面试前: ✓ 研究公司和职位 ✓ 准备自我介绍1/3/5 分钟版本 ✓ 复习基础知识 ✓ 刷题保持手感 ✓ 准备好着装 面试中: ✓ 保持自信微笑 ✓ 说话语速适中 ✓ 不会的题展示思考过程 ✓ 主动沟通不懂就问 ✓ 注意肢体语言 面试后: ✓ 发感谢信 ✓ 复盘表现 ✓ 记录不会的题 ✓ 继续学习提升 print(tips) print(\n 面试准备完成!) print( * 60) 今日费曼总结30 分钟⭐完整的费曼学习流程第 1 步回顾今天的内容5 分钟简历优化技巧算法题准备项目展示方法模拟面试题库第 2 步合上教程尝试完整教授15 分钟⭐任务假装你在给一个完全不懂的人上第二十九堂课要覆盖面试准备的重要性用至少 2 个比喻好简历的标准如何介绍项目讲解面试技巧方式写一篇 800 字左右的文章或录一段 10-15 分钟的视频第 3 步标记卡壳点5 分钟我今天卡壳的地方 □ _________________________________ □ _________________________________第 4 步针对性复习5 分钟回到教程中卡壳的地方重新学习然后再次尝试解释 费曼学习笔记模板╔═══════════════════════════════════════════════════╗ ║ Day 29 费曼学习笔记 ║ ╠═══════════════════════════════════════════════════╣ ║ 日期__________ ║ ║ 学习时长__________ ║ ╠═══════════════════════════════════════════════════╣ ║ ║ ║ 1. 我向小白解释了 ║ ║ _______________________________________________ ║ ║ ║ ║ 2. 我卡壳的地方 ║ ║ □ _____________________________________________ ║ ║ ║ ║ 3. 我的通俗比喻 ║ ║ • 面试就像 ______ ║ ║ • 简历就像 ______ ║ ║ • 项目介绍就像 ______ ║ ║ ║ ║ 4. 我的面试宣言 ║ ║ _______________________________________________ ║ ║ ║ ╚═══════════════════════════════════════════════════╝ 今日总结✅ 你今天学到了简历优化6 个好简历标准量化成果项目导向算法题准备常考题型经典题目解题思路面试技巧STAR 法则项目介绍沟通表达费曼输出能力 ⭐能用比喻解释面试准备能向小白说明技巧要点能完整讲解面试流程 明日预告明天你将学习毕业项目和职业规划内容毕业设计指导职业发展路径继续学习建议30 天总结最后一天的冲刺完成整个 30 天挑战 相关链接 项目资源GitHub 仓库: https://github.com/Lee985-cmd/AI-30-Day-ChallengeCSDN 专栏: https://blog.csdn.net/m0_67081842?typeblog⭐如果觉得有帮助请给 GitHub 仓库 Star 支持本教程属于 AI 入门 30 天挑战 系列 恭喜你完成今天的学习 互动时间思考题今天的知识点中哪个让你印象最深刻为什么欢迎在评论区分享你的想法或疑问❤️ 如果有帮助点赞让更多人看到这篇教程⭐Star GitHub获取完整代码和项目➕关注专栏不错过后续更新分享给朋友一起学习进步明天见继续 Day 30 的学习~学习建议如果本篇教程对你有帮助欢迎Star GitHub 项目https://github.com/Lee985-cmd/AI-30Days-Challenge留言交流你的学习困惑一起学习一起进步