🚀 30 天工业软件转型学习计划(详细执行版)

🗓️ 30 天系统性转型计划 · 面向有 Web 开发经验的 C# 转型者 · 目标岗位:工业软件 / MES / 上位机(成都)

📑 目录

- 📋 前言:三个前提

- 🛠️ 第 0 天:环境准备(详细版)

- IDE 与运行时

- 数据库

- 工业通信模拟工具

- IoT 与消息队列

- 开发辅助

- 1️⃣ 第一阶段:C# 上位机基础与通信打底(Day1-Day7)

- Day1:C# 核心回炉

- Day2:WinForm 快速上手

- Day3:WPF + MVVM 入门

- Day4:串口通信开发

- Day5:TCP Socket 通信

- Day6:多线程与 UI 解耦

- Day7:工程化与项目骨架

- 2️⃣ 第二阶段:Modbus 协议与数据采集(Day8-Day14)

- Day8:Modbus 协议原理

- Day9:NModbus4 实战

- Day10:点位表设计

- Day11:字节序与类型转换坑

- Day12:数据库设计

- Day13:实时曲线与报警系统

- Day14:阶段复盘与项目包装

- 3️⃣ 第三阶段:OPC UA 与 MES 业务开发(Day15-Day22)

- Day15:MES 核心业务流

- Day16:MES 数据模型设计

- Day17:扫码过站追溯实现

- Day18:OPC UA 协议原理

- Day19:OPC UA 订阅式开发

- Day20:OEE 计算与设备看板

- Day21:生产看板开发

- Day22:权限审计与系统集成

- 4️⃣ 第四阶段:MQTT、AI 与整合投递(Day23-Day30)

- Day23:MQTT 协议原理

- Day24:断网缓存与补传机制

- Day25:FastAPI 数据服务

- Day26:大模型自动生成生产日报

- Day27:RAG 工厂知识库问答

- Day28:项目整合与演示视频

- Day29:简历定稿

- Day30:密集投递与面试准备

- ✅ 每周自检清单

- 第 1 周末(Day7)自检

- 第 2 周末(Day14)自检

- 第 3 周末(Day21)自检

- 第 4 周末(Day30)自检

- ⚠️ 三个常见陷阱

- 陷阱 1:只看教程不动手

- 陷阱 2:想先学 PLC 梯形图再转

- 陷阱 3:等项目完美了再投简历

- 🚀 30 天后的进阶路线

- 第 2-3 个月:深化与入职

- 第 4-6 个月:岗位深耕

- 第 7-12 个月:能力跃迁

- 💼 面试准备要点

- 简历关键词清单

- 项目包装话术

- 常见面试问题与回答思路

- Q1:Modbus 和 OPC UA 有什么区别?什么时候用哪个?

- Q2:串口粘包怎么处理?

- Q3:多线程 UI 卡怎么优化?

- Q4:为什么选 C# 而不是 Python 做上位机?

- 成都本地投递渠道

- 薪资参考(成都)

📋 前言:三个前提

  1. 时间投入:工作日每天 2-3 小时,周末 4-6 小时,30 天累计约 80-100 小时。对于有 Web 开发经验的开发者,C# 语法迁移成本较低,重点在于工业协议与硬件通信。
  2. 不等学完再投:第 15 天起就开始投递,边学边面。成都高新区、郫都区、龙泉驿区有大量 MES/上位机岗位,面试反馈是最好的学习方向标。
  3. 每天有产出:代码、笔记、截图、可演示程序。30 天后你将拥有一个完整的 GitHub 仓库和演示视频,而非一堆零散笔记。

🛠️ 第 0 天:环境准备(详细版)

IDE 与运行时

数据库

工业通信模拟工具

IoT 与消息队列

开发辅助

1️⃣ 第一阶段:C# 上位机基础与通信打底(Day1-Day7)

Day1:C# 核心回炉

🎯 学习目标 补齐 C# 在工控场景下的核心特性,重点掌握异步编程与内存管理。
📌 技术重点
💡 学习思路 你有 Web 开发基础,C# 语法迁移快。不要从头看教程,直接针对上述 5 个点写控制台程序验证。重点放在 async/await 和 ConcurrentDictionary,这两个在工控中踩坑最多。推荐微软官方文档「Asynchronous programming with async and await」章节。
✅ 具体练习 创建一个控制台项目 Day1_CSharpCore:
  1. 写一个异步方法模拟设备数据采集,使用 CancellationToken 支持优雅停止。
  2. 用 ConcurrentDictionary 实现线程安全的设备状态缓存。
  3. 用自定义 Attribute+ 反射实现一个简单的配置类自动加载。
⚠️ 常见坑与注意事项

Day2:WinForm 快速上手

🎯 学习目标 掌握 WinForm 在工控场景下的快速开发能力,很多老项目仍用 WinForm。
📌 技术重点
💡 学习思路 WinForm 上手极快,1 天足够。重点不是学控件属性,而是理解「跨线程 UI 更新」和「自定义控件绘制」。推荐看微软官方「Windows Forms documentation」中的「Custom Painting」章节。
✅ 具体练习 创建 WinForm 项目 Day2_WinForm:
  1. 用 DataGridView 展示模拟设备数据,支持按列排序。
  2. 用 Timer 每秒更新数据,通过 BeginInvoke 安全刷新 UI。
  3. 自定义一个 IndicatorLight 控件,支持颜色、闪烁、状态文本。
⚠️ 常见坑与注意事项

Day3:WPF + MVVM 入门

🎯 学习目标 掌握 WPF + MVVM,现代上位机开发的主流选择。
📌 技术重点
💡 学习思路 WPF 学习曲线陡,但你有 Web 经验,XAML 类比 HTML,Binding 类比 Vue/React 的响应式。不要从零手写 MVVM,直接用 Prism 模板。推荐 Brian Lagunas 的「Prism Bootcamp」免费视频。
✅ 具体练习 创建 WPF 项目 Day3_WpfMvvm(使用 Prism 模板):
  1. 实现一个设备监控主界面,左侧设备列表,右侧详情。
  2. 用 EventAggregator 实现设备选择联动详情刷新。
  3. 自定义一个 LedIndicator 控件,通过绑定改变状态。
⚠️ 常见坑与注意事项

Day4:串口通信开发

🎯 学习目标 掌握串口通信,工控中最基础的物理层通信方式。
📌 技术重点
💡 学习思路 先理解物理层差异,再写代码。用 Modbus Slave 模拟从站,你的程序作主站发送 Modbus RTU 帧。重点攻克「粘包处理」,这是串口开发的核心难点。推荐看「Serial Communication Protocols」相关文档。
✅ 具体练习 创建项目 Day4_SerialPort:
  1. 实现串口配置界面(端口、波特率、数据位等下拉选择)。
  2. 实现帧解析状态机:IDLE -> HEADER -> DATA -> CHECKSUM -> COMPLETE。
  3. 用 Modbus Slave 模拟从站,你的程序发送 03 功能码读取寄存器并解析。
⚠️ 常见坑与注意事项

Day5:TCP Socket 通信

🎯 学习目标 掌握 TCP Socket 编程,工业以太网通信的基础。
📌 技术重点
💡 学习思路 你有 Web 后端经验,TCP Socket 概念不陌生。重点放在「心跳+断线重连+粘包」三件套,这是工控 TCP 通信的标配。推荐看《C# Network Programming》相关章节。
✅ 具体练习 创建项目 Day5_TcpSocket:
  1. 实现 TCP 服务端,支持多客户端连接,用 ConcurrentDictionary 管理会话。
  2. 实现长度前缀协议:4 字节长度头 + N 字节数据体。
  3. 实现心跳检测(30 秒无数据断开)和断线重连(指数退避:1s/2s/4s/8s…最大 60s)。
⚠️ 常见坑与注意事项

Day6:多线程与 UI 解耦

🎯 学习目标 掌握工控程序的多线程架构,确保 UI 流畅、采集稳定。
📌 技术重点
💡 学习思路 工控程序典型架构:采集线程(后台)-> 消息队列 -> 处理线程(后台)-> UI 更新(主线程)。这个模型必须烂熟于心。重点理解 Channel<T>,它是.NET Core 下生产者消费者的最佳实践。
✅ 具体练习 创建项目 Day6_MultiThread:
  1. 用 Channel<T> 实现采集-处理-UI 三层架构。
  2. 采集线程每秒产生 100 条模拟数据,处理线程聚合后推送到 UI。
  3. 用 SemaphoreSlim 限制并发数据库写入数。
⚠️ 常见坑与注意事项

Day7:工程化与项目骨架

🎯 学习目标 搭建工控项目的标准工程化骨架,后续所有项目复用。
📌 技术重点
💡 学习思路 工程化不是可选项,是工控软件的底线。现场环境千奇百怪,没有日志和异常处理等于裸奔。把 Day7 的产出作为后续所有项目的模板。
✅ 具体练习 创建项目 Day7_ProjectTemplate:
  1. 集成 Serilog,配置按天滚动+控制台输出。
  2. 实现全局异常捕获,异常写入日志并弹窗提示。
  3. 写一个协议解析器的单元测试,覆盖正常帧、异常帧、边界值。
  4. 将以上整合为 Visual Studio 项目模板。
⚠️ 常见坑与注意事项

2️⃣ 第二阶段:Modbus 协议与数据采集(Day8-Day14)

Day8:Modbus 协议原理

🎯 学习目标 彻底理解 Modbus 协议,这是工控通信的「普通话」。
📌 技术重点
💡 学习思路 不要死记硬背,对照 Modbus Slave 的界面理解四种数据区。用 Modbus Poll 手动发几条指令,观察报文和响应。推荐《Modbus Application Protocol Specification V1.1b3》官方文档。
✅ 具体练习
  1. 用 Modbus Slave 创建模拟设备:线圈 10 个、保持寄存器 20 个。
  2. 用 Modbus Poll 读取并写入,记录每次的完整报文(十六进制)。
  3. 手动计算:读 40001 开始的 3 个寄存器,写出完整 RTU 帧和 TCP 帧。
⚠️ 常见坑与注意事项

Day9:NModbus4 实战

🎯 学习目标 用 C# 库实现 Modbus 通信,替代手写协议解析。
📌 技术重点
💡 学习思路 先读 NModbus4 的 GitHub README 和示例,理解 API 设计。然后对接 Day8 的 Modbus Slave,验证读写。重点测试异常场景:设备离线、非法地址、超时。
✅ 具体练习 创建项目 Day9_ModbusClient:
  1. 封装 ModbusService 类,提供 ReadRegistersAsync(address, count) 和WriteRegisterAsync(address, value)。
  2. 实现自动重连:连接失败时指数退避重试 3 次。
  3. 写单元测试:用 Modbus Slave 模拟正常和异常响应。
⚠️ 常见坑与注意事项

Day10:点位表设计

🎯 学习目标 掌握工业点位表设计,这是数据采集的配置核心。
📌 技术重点
💡 学习思路 找一份真实的 MES 点位表模板(网上搜「PLC 点位表模板」),理解每个字段的含义。然后设计自己的模板,用 EPPlus 或 MiniExcel 库实现加载。
✅ 具体练习 创建项目 Day10_PointTable:
  1. 设计 Excel 点位表模板,包含至少 20 个点位,覆盖各种数据类型。
  2. 实现 PointTableLoader 类,加载 Excel 并校验(地址格式、数据类型合法性)。
  3. 根据点位表自动生成 Modbus 采集任务列表。
⚠️ 常见坑与注意事项

Day11:字节序与类型转换坑

🎯 学习目标 彻底解决工控中最头疼的字节序问题。
📌 技术重点
💡 学习思路 这是纯实操技能,看文档不如写代码验证。准备已知值的浮点数,写入 PLC 后用不同字节序读取,观察哪种正确。推荐用在线工具「Float to Hex Converter」辅助验证。
✅ 具体练习 创建项目 Day11_Endianness:
  1. 写一个字节序转换工具类,支持 BigEndian/LittleEndian 互转。
  2. 实现浮点数与字节数组的双向转换(覆盖 4 种字节序)。
  3. 用已知值验证:如浮点数 3.14 在不同字节序下的十六进制表示。
⚠️ 常见坑与注意事项

Day12:数据库设计

🎯 学习目标 设计工业数据采集的数据库模型,支撑后续 MES 业务。
📌 技术重点
💡 学习思路 先画 ER 图再写 SQL。工业数据的特点是写入量大、读取按时间范围查询。表设计要兼顾写入性能和查询效率。推荐看「Time-series database design patterns」相关文档。
✅ 具体练习 创建项目 Day12_Database:
  1. 用 SQL Server/MySQL 创建上述 5 张核心表。
  2. 写 EF Core 实体类和 DbContext。
  3. 实现批量插入优化:用 BulkCopy 或 EF Core 的 AddRange+ 事务。
⚠️ 常见坑与注意事项

Day13:实时曲线与报警系统

🎯 学习目标 实现工业监控的核心功能:实时曲线和报警。
📌 技术重点
💡 学习思路 先学会用 ScottPlot 画静态曲线,再实现动态刷新。报警系统先做简单的阈值判断,后续可升级为规则引擎。
✅ 具体练习 创建项目 Day13_Alarm:
  1. 用 ScottPlot 实现温度/压力实时曲线,支持缩放和游标。
  2. 实现报警规则:当温度>80 度时触发高级别报警,<30 度触发低级别报警。
  3. 报警列表支持确认、消音、历史记录查询。
⚠️ 常见坑与注意事项

Day14:阶段复盘与项目包装

🎯 学习目标 整理第一阶段成果,开始准备简历和面试素材。
📌 技术重点
💡 学习思路 不要等所有阶段结束才准备简历。第 14 天就开始写,后面每个阶段都往简历里加内容。面试看的是你能做出东西,不是学了多久。
✅ 具体练习
  1. 整理 Day1-Day7 的所有代码到一个 GitHub 仓库,写完整的 README。
  2. 画一张系统架构图:上位机 -> Modbus -> 数据库 -> 看板。
  3. 写简历初稿,重点描述你做的上位机项目。
⚠️ 常见坑与注意事项

3️⃣ 第三阶段:OPC UA 与 MES 业务开发(Day15-Day22)

Day15:MES 核心业务流

🎯 学习目标 理解 MES 系统的核心业务流程,这是工业软件的核心价值所在。
📌 技术重点
💡 学习思路 先理解业务再写代码。找一份 MES 需求文档(网上搜「MES 系统需求规格说明书」),理解每个业务环节的数据流。推荐看 ISA-95 标准中关于 MES 功能的描述。
✅ 具体练习
  1. 画 MES 核心业务流程图:ERP 下计划 -> MES 排工单 -> 产线执行 -> 报工 -> 数据回传 ERP。
  2. 设计工单状态机代码,覆盖所有状态流转和非法操作拦截。
  3. 实现 OEE 计算器:输入设备运行日志,输出 OEE 指标。
⚠️ 常见坑与注意事项

Day16:MES 数据模型设计

🎯 学习目标 设计 MES 系统的数据库模型和 API 接口。
📌 技术重点
💡 学习思路 先设计表结构再写代码。工业系统的表设计比 Web 系统更复杂,因为涉及大量的状态流转和追溯关系。推荐看「Database design for manufacturing execution systems」相关文档。
✅ 具体练习 创建项目 Day16_MES_Model:
  1. 创建 MES 核心数据库表(工单、工序、报工、质量、OEE)。
  2. 用 EF Core 生成实体类和 DbContext。
  3. 实现工单 API:创建、查询、报工、关闭。
⚠️ 常见坑与注意事项

Day17:扫码过站追溯实现

🎯 学习目标 实现工业追溯的核心功能:扫码过站。
📌 技术重点
💡 学习思路 先用串口模拟扫码枪(很多扫码枪支持串口模式),实现基本的扫码录入。然后构建追溯链。推荐看「Barcode scanning in industrial applications」相关文档。
✅ 具体练习 创建项目 Day17_Traceability:
  1. 实现串口扫码枪监听,自动读取条码并解析。
  2. 实现过站逻辑:扫码后查询工单状态,记录过站信息到数据库。
  3. 实现追溯查询:输入成品条码,展示完整生产链路。
⚠️ 常见坑与注意事项

Day18:OPC UA 协议原理

🎯 学习目标 理解 OPC UA 协议架构和核心概念,这是工业 4.0 的通信标准。
📌 技术重点
💡 学习思路 OPC UA 比 Modbus 复杂很多,不要试图一次性学完。先理解架构和节点浏览,能读数据就行。推荐看 OPC Foundation 官方文档「OPC UA Specification Part 1-3」和 Prosys 的免费教程。
✅ 具体练习
  1. 启动 Prosys Simulation Server,用 UA Expert(免费 OPC UA 客户端)浏览节点树。
  2. 理解命名空间、节点 ID、变量值的结构。
  3. 手动读取模拟服务器的温度、压力等变量。
⚠️ 常见坑与注意事项

Day19:OPC UA 订阅式开发

🎯 学习目标 用 C# 实现 OPC UA 客户端,掌握订阅式数据读取。
📌 技术重点
💡 学习思路 先实现同步读取验证连接正常,再实现订阅模式。订阅是工业采集的最佳实践,比轮询更高效。推荐看 GitHub 上 OPCFoundation/UA-.NETStandard 的示例代码。
✅ 具体练习 创建项目 Day19_OpcUaClient:
  1. 实现 OPC UA 客户端连接 Prosys 仿真服务器。
  2. 实现同步读取:读取指定节点的值。
  3. 实现订阅模式:订阅 10 个变量,数据变化时自动回调处理。
  4. 读取历史数据并绘制曲线。
⚠️ 常见坑与注意事项

Day20:OEE 计算与设备看板

🎯 学习目标 实现 OEE 计算和设备状态看板,这是车间主任最关注的指标。
📌 技术重点
💡 学习思路 OEE 计算看似简单,但实际落地有很多细节。先实现基础版本(可用率 x 表现性 x 质量率),后续根据工厂实际情况调整。推荐看 SMED 和 TPM 相关方法论。
✅ 具体练习 创建项目 Day20_OEE:
  1. 实现设备状态记录服务:记录设备状态切换时间和原因。
  2. 实现 OEE 计算器:按班/天/周/月统计 OEE 及三大率。
  3. 用 WPF/WinForm 制作设备看板界面:显示实时状态、OEE 趋势、报警信息。
⚠️ 常见坑与注意事项

Day21:生产看板开发

🎯 学习目标 开发车间生产看板,实时展示生产进度和关键指标。
📌 技术重点
💡 学习思路 先用 Blazor Server 做一个简单的看板页面,再逐步丰富内容。工控看板不同于 BI 报表,要突出实时性和异常提示。推荐看「Factory dashboard design best practices」相关文档。
✅ 具体练习 创建项目 Day21_Dashboard:
  1. 用 Blazor Server 创建生产看板页面。
  2. 用 SignalR 实现实时数据推送(设备状态、产量、报警)。
  3. 集成图表组件:生产进度甘特图、OEE 仪表盘、报警列表。
  4. 适配大屏分辨率,设置自动全屏模式。
⚠️ 常见坑与注意事项

Day22:权限审计与系统集成

🎯 学习目标 完善 MES 系统的权限管理和系统集成能力。
📌 技术重点
💡 学习思路 权限和审计是工业系统从「能用」到「好用」的关键。先实现基础 RBAC,再根据实际需求扩展。推荐看「Role-based access control implementation patterns」相关文档。
✅ 具体练习 创建项目 Day22_Integration:
  1. 实现 RBAC 权限系统:用户管理、角色管理、权限分配。
  2. 实现审计日志中间件:自动记录所有写操作。
  3. 实现 Excel 导出服务:导出生产报表、质量报表。
  4. 用 Postman 测试所有 API 接口,编写接口文档。
⚠️ 常见坑与注意事项

4️⃣ 第四阶段:MQTT、AI 与整合投递(Day23-Day30)

Day23:MQTT 协议原理

🎯 学习目标 掌握 MQTT 协议,实现工业设备数据上云。
📌 技术重点
💡 学习思路 MQTT 比 Modbus 和 OPC UA 简单很多,重点理解 Topic 设计和 QoS。工业场景下 MQTT 常用于边缘设备到云平台的数据传输。推荐看 EMQX 官方文档和 MQTT.org 规范。
✅ 具体练习
  1. Docker 部署 EMQX,用 MQTTX 连接测试发布订阅。
  2. 设计工业 Topic 规范:如 factory/{code}/device/{deviceId}/telemetry。
  3. 实现 C# MQTT 客户端:连接 EMQX、发布设备数据、订阅控制指令。
⚠️ 常见坑与注意事项

Day24:断网缓存与补传机制

🎯 学习目标 实现工业场景下的断网数据缓存和恢复补传,这是现场真实痛点。
📌 技术重点
💡 学习思路 这是区分「Demo 项目」和「工业级项目」的关键能力。现场网络不稳定是常态,不能假设网络永远在线。推荐看「Edge computing data buffering patterns」相关文档。
✅ 具体练习 创建项目 Day24_Offline:
  1. 实现本地 SQLite 缓存服务:数据写入本地表。
  2. 实现断网检测:定时心跳,失败 3 次判定断网。
  3. 实现补传服务:网络恢复后从本地表读取未上报数据,按序发送。
  4. 实现消息去重:服务端记录最近 N 条消息 ID,拒绝重复。
⚠️ 常见坑与注意事项

Day25:FastAPI 数据服务

🎯 学习目标 用 Python FastAPI 搭建工业数据服务接口。
📌 技术重点
💡 学习思路 你有 Python 基础,FastAPI 上手很快。重点理解 RESTful 设计原则和异步编程模式。推荐看 FastAPI 官方文档和「REST API design best practices」相关文档。
✅ 具体练习 创建项目 Day25_FastAPI:
  1. 搭建 FastAPI 项目骨架:路由、中间件、异常处理、日志。
  2. 实现设备数据 API:上传数据、查询数据、统计汇总。
  3. 实现 MES 业务 API:工单管理、报工、质量检验。
  4. 自动生成 Swagger 文档,用 Postman 测试所有接口。
⚠️ 常见坑与注意事项

Day26:大模型自动生成生产日报

🎯 学习目标 利用大模型能力自动生成生产日报,展示 AI 在工业场景的应用。
📌 技术重点
💡 学习思路 这是 AI Agent 在工业场景最落地的应用之一。先手写几个日报模板,再用大模型自动生成。重点在于 Prompt 工程和数据结构化。推荐看「Prompt engineering for business automation」相关文档。
✅ 具体练习 创建项目 Day26_AIGen:
  1. 设计生产日报 Prompt 模板(包含日期、产量、OEE、异常等数据占位符)。
  2. 实现日报生成服务:查询数据 -> 填充模板 -> 调用大模型 -> 返回日报文本。
  3. 支持多种日报:日报、周报、月报、异常专项报告。
  4. 集成到 FastAPI,提供 API 接口。
⚠️ 常见坑与注意事项

Day27:RAG 工厂知识库问答

🎯 学习目标 实现基于 RAG 的工厂知识库问答系统,让 AI 读懂设备手册和工艺文档。
📌 技术重点
💡 学习思路 RAG 是目前企业级 AI 应用最成熟的方案。先从本地文档问答做起,再扩展到设备手册、工艺规程、质量记录等工业文档。推荐看 LangChain 官方文档和「RAG implementation guide」相关文档。
✅ 具体练习 创建项目 Day27_RAG:
  1. 搭建 RAG 服务:文档上传 -> 解析切片 -> 向量化 -> 存储到 ChromaDB。
  2. 实现问答接口:用户提问 -> 检索相关文档片段 -> 调用大模型生成答案。
  3. 预导入设备手册、故障排除指南等文档。
  4. 测试问答效果,优化检索策略。
⚠️ 常见坑与注意事项

Day28:项目整合与演示视频

🎯 学习目标 整合所有模块为一个完整项目,录制演示视频。
📌 技术重点
💡 学习思路 面试时一个可演示的项目比 100 句自我介绍都有用。视频要控制在 3 分钟内,突出亮点。推荐看「Technical demo video best practices」相关文档。
✅ 具体练习
  1. 整合所有代码到一个 GitHub 仓库,写完整的 README 和架构图。
  2. 准备演示场景:设备数据采集 -> 实时看板 -> 报警 -> OEE 统计 -> AI 日报。
  3. 录制 3 分钟演示视频,上传 B 站/YouTube(设为不公开)。
  4. 在简历中附上项目链接和视频链接。
⚠️ 常见坑与注意事项

Day29:简历定稿

🎯 学习目标 完成求职简历,针对工业软件岗位优化。
📌 技术重点
💡 学习思路 简历不是一次写好的,投几轮面试后根据反馈持续优化。先投 10 个试试水,看看哪些岗位回复率高,再针对性调整。推荐看「Technical resume writing guide」相关文档。
✅ 具体练习
  1. 制作简历(Word/PDF),重点突出工业软件项目经验。
  2. 整理 GitHub 仓库,确保 README 完整、有截图。
  3. 准备 1 分钟和 3 分钟自我介绍话术。
  4. 制作技术博客文章 1 篇(如「30 天从 Web 开发转型工业软件」),展示学习能力。
⚠️ 常见坑与注意事项

Day30:密集投递与面试准备

🎯 学习目标 开始密集投递,同时准备面试。
📌 技术重点
💡 学习思路 面试是双向选择,不要怕被拒。每次面试后记录问题和自己的回答,持续优化。推荐看「System design interview patterns」和「Behavioral interview preparation」相关文档。
✅ 具体练习
  1. 在 BOSS 直聘投递 30 个工业软件相关岗位。
  2. 准备面试题库:技术题 20 道 + 项目题 5 个 + HR 题 5 个。
  3. 模拟面试:找朋友或对着镜子练习自我介绍和项目描述。
  4. 建立投递台账:公司名、岗位、投递日期、状态、跟进提醒。
⚠️ 常见坑与注意事项

✅ 每周自检清单

第 1 周末(Day7)自检

第 2 周末(Day14)自检

第 3 周末(Day21)自检

第 4 周末(Day30)自检

⚠️ 三个常见陷阱

陷阱 1:只看教程不动手

很多开发者陷入「教程地狱」——看 100 个教程不如写 1 个完整项目。每天必须产出可展示的东西:代码、截图、演示视频。面试时展示的是作品,不是看过的教程数量。

陷阱 2:想先学 PLC 梯形图再转

你不需要会写 PLC 程序,你需要的是「读懂点位表」和「对接设备数据」。PLC 梯形图是电气工程师的活,你的价值在软件层。花时间在协议和系统架构上,回报率远高于学 PLC 编程。

陷阱 3:等项目完美了再投简历

这是最致命的陷阱。第 15 天就应该开始投简历。面试反馈是最好的学习方向标——面试官问什么,你就补什么,效率最高。而且边工作边学比全职学压力小,还有收入。

🚀 30 天后的进阶路线

第 2-3 个月:深化与入职

第 4-6 个月:岗位深耕

第 7-12 个月:能力跃迁

💼 面试准备要点

简历关键词清单

项目内容
核心技术C#、.NET 8、WPF、WinForm、SQL Server、MySQL
工业协议Modbus TCP/RTU、OPC UA、MQTT、TCP Socket、串口通信
工业系统MES、SCADA、WMS、OEE、工单管理、批次追溯
框架工具Prism、EF Core、Dapper、Serilog、SignalR、FastAPI
AI 能力大模型 API、RAG、Prompt 工程、Python 数据分析

项目包装话术

常见面试问题与回答思路

Q1:Modbus 和 OPC UA 有什么区别?什么时候用哪个?

答:Modbus 简单轻量,适合单一品牌设备、点对点通信场景;OPC UA 跨品牌、带安全认证和复杂数据模型,适合多系统对接和工业 4.0 场景。我的项目里,设备层用 Modbus(简单稳定),系统层用 OPC UA(标准化对接)。

Q2:串口粘包怎么处理?

答:串口是字节流没有消息边界,我实现了一个帧解析状态机:IDLE->HEADER->DATA->CHECKSUM->COMPLETE,每收到一个字节状态机推进一步,校验通过后输出完整帧。同时配合超时机制处理不完整帧。

Q3:多线程 UI 卡怎么优化?

答:核心原则是 UI 线程只做渲染。我用 Channel 实现生产者消费者模式:采集线程生产数据放入 Channel,处理线程消费并聚合,UI 线程通过 Dispatcher 定时从 Channel 取最新数据刷新。同时用 Stopwatch 做高频 UI 更新的节流。

Q4:为什么选 C# 而不是 Python 做上位机?

答:C# 在 Windows 工控领域是事实标准,WPF/WinForm 生态成熟,.NET 性能优秀,与 PLC/SCADA 等工业软件的集成度高。Python 更适合做数据服务和 AI 分析层,两者配合使用效果最佳。我的方案是 C# 做上位机和数据采集,Python 做数据服务和 AI 分析。

成都本地投递渠道

项目内容
BOSS 直聘搜索「C# 上位机」「MES 开发」「工业软件」,成都岗位最多
猎聘中高端岗位,适合有 3 年以上经验
智联招聘传统企业岗位多
脉脉内推渠道,可联系目标公司员工内推
猎云网/工控网工控行业垂直招聘

薪资参考(成都)

项目内容
初级 C# 上位机8K-12K
中级 MES 开发12K-18K
高级工业软件工程师18K-25K
智能制造解决方案工程师20K-30K
有 AI 能力加分可上浮 10%-20%