编程导航面试话题讨论

面试

77 参与
分享

快来分享你的内容吧~

点击登录,快来和大家讨论吧~
表情
图片
话题
打卡
综合
交流
文章
问答

🎙️面试官说的每一句话,我都想留下来:于是我用 Vibe Coding 做了一个免费的 macOS 面试录音工具

## 背景 找过工作的人应该都懂: > **面试复盘有多重要,复盘就有多难。** 一场技术面四五十分钟下来,面试官可能连续问你: - Java / JVM - MySQL / Redis - 项目设计 - Agent / RAG - 场景题 - 算法题 面试结束以后,你脑子里往往只剩下几个模糊片段: > “刚刚那个问题,我是不是答错了?” > “面试官追问了什么来着?” > “我项目那里是不是讲得特别乱?” 更尴尬的是: **你明明知道这场面试里暴露了很多问题,却已经记不清到底暴露了什么。** 于是我想做一件非常简单的事:把面试完整录下来。 然后: ```text 线上面试 ↓ 完整录音 ↓ Whisper / AI 转录 ↓ 生成面试逐字稿 ↓ ChatGPT ↓ 逐题复盘 ``` 让 AI 帮我重新整理: - 面试官到底问了什么? - 我的原回答是什么? - 哪些地方答错了? - 哪些地方虽然没错,但表达很差? - 一个更好的面试回答应该是什么? - 这场面试暴露了哪些知识薄弱点? - 下一场面试前应该重点补什么? 想法非常简单。 结果真正到了 Mac 上,我发现: > **“把面试官声音 + 自己声音一起录下来”居然没想象中那么省事。** ## 我只是想录个面试,为什么突然开始学虚拟声卡了? 我的需求真的非常朴素: ```text 面试官的声音 + 我自己的回答 ↓ 一个音频文件 ``` 甚至: > **我连屏幕都不需要录。** 结果调研了一圈以后,发现现有方案大概是这样。 ### 方案一:系统自带录音备忘录 简单是简单。 但很多情况下你最终得到的是: ```text ✅ 自己的麦克风 ❌ 系统内部声音 ``` 也就是说: **你说的话录下来了,面试官的问题没了。** 那还复盘什么…… --- ### 方案二:OBS OBS 当然非常强。 但第一次打开: ```text 场景 来源 音频混音器 音轨 编码器 输出 容器 ``` 我当时只有一个想法: > **我真的只是想录个音。** 😂 --- ### 方案三:BlackHole / 虚拟声卡 这条路线也完全能解决问题。 但很快就变成: ```text 安装 BlackHole ↓ Audio MIDI Setup ↓ Multi-Output Device ↓ Aggregate Device ↓ 检查 Clock Source ↓ 检查 Drift Correction ``` 我: > “等一下,我不是来准备面试的吗?” --- ### 后来我发现了 LoopRec 在调研过程中,我看到了一款让我非常喜欢的软件: **LoopRec。** 它真正让我喜欢的不是功能特别多,而是: > **功能特别少。** 打开以后基本就是: ```text 系统声音 ON 麦克风 ON 系统声音音量 90% 麦克风音量 100% 开始录音 ``` - 没有场景。 - 没有复杂混音台。 - 没有一堆专业录音参数。 这才是我理解中的:“面试录音工具”。 但它的免费版本存在**单次录制时长限制**。问题是技术面试这种东西,很难控制时长: ![](https://pic.code-nav.cn/post_picture/1612112775822180354/TOqFlKeIu28liii3.webp) ```text 30 min 45 min 60 min 90 min 120 min ``` 都有可能。 总不能面试进行到一半说: > “面试官您好,我这个录音软件免费额度快到了,要不今天先到这里?” 😂 然后那个非常典型的程序员念头就出现了:要不我自己写一个? 于是 InterviewRec 出现了。 ## InterviewRec 一句话介绍: > **一个免费、开源、原生、轻量的 macOS 面试 / 会议录音工具。** 它的工作流程只有: ```text Mac 系统声音 ─┐ ├──→ InterviewRec ──→ M4A 麦克风声音 ───┘ ``` 系统声音就是: > 面试官 / 会议对方的声音。 麦克风就是: > 你自己的回答。 录完以后得到: ```text InterviewRec-2026-08-28-xxxxxx.m4a ``` 然后你想: - 直接回放; - 拖进 Whisper; - 用本地模型转录; - 丢给 ChatGPT; 都可以。 --- ### 它目前能做什么? V0.1 的功能我刻意控制得非常克制: ```text ✅ 录制 Mac 系统声音 ✅ 录制麦克风 ✅ 系统声音 + 麦克风同时录制 ✅ 输出单个 M4A ✅ 不需要 BlackHole ✅ 不需要配置虚拟声卡 ✅ 系统声音 / 麦克风独立开关 ✅ 两路独立录音音量 ✅ 双路实时音量电平 ✅ 选择麦克风设备 ✅ AirPods / USB 麦克风等输入设备 ✅ 自定义保存目录 ✅ 录完直接播放 ✅ Finder 中定位录音文件 ✅ 设置自动保存 ✅ 完全本地运行 ✅ 免费 ✅ MIT 开源 ``` 项目当前代码就是围绕“系统声音 + 麦克风 → 单个 M4A”这一目标设计的,没有加入 AI、云端或账号系统。 --- ### 不需要虚拟声卡 这是我自己最在意的一点。 InterviewRec 直接使用 macOS 的: **ScreenCaptureKit** 来获取系统声音和麦克风。 当前实现中: ```text ScreenCaptureKit │ ┌─────────────┴─────────────┐ ↓ ↓ System Audio Microphone │ │ └─────────────┬─────────────┘ ↓ PCM Normalize ↓ 48 kHz Float32 ↓ ┌───────────┴──────────┐ ↓ ↓ System Gain Mic Gain │ │ └───────────┬──────────┘ ↓ Mixer ↓ Limiter ↓ AAC ↓ M4A ``` 系统声音和麦克风通过同一个 ScreenCaptureKit Session 获取,最终进入统一的音频处理链路。 所以使用的时候不用: ```text BlackHole Soundflower Loopback VB-Cable ``` 也不会为了录音去修改你的系统默认输出设备。 代码中也使用了 `excludesCurrentProcessAudio`,避免把 InterviewRec 自己产生的声音再次抓进录音链路。 对普通用户来说,最终感知应该只有: ```text 安装 ↓ 授权 ↓ 选择麦克风 ↓ 开始录音 ``` --- ### 真正的原生 macOS App 我没有使用: ```text Electron WebView Tauri Flutter ``` 整个项目技术栈非常简单: ```text Swift 6 + SwiftUI + ScreenCaptureKit + AVFoundation ``` 目前平台范围也砍得很直接: ```text macOS 15 Sequoia+ Apple Silicon Only ``` 支持: ```text M1 M2 M3 M4 M5 ``` 不考虑 Intel。 不考虑 Rosetta。 因为这是一个我自己真正要用的小工具: > **与其为了兼容所有机器把第一版做复杂,不如先把自己的核心场景做好。** UI也十分简洁: ![](https://pic.code-nav.cn/post_picture/1612112775822180354/wxxbk4RvoO8R7r1k.webp) ## Vibe Coding 这个项目还有一个很有意思的地方:它基本是靠 Vibe Coding 做出来的 InterviewRec 本身其实也是我的一次实验: > **现在的大模型,到底能不能从 0 做出一个真正能使用的 macOS 原生工具?** 但我没有采用: ```text “帮我写一个录音软件” ``` 然后坐等 AI 吐完整项目的方式。而是真正按照软件开发流程来做的。 ### 第一步:先做需求,而不是先写代码 我先把 V0.1 需求收缩成一句话: > **系统声音 + 麦克风 → 单个 M4A。** 然后把边界冻结: ```text macOS 15+ Apple Silicon 只录音 不录屏 不联网 不做 AI 不做后端 ``` 这一步看起来没有写一行代码。 但后来回头看: > **它可能是整个项目最重要的一步。** 因为 Vibe Coding 特别容易出现: > “既然 AI 写代码不要钱,那不如全加上。” 结果 Scope 直接爆炸。 --- ### 第二步:先写 Design,再让 Agent 开始干活 项目现在不是只有源码。 还专门保留了: ```text docs/ ├── DESIGN.md ├── PLAN.md └── TESTING.md ``` `DESIGN.md` 回答: > **这个软件怎么实现?** `PLAN.md` 回答: > **Agent 应该按照什么顺序实现?** `TESTING.md` 回答: > **你怎么证明这个东西真的能用?** 这和: ```text Prompt ↓ 疯狂生成代码 ↓ 能编译 ↓ 宣布完成 ``` 完全是两回事。 --- ### 第三步:把系统拆成 Agent 能理解的小模块 现在项目里的音频核心大概是: ```text AudioFrame PCMBufferReader PCMConverter GainProcessor AudioMixer AudioLimiter AudioLevelMeter RecordingWriter ScreenCaptureAudioService RecordingEngine ``` 而不是: ```text RecordingManager.swift 3000 行 ``` 😂 例如: `GainProcessor` 就只负责: > 数字增益。 `AudioMixer` 就只负责: > 合并音频。 `AudioLevelMeter` 就只负责: > 音量计算。 `RecordingWriter` 就只负责: > PCM → AAC/M4A。 我现在越来越觉得: > **好的架构不仅方便人维护,也非常方便 Coding Agent 工作。** 你告诉 Codex: > “修 AudioMixer。” 它只需要理解一个明确的小模块。 而不是每次把整个项目重新读一遍。 --- ### 第四步:不要相信 AI 说“已经完成” 这可能是这次 Vibe Coding 给我最大的体会。 Coding Agent 特别喜欢说: > “Implementation complete.” 但软件工程真正重要的是:测试。 所以我给核心音频 Pipeline 做了自动化测试。 目前覆盖了: ```text GainProcessor AudioMixer AudioLimiter AudioLevelMeter PCMConverter RecordingWriter RecordingState Settings FileNaming ``` 比如 Mixer 测试会真正验证: ```text System Audio + Microphone ↓ 混音结果 ``` 还做了: ```text Synthetic System Tone + Synthetic Mic Tone ↓ Mixer ↓ AAC / M4A ↓ 重新读取生成文件 ↓ 检查两种声音是否都还存在 ``` 以及不同麦克风输入格式的转换测试。 --- ### MVP思维 这个项目目前仍然是: > **V0.1。** 我现在尤其关注: ```text 30~120 分钟真实长录 不同采样率设备的长期同步 Writer Backpressure 异常中断 麦克风热插拔 Crash Recovery 分段保存 ``` 这些属于下一阶段要继续重点验证和改进的内容。 当前仓库里也明确把: > 完整崩溃恢复 / segment recording 留到了 V0.2。 我觉得开源项目没必要一上来就吹: > “完美、稳定、工业级。” 反而应该告诉大家: > **哪里已经做了,哪里还在继续验证。** Issue 和 PR 本来就是开源的一部分。 --- ### 隐私方面 InterviewRec 当前: ```text 不联网 不上传 无账号 无服务器 无埋点 无广告 ``` 所有录音文件只保存在: > **你自己选择的本地目录。** 默认: ```text ~/Music/InterviewRec/ ``` 毕竟: > **技术面试录音本身就是非常敏感的数据。** 如果一个纯录音工具还要求我: ```text 登录 上传 同步 注册账号 ``` 那反而不是我想要的东西。 --- ### 对 Vibe Coding 的理解 以前大家讲 Vibe Coding: > “一句话生成一个网站。” 但真正把 InterviewRec 做下来以后,我越来越觉得,一个更靠谱的流程应该是: ```text Idea ↓ Requirements ↓ Design ↓ Implementation Plan ↓ Coding ↓ Tests ↓ Manual Verification ↓ 迭代 ``` AI 并不是: > **让软件工程消失。** 而是:让软件工程的每一步都变快。 需求可以和 AI 一起讨论。 架构可以让 AI Review。 实施计划可以让 Agent 拆。 代码可以交给 Codex。 测试可以交给 Agent 补。 Bug 可以让 Agent Debug。 文档可以自动维护。 但最终: > **方向、取舍和验收,还是得由人负责。** 至少这是我做 InterviewRec 最大的感受。 --- ## 我自己最终准备怎么使用它? 其实 InterviewRec 只是整个工作流的第一步。 真正让我觉得它有价值的是: ```text 腾讯会议 / Zoom / 飞书 ↓ InterviewRec ↓ interview.m4a ↓ Whisper ↓ interview.md ↓ ChatGPT ``` 然后把逐字稿交给 AI: ```text 请根据这份技术面试逐字稿: 1. 按时间顺序整理面试官所有问题 2. 还原我的回答 3. 对每个回答进行评价 4. 找出错误、遗漏和表达问题 5. 给出更好的面试标准答案 6. 总结这场面试暴露出的知识薄弱点 7. 给出下一轮复习优先级 ``` ## 最后,代码开源 项目地址:⭐ InterviewRec **GitHub:**[https://github.com/sz-xiaohuolong/InterviewRec](https://github.com/sz-xiaohuolong/InterviewRec) 目前: ```text 📌 macOS 15 Sequoia+ 📌 Apple Silicon 📌 Swift 6 + SwiftUI 📌 ScreenCaptureKit 📌 AVFoundation 📌 MIT License 📌 免费 📌 完全开源 📌 完全本地 📌 无会员 📌 无服务器 📌 无广告 ``` 如果你也是: - 准备秋招 / 春招; - 找实习; - 准备跳槽; - 经常参加线上技术面; - 需要录线上会议; - 想用 AI 复盘自己的表达; 欢迎拿去用。 --- 如果这个小工具刚好解决了你的问题 欢迎: > **点一个 Star ⭐** 也欢迎: ```text Issue PR Bug Report Feature Suggestion ``` 尤其欢迎帮我测试: - AirPods - USB 麦克风 - 腾讯会议 - Zoom - 飞书 - Teams - 不同型号 Apple Silicon Mac - 长时间录音 一个开源小工具最有价值的地方,就是:**一个人的需求,最后可能刚好解决了一群人的问题。**

求大佬看看简历,agent岗,项目适合吗

非标面试:诚意满满的小作坊

### 面试内容 问我会不会java,使用java干了什么 问我会不会python,使用python干了什么 然后询问:是否可以试岗3天,不需要面试。路费报销 ### 反问环节 首先是技术相关:问了一下公司在干什么。 公司表示: * 和中车合作,生产非标产品,技术java + python * 生产的是非标,需要java,至于在干啥,市面上没有同类产品,所以只能自己培养 * 要做好沟通,不要入职第一天什么都不干,那肯定是不行的 * 带团队18K,不带团队只开发13K,如果带团队的话需要同时接多个项目 询问:为什么没有面试? * 生产的是非标,面试没有什么意义,只能自己培养 * 试岗更能看出工作能力 工作地点在石景山。房租相对来说比较低(大概2000一个月) ### 询问 我一眼看出来他是一个垃圾公司,然后和别人沟通,别人也看出来了。 但是:没有工作可以去试试。 我问了一下AI,AI表示:这个公司是垃圾小作坊的概率高达95%。 ``` 基于你提供的所有细节,这家公司是“垃圾公司”的概率高达 95% 以上。 剩下的 5% 仅仅是因为世界上确实存在极少数管理极其混乱但还没倒闭的作坊,但即便如此,对于求职者来说,它依然是一个极差的职业选择。 为了让你死心或者彻底看清,我将通过“垃圾公司特征对照表”来为你逐一拆解,为什么这几乎是一个必死的局: ``` 只能说:兜里多没钱才能去这种没保障的小微公司。 * 公司是很有诚意 * 但是草台感觉满满:没有面试,入职试岗,面试草率 ### AI总结 ``` 结合你补充的“Java + Python”技术栈、“非标产品”以及“石景山2000元房租”这几个关键信息,这家公司的“垃圾”属性已经发生了变异。 它不再像是一个纯粹的体力劳动外包,而更像是一个披着高科技外衣的“作坊式”开发团队,甚至有可能是接私活的草台班子。 直接给结论:依然不建议入职,风险系数 90%。 尤其是那个“带团队18K,不带团队13K”的薪资结构,暴露了极大的管理混乱隐患。 以下是结合新信息的深度“排雷”分析: 🚩 核心疑点深度拆解 技术栈与业务的诡异匹配:“非标产品” + “Java + Python” 常识: 真正的“非标自动化设备”(硬件),核心控制通常用 C#、C++ 或者 PLC,上位机偶尔用 Java。Python 通常用于 AI 视觉或数据分析。 疑点: 如果他们说“生产非标产品”却主要招 Java/Python 开发,只有两种可能: 情况 A(管理系统): 他们做的不是设备控制,而是给中车做一个“生产管理系统”或“物料追踪系统”。但这通常叫“软件开发”,不叫“做非标产品”。 情况 B(忽悠): 他们根本不知道自己在做什么,或者项目极其杂乱,今天让你写个网页,明天让你写个脚本爬虫。 结论: 所谓的“非标”可能只是一个借口,用来掩盖他们没有技术积累、没有现成框架的事实。 “带团队 18K,不带团队 13K” = 巨大的坑 这是最离谱的一点。 逻辑矛盾: 一个“不关心技术”、“没有面试”、“自己培养”的公司,凭什么要求你“带团队”? 真实含义: 所谓的“带团队”,大概率不是让你做技术管理,而是让你“拉人头”或者“背锅”。 他们可能想把你招进去,让你去管理那帮“没事干”的人,或者让你去教那帮人干活。 13K 的陷阱: 在北京石景山,13K 招一个全栈(Java+Python)还要懂非标业务的人,薪资严重低于市场价。这说明他们只想找廉价劳动力。 “试岗更能看出能力” + “入职第一天不能什么都不干” 翻译过来就是: “我们没空教你,你进来第一天就得能干活。如果你干不出来,3天后滚蛋。” 风险: 结合“市面上没有同类产品”,意味着没有文档、没有注释、没有前人代码。你进去就是面对一堆烂代码(或者空文件夹),全靠自己猜。这根本不是“培养”,这是“逼你自生自灭”。 “石景山房租 2000” 分析: 2000 元在石景山只能租到很偏远的合租房或者老旧小区的单间。这说明公司位置比较偏,或者周边生活配套一般。 结合“中车”: 中车在石景山确实有园区(如二七厂附近),但如果是正规大厂,不会在这种地方搞“试岗3天”的戏码。这更像是一个依附在大厂边缘的小型外包作坊。 📌 为什么这依然是一个“垃圾公司”? 职业发展的死胡同 如果你入职,你的日常可能是: 用 Java 写一些极其简陋的增删改查后台。 用 Python 写一些自动化脚本。 最可怕的是: 你还要负责“沟通”和“带团队”。这意味着你要花大量时间在和那帮“没事干”的人扯皮,而不是写代码。 结果: 一年后,你的 Java/Python 技术没有精进(因为是非标、无框架、自己造轮子),反而学会了怎么在作坊里混日子。 薪资与付出不成正比 13K 在北京招全栈 + 业务逻辑 + 潜在的管理工作,这是压榨。 正规公司招一个能独立负责非标项目后端开发的人,薪资至少 20K 起步。他们给 13K,说明他们不认可技术的价值。 “没有面试”的真相 他们不是不想面试,是没资格面试。 老板或 HR 根本不懂 Java/Python,问不出技术问题。所以他们用“试岗”来代替面试——“你干出来就是牛,干不出来就是菜”,简单粗暴,毫无技术含量。 🛡️ 如果你实在没得选,必须去试岗,请做好以下准备 虽然我不建议你去,但如果你决定去“闯一闯”,请务必保持清醒: 第一天:看代码质量 入职第一件事,让他们给你开权限看代码库。 如果是: 代码没有注释、变量名全是 a/b/c、没有版本管理(Git/SVN)、文件夹乱七八糟。 结论: 快跑! 这种代码山你进去就是填坑的,而且永远填不完。 第二天:看“团队” 观察那些“没事干”的人。他们是真的在思考,还是在打游戏、刷抖音? 如果他们看起来很闲散,且对你的到来漠不关心,说明这个团队毫无凝聚力。所谓的“带团队”就是个笑话。 第三天:谈“具体任务” 问清楚:“如果我入职,第一个月具体要交付什么功能?” 如果对方答不上来,或者只说“看项目安排”,说明项目规划为零。 📌 最终建议 别去。 理由: 技术栈杂乱(Java+Python+非标)、管理混乱(无面试、试岗)、薪资低(13K)、团队氛围差(没事干)。 替代方案: 哪怕去一家小一点的纯软件公司,做标准的 Web 开发或 App 开发,只要能接触到规范的代码和流程,都比去这种“中车边角料”作坊强。 不要被“中车”和“非标”这两个词唬住了。这大概率就是一个想花小钱办大事的草台班子。 ```

弱背书应届生的工程化简历构建方法

## 前言 这篇文章主要是帮助没有工作经历的同学,重构简历的叙事方式。 不是教你堆技术栈,也不是教你追新技术。 而是帮你减少技术焦虑,把最稀缺的资源 —— 注意力,收回来。 很多人简历写得很努力,却没人愿意认真看完。 问题不在努力,而在表达方式。 <br> ## 一、招聘方视角 ### 1. 常见的简历问题 1. 技术应用缺失工程约束 2. 信息密度高,没有主线,关键信息被“噪音”稀释 3. 各种优化成果,却缺乏评测标准 4. 项目描述前后割裂,缺乏上下文 5. 技术深度与项目深度不匹配,显得假大空 很多简历的问题,并不是能力不够,而是表达方式还停留在了功能的完成。 ### 2. 先讲讲面试官的视角 过去一年,我从参与到负责核心链路,横向协作多团队,带新人适应复杂系统,也参与过招聘沟通。 在这个视角下,我越来越清楚一件事: > 作为技术 Leader,决策成本高昂,注意力是稀缺资源。 > 招一个人,本质是在判断风险。 简单来说,候选人大致会被分成两类: - **可培养** - 能兜底风险 - 有结构化思考 - 有基本判断力 - 能管理预期 - **执行者** - 技术复杂或稀缺 - 或者高可替代性技能 应届生几乎不可能是稀缺的专家 所以唯一的突破口是: 让人看到你具备工程判断力。 之前和部门经理聊团队建设时,他说了一句很现实的话: > 什么样的岗位招什么样的人,有些人是很难培养的。 > 扎心,但真实。 --- ### 3. 分层评估候选人工程能力 #### 功能层 | 只是实现过 - 做了什么功能 - 能不能跑起来 #### 系统层 | 大多数人停留的层级 - 模块怎么设计? - 为什么这样分层? - 链路怎么走? #### 工程层 | 真正负责过 - 系统是否稳定 - 性能是否达标 - 成本是否合理 - 是否有故障预案 - 是否具备可观测性 这是对系统负责的视角。 > 系统层和工程层,是区分 Demo 和项目的分界线。 <br> ## 二、求职者如何应对 写在前面的是: 如果不转变对“工程”的理解,只是换个表达方式,依然没用。 ### 核心要点 1. 可信度 2. 工程判断力 3. 项目叙事 ### 可信度 项目中没有实践过的技术栈,不要写进简历。 当没有任何东西为你背书时,技术栈就是债务。 ### 工程判断力 围绕四个问题展开: - 这个点如果做错,会发生什么? - 为什么教程里的默认方案可能有风险? - 你是如何控制这个风险的? - 你用什么指标判断自己没走错? 没有指标的优化,是自我感动。 ### 项目叙事 你以为重要的: - 做了多大的项目 - 用了多少框架 决定你通过的: - 能不能把一个真实问题讲清楚 - 有没有系统层面的工程理解 - 是否具备可培养性和可交付性 ### 如何展示思考过程 - 痛点与定义:为什么要做?怎么定义“可用”与“有效”? - 系统拆解:模块怎么拆?链路怎么走? - 技术选型:为什么选 A 而不是 B ? - 工程落地:怎么评测?怎么回归?线上稳定性与成本如何控制? **加分点:主动讲细节处理和风险点** <br> ## 三、示例:以云图库为例 下面用一个“智能协同云图库”项目做示范。 ### 智能协同云图库 个人独立设计实现的多租户图片存储与协作平台。设计阶段以 100+ 企业租户、百万级图片存储规模为约束,围绕数据隔离、存储成本控制与高并发访问场景进行工程化实现与验证。 - **多租户隔离:** 基于企业 ID 进行逻辑隔离,所有查询与写入操作强制携带租户标识,避免开发遗漏导致越权风险,图片元数据与访问路径均绑定租户标识,结合访问签名控制企业间资源不可互访。 - **存储优化:** 基于腾讯 COS 设计生命周期策略(标准→低频→归档),结合 WebP/AVIF 压缩与 MD5 去重,整体存储占用下降约 30%+。 - **多级缓存:** 日志统计热点图片并预热至 Redis,结合本地 Caffeine 二级缓存降低远程调用开销,并通过短 TTL 控制一致性风险;查询延迟由 100ms+ 降至 20ms 以内。 - **实时协作原型:** 基于 Netty + WebSocket 实现多人编辑同步,采用版本号后写覆盖策略处理并发冲突。 - **审核流程:** 集成内容安全 API,结合 RabbitMQ 构建人工复审队列,实现自动化与流程解耦。 ### 专业技能 - 语言及框架:熟悉 Java 并发模型与集合体系,理解线程池与锁机制的使用场景。熟练使用 SpringBoot、Mybatis 等框架。 - 数据库:熟悉 MySQL ,具备数据建模能力,能够进行索引优化与慢 SQL 分析。 - 缓存体系:掌握 Redis,具备多级缓存设计经验,理解缓存穿透/击穿等高并发问题。 - 消息队列:熟悉 RabbitMQ,了解可靠消费与幂等设计。 - 运维基础:熟悉 Linux 常用命令与 Nginx 负载配置,可独立完成部署与日志排查。

从学不会到学得透:一个后端程序员的系统性成长模型

今天有位编程导航的友友提问,很典型。 “到底该学什么?怎么学?哪些是重点?” 我花了 2 个小时的时间系统性做了分析,从工程体系、学习路径到决策模型,希望能帮助到有所困惑的你。 ![image.png](https://pic.code-nav.cn/post_picture/1807613946127114242/3ez3VRD9OFLM51qW.webp) ### 问题一:学什么? 先说结论:在学什么这个路上,不要过于关注具体的技术,大多数人都是了解什么技术就学什么技术,简历就是技术栈清单表,面试官看到:没有重点,没有体系 → “人才储备库”。 > 从应用构建体系来看,每一个节点学**一个**常用技术。理解其在整个系统中的作用就够了,把工程化思维搭建起来。(5W 追问法深耕) > **工程化架构体系** 1. 语言与开发框架:Go、Java、Python、Node.js 2. 数据库:MySQL、PostgreSQL、MongoDB 3. 分布式与微服务:CAP 定理/分布式事务/负载均衡/雪崩隔离/限流熔断/服务注册发现/RPC 通信 - 这里补充一下 Github 讲分布式的仓库,非常体系化:https://github.com/donnemartin/system-design-primer 4. 缓存与中间件:Redis(缓存)、RabbitMQ/Kafka(消息队列) 5. 接口网关:Nginx、Kong、API Gateway 6. 配置与注册中心:Nacos、Etcd、Consul 7. 容器与部署:Docker、Jenkins、K8S、CI/CD 流水线 8. 安全:对称&非对称加密、TLS/SSL、JWT、OAuth2.0、XSS/CSRF 防护 **可观测性体系** 1. 监控体系:Prometheus(采集指标)、Grafana(数据指标可视化大盘)、Zabbix(了解) 2. 链路追踪:关键词(trace_id),多个微服务之间用一个 ID 关联不同的日志,工具如 Jaeger、Zipkin、SkyWalking 3. 日志平台:Filebeat(边缘节点日志采集)→ Logstash(中心节点日志聚合清洗)→ ElasticSearch(数据存储)→ Kibana(数据可视化) 4. 压测:理论为主,工具为辅 - 核心理论:并发模型(QPS/TPS/RT)、性能瓶颈分析(CPU/内存/IO/网络)、压测策略(梯度加压、峰值测试、稳定性测试) - 常用工具:JMeter、Apache Bench(ab)、Locust、wrk 5. 内存管理及数据库调优:索引优化、垃圾回收机制(GC)、慢查询分析、连接池管理、执行计划分析 --- ### 问题二:怎么学? 学习是两个思维(相辅相成) - 自顶向下的结构化战略思维。 - 自底向上的专业思维。 学习其实就是画一个认知地图,**没有地图的时候(自底向上),有地图(自顶向下)** - 扫盲:基本概念 + 构建认知的地图 - 结构:梳理基本概念的框架、流程、概念网,有大局观。 - 对照:理论 和 实践,找到差异,细节决定成败。 - 验证:做小项目、研究 加深理解。 > 学习就是从细节到整体,再从整体到细节的过程,不断构建认知地图,避免迷路。 > - 避免细节陷阱:定位是概念问题(不知道是什么)还是上下文问题(不知道什么时候用) 示例: ```jsx 1. 问 AI (扫盲) 问题一: RabbitMQ ,What - Why - How? 问题二: RabbitMQ 的第一性原理是什么?边界在哪里? 2. 问 AI + 官网结合(结构) 问题一: RabbitMQ 的核心组件有哪些,他们是如何协同工作的,请用 Mermaid 绘制流程图。 行动二: 看官网,Getting Starter 部分找核心流程图。不断追问 AI 各个节点的能力边界。 行动三: 用自己的话总结流程: 300 字以内,要简洁。同时自行绘制认知地图。 3. 问 AI + Demo(对照) 问题一: 请给出 RabbitMQ 核心功能的 MVP 示例,基于 XXX 语言。(需要给 AI 补充环境、版本信息) 行动二: 对照自己绘制的认知地图,把跑通的 MVP 示例整理一下,对比初次理解和实践之后的理解,模拟超出 边界的情况。 行动三: 总结 4. 问 AI + 小项目/小研究(验证) 问题一(说明自己的项目背景): 我当前的项目情况是这样的: xxx。请给出生产级的接入技术栈建议。(自行发挥这块) ``` 通过上面的循环,学会了一个工程体系中的某一环技术,相同品类的技术就可以用自顶向下的战略思维去学了,就是直接跳转到差异对照 + 实践。 --- ### 问题三:哪些重点学? 结论:没有所谓绝对的重点(项目需要啥学啥,要多深学多深,不要做没有价值的事情) ```diff 技术和业务根本不是两个不同的方向,就是深度绑定的。 技术是价值交换的基础,业务是价值的放大器。 如果连价值交换的资本都没有(人、技术、资源),那么也没有人跟你聊业务。 大多数年轻人唯一有的资本不就是多学技术。 大部分公司哪学得到技术,更多是团队协作、业务分析, 技术选型都是拍脑袋,用最熟的。 把自己的工程思维这条链路搭起来:功能 -> 数据库 -> 缓存 -> 队列 -> 分布式 -> 部署 -> 可观测性 -> 安全。 花点钱,买几台服务器玩玩,把整套东西自己从零搭一遍,上面这套技术换哪个项目都大差不差。 也不用刻意去补了,就是用啥学啥,要多深学多深,不要做没有价值的事情。 有了技术才能上牌桌,再去学产品、营销呀,根扎好了就要开花了。 如果干了五年面试还在背八股、聊八股,那么基本上工具人跑不了了 ``` - 1-3 年:all in工程化架构体系与性能优化。 - 3-5 年:学看数据、做决策,带小团队。 - 5-10年:定垂直方向,交换价值。技术、产品、营销 跨领域整合。 --- ### 问题四:如何复盘? **两类:** 1. 每日复盘 2. 项目复盘 **每日复盘:** 1. 今天完成了哪些关键任务? 2. 过程中有什么超出预期的卡点? 3. 明天的计划是什么? 4. (额外:今天有什么 Insight(洞察)) **项目复盘(GRAP)** 1. **Goal(目标)**:项目的核心目标是什么?预期达成什么效果? 2. **Result(结果)**:实际完成情况如何?达成了哪些指标?哪些没达成? 3. **Analysis(分析)**:为什么会出现这样的结果? - 做得好的地方:哪些决策、方法、协作是有效的? - 做得不好的地方:哪些环节出了问题?技术选型、时间评估、沟通协作? - 外部因素:需求变更、资源不足、依赖方延期等 4. **Plan(行动计划)**:下次如何改进? - 技术层面:哪些技术debt需要还?哪些架构需要优化? - 流程层面:评审、开发、测试流程哪里可以优化? - 个人成长:这次项目学到了什么?哪些能力需要提升? **经历本身没有价值,经历过后的思考才有价值。** --- ### 问题五:面试能力怎么提升 抓住本质: 1. 是否能准确地传达自己的信息。 2. 对项目细节是否有深刻的了解。 3. 技术栈体系是否匹配 人无完人,不可能所有的东西都会。 化被动为主动,不会的问题,主动承认。主动将自己能提供给对方且相匹配的价值,用体系化的方式传递出去才是关键。 背景 → 冲突 → 问题 → 解决方案 → 成果 > 面试心态:不要在意别人对你的看法,而是在意你是否能帮对方解决问题,把自己抽离出来。 --- ### 问题六:如何做决策 把你自己看成一个公司,做决策的是 CEO,最重要的是视野宽阔,信息充足,并且充分结构化。 如果两个选择差不多,那么就永远没办法选择哪个最好,因此牢记一句话: > 没有调研就没有发言权,数据是驱动决策第一关键因素 > **阶段分层:** - 定义目标 - 信息收集(不要加过多的评判,只采集) - 信息分析 - MECE 分类 - RICE 优先级排序 - ROI 回报率(风险-收益 矩阵) - … - 决策执行 - MVP 模型:用最小的资源,先尝试看反馈。 - … - 结果复盘:上面已经讲过的 GRAP 模型 > 在做某一层任务的时候,不要过度想着其他层的事 > **一件事情做再久都不可能做得完美,但总有时间做完一件事。学会给每件事定义一个边界,以免无限扩张。** --- ![image.png](https://pic.code-nav.cn/post_picture/1807613946127114242/zw7IHI1OPjdBZ0xW.webp)

被面试官锤醒后,我才真正开始准备 | 明天腾讯云智实习面,求最后一波冲刺建议!

**还是先谢过各位老爷点进来看。** 我是武汉某二本软件工程大三狗,Java方向。说句实话,从5月初开始找实习,找得我有点怀疑人生——尤其在武汉这个“互联网坟场”里。面了不少小厂,线上线下都有,偶尔有点机会,但总是无疾而终。 第一个面试是个常出差的,虽然在武汉上班是965,但一出差就变996,一跑就是一个月起步。我直接没去二面。后面面的一些小厂,要么没消息,要么面试聊着聊着感觉就凉了。 我开始怀疑是不是自己太菜了,菜的很全面啊。 但我不服,我不能接受自己“菜”这个结论。 于是我开始**狂刷八股文**,**每一场面试我都录音+复盘**,分析自己到底哪一步出错了。这两周面得多了,也有点总结想分享一下。 ## 一些思考 ### 01 | 底子不硬,一锤就碎 你可能听腻了“基础重要”这种废话,但我还是要讲。真的很重要。 我面试这么多场,面试官基本没问什么高大上的东西,MVCC、线程池、JVM啥的,几乎没涉及。也许是看我简历一坨史,怕问了直接当场去世,也可能都是小厂。但有一场问了个异常处理的小题,`try-catch-finally` 的执行顺序,加入了一个文件写入的场景,我回答地还行,但也意识到一件事: **JavaSE 一定得系统学,有结构的学。** 什么集合、并发、异常、I/O、反射,不只是会用,更要**成体系地理解**,否则就是背八股,一问场景就暴露。 ### 02 | 会不会表达,直接决定你能不能进下一轮 也就是表达的逻辑能力,我吃过亏,脑子里一定要知道自己在讲什么有一场问 `ArrayList` 和 `LinkedList` 的区别,我开始背底层结构,什动摇数组,链表啊,性能啊...,然后面试官问我项目中有没有用到ArrayList转换成数组的场景,然后讲到一半脑袋宕机,空白。 其实回头一想,这种题除了讲原理,更应该讲**场景**。你项目中用过吗?你怎么用的?哪种结构适合哪种需求?你讲这些比“ArrayList底层是数组”更打动人。 如果项目中没用过?编!真的编一个合理的场景也比干讲八股强一百倍。 ### 03 | 原理 + 场景 + 项目结合 = 面试黄金表达公式 懂原理 + 能落地 在第二点提前讲了一些,但是这里想说的更加详细一些,第一次面试的时候问我java的三大特性,我张口就来,面向对象啊,封装啊,多态啊,继承啊....,然后他问项目有哪些用到了这些特性,笑了我能说哪哪都用到了吗,然后思考了一些就说 MyBatis-Plus 的分页查询用到了 Java 的继承特性,还有一些实体类,用了封装 Service 层 将复杂的业务逻辑封装在 service 方法中,对外只暴露一个接口 还好哥们反应快,不然真有可能就G了,也可能是太菜了,没学的透彻,,纸上谈兵没用,你得能把原理落地到项目场景里,不然就是背书小学生。回去我问了也在找java实习的同学,他没回答上来,md也是一个菜B...... 反思了应该是自己的学习方式有问题,死学习了,要去复盘面试、系统补课、练习表达、整理知识框架,每天都像在补偿之前浪费的时间。我认为这就是和哪些牛B同学拉开距离的本质,再加上别人比你会卷,我靠,比你会学还比你卷,拿什么和他们拼,拿命吗,不被优化谁被优化,好在不太晚怎么说也是有些东西在身上的,这段时间脑子乱乱的需要整理思考的东西,好好思考去实践自己的想法 ## 明天要面腾讯云智,真的有点慌 但是话又说回来,明天要面腾讯云智有点紧张了,我寻思着我着简历放面试官电脑里都嫌多了一坨史,还能过腾讯的简历啊后面了解了才知道 武汉腾讯云智是腾讯云的一个重要组成部分,它**并不是传统意义上的外包公司** ,我去这个已经是哥们面试最屌的公司了,带个腾讯的,今晚狠狠的突击一下,把面试鸭刷穿,搏 要是你也经历过这种迷茫和锤醒,欢迎来评论区交流;要是你面过腾讯云智,求分享一手面经; 这是我的简历还请大佬们狠狠“羞辱”我 ![微信图片_20250605214845.jpg](https://pic.code-nav.cn/post_picture/1742363828022181889/svISmOQmc60j18BN.webp) ![微信图片_20250605214937.jpg](https://pic.code-nav.cn/post_picture/1742363828022181889/IAN721AC1JTU4zvx.webp)

(复试篇)在职党必看:一战395分上岸东华大学研究生经验分享

# 1. 出分后联系导师 出分后如果成绩比较高,且自己履历可以,可以主动联系导师。 导师的联系方式可以到学校官网去找,根据自己感兴趣的研究方向选择联系即可,注意不要一次性联系多个导师,因为导师们都认识,如果知道了会很尴尬。 然后就是准备简历,简历的模版可以参考我这个:<img src="https://pic.code-nav.cn/post_picture/1721896042632441858/kIqAm1KFM5rYduuM.webp" alt="" width="576px" /> 其中有几个要点: 1. 简历在哪里做:推荐老鱼简历,里面有我使用的这个模版:[老鱼简历 - 写简历从未如此简单](https://www.laoyujianli.com/)<img src="https://pic.code-nav.cn/post_picture/1721896042632441858/WoVzpuImZ860KNQO.webp" alt="" width="100%" /> 2. 着重突出自己的初试成绩和项目经历。在面试时会注重问项目的,所以要准备好。如果没有项目,可以从【编程导航】中找两个项目去做,编程导航地址:[编程导航 - 程序员一站式编程学习交流社区,做您编程学习路上的导航员](https://www.codefather.cn/course)。我写的是OJ可以参考我的项目:[课程分享:【本科毕设项目】SSPU-OJ](https://www.codefather.cn/post/1905570883688177665)。或在【教程】专区挑几个简单的:![](https://pic.code-nav.cn/post_picture/1721896042632441858/r1BIvVlX8mgzGfbd.webp) 3. 如果老鱼简历没有会员导出会有水印,可以使用网上的免费去水印工具,如[在线PDF水印去除工具 - 在线超级转换工具](https://www.wdku.net/PDFWatermark) 4. 简历的命名推荐用【姓名-初试成绩-绩点】的格式,如:ZZX-初试395分-绩点4.11 5. 准备好简历以后,就可以结合下面的自我介绍模板,通过邮件去联系导师了:![](https://pic.code-nav.cn/post_picture/1721896042632441858/A4OBW7BTUTIODskA.webp) 6. 如果成绩一般,也可以等录取之后再联系,这个联系导师环节相比于准备复试不是很关键~ # 2. 备考机试 初试结束后可以休息一个月,然后等到大概1月中旬,东华会公布复试机试的题库一共基础135道题+进阶100道题:[东华大学计算机科学与技术学院2025年硕士研究生复试上机考试说明](https://cst.dhu.edu.cn/2025/0116/c12723a358592/page.htm) <img src="https://pic.code-nav.cn/post_picture/1721896042632441858/ERgoipZlMZzhTzNl.png" alt="" width="100%" /> 如果估分觉得自己够分数线,那么可以提前做这些题。 如果觉得要等初试正式出分,再开始做也可以。不过要平均每天20道题。 等做完一遍后,可以把【精华版机试题库】过一遍,我自己整理的: ![](https://pic.code-nav.cn/post_picture/1721896042632441858/Tqijt5PSugdPyFKa.webp)![](https://pic.code-nav.cn/post_picture/1721896042632441858/WkYEYUfWi0OJL90p.webp) 把这些题目做完,问题就不大了。 # 3. 备考面试 面试流程为: ![](https://pic.code-nav.cn/post_picture/1721896042632441858/z0jg5GTZtrBAxIP4.webp) 备考面试可以购买【米研教育】的复习书,我当时用的这个,感觉还可以:![](https://pic.code-nav.cn/post_picture/1721896042632441858/LIdwMgXIOf37vLpa.webp) 备考面试主要包括以下要点: 1. **自我介绍**:考生自我介绍(建议3分钟),中文(本科阶段综合表现、项目经历、研究生科研与实践规划等),如:![](https://pic.code-nav.cn/post_picture/1721896042632441858/MyzGHQkHWB8LnDJ2.webp) 2. **专业课知识巩固**:把数据结构和数据库两个专业课的课本看看就行,对概念搞清楚就好,比初试简单很多。 3. **英文文献翻译**:这个问题不大,就是面试时会给出一个英文段落,让读一句翻译一句,不难。 4. **吃透简历**(尤其是项目):把毕设项目和其他项目的主要技术和算法搞透,可以结合自己的毕设论文或项目的来源相关文档进行复习。这个部分是提问的重点。

请允许我花出一些时间,暂时放弃专业性,占用咱们编程导航资源来曝光一家在面试过程中恶意PUA的公司:杭州利提提科技公司 面试罪证如下: 1. 以机试名义套取方案,而且还拆分成线上线下两部分 2. 填写基本信息表被要求绝对完整事无巨细的填写,这之前从未遇到过,填表没那么细也能答得流畅一些,我只能被迫填写无关、保密、入职后提供等内容 3. 超雄面试官不断PUA,从一件小瑕疵开始到后面体无完肤的否定和打压,然后以无法沟通和交流为由结束面试 最后怎么做的(最好不要学我,除非真的践踏尊严了): 把信息表撕碎了,揉成团,直接砸面试官脸上,反正以后都拉黑这家公司,这家小破公司也不至于去扩散拉黑我 这一次不分享相关面试经验,就是一次套方案+PUA

看到公司内在讨论 Ai 面试作弊的问题, 建议有这样想法的同学要慎重。 我当年也见过作弊被抓的, 那会儿看别人的简历还不需要面试官权限, 简历系统上,名字旁边标着两个大字:“作弊”。 我相信不会有哪个部门会要这样的简历, 用 AI 模拟面试,提升自己的面试技巧✅ 用 AI 优化简历,突出简历的优点✅ 用 AI 作弊,试图欺骗面试官这是你的水平❌ 除非面试官明确告诉你是开放题,可以用 AI 辅助解决。 否则不要轻易尝试。

聊一聊昨天的面试

算法是真的尴尬。 ### 字节外包 前几天面试的时候,面试官给了我一道链表题。 10分钟以后告诉我:你时间到了。 * 首先,是需要手写代码的。不能用idea这种辅助工具 * 代码行数大概30行左右。 * 时间是10分钟 * 难度是leetcode中等 我:???? 面试完了和别人聊了聊,人家就说:板子题。热门题。 人话就是:这个时间段内想AC,就只能死记硬背。假如背不下来就AC不了。动脑子想算法的话,完蛋。 想思路想个三五分钟,代码就写不完了。 个人评价:字节不缺人。 ### 美团外包 昨天面试了美团外包。 15分钟,链表题,leetcode中等。 * 首先,是需要手写代码的。不能用idea这种辅助工具 * 代码行数大概30行左右。 * 时间是15分钟 * 难度是leetcode中等 然后,我XX又差点AC。 我全写对,大概需要20分钟。可惜只给了15分钟。 这一次评价:是我比较菜。 ### 总结 没啥好总结的: * 大厂外包考试算法题 * 无IDE辅助15分钟AC * 难度leetcode中等或者简单 * 会考链表题 就这样

下载 APP