我和编程的那些事
小学 · 电脑启蒙
我的电脑启蒙是小学给的。那时候电脑课让我们练习金山打字通,从指法开始一点点练。经过练习,我五年级就可以盲打了,中英文输入都非常快——这个技能后来伴随了我整个编程生涯,敲代码的速度很大程度上受益于此。
初中 · 初识创作
初中电脑课,学校教的是 Flash 动画的制作。补间动画、关键帧、简单的交互——那时候觉得能让屏幕上的东西动起来特别神奇。虽然当时还完全不懂什么是编程,但"用电脑创造东西"这件事,已经在心里埋下了种子。
高中 · 第一次写代码
高二电脑课第一次接触了 VB 编程。做了一个简单的计算器——加减乘除,点按钮出结果,现在看来简陋得不行,但当时跑通的那一刻,那种"我写的代码真的能运行"的感觉,至今记忆犹新。
也是在那时候,同学分享了一个 VBA 后缀的文件给我——里面可以直接调用电脑的文字转语音功能,输入一段文字,电脑就能念出来。当时觉得太好玩了,翻来覆去地试。
从这个阶段开始,就想长大当程序员——这种操控电脑的感觉真的很上瘾。但那个年代学习没有现在有 AI 这么方便,信息获取基本只有百度,搜出来的东西质量参差不齐,实际学习效率很低。很多问题只能靠自己反复试、反复碰壁。
🎓 大学 · 真正入门
选专业
2017 年高考填志愿,我毫不犹豫选了物联网应用技术。那时候物联网正火,智能家居、万物互联的概念铺天盖地,我觉得这就是未来。
大一上 · C 语言的阵痛与突破
大一上学期开始学 C 语言。说实话,当时是有点发蒙的——不是这报错就是那报错,编译器输出的东西根本看不懂。但我没有放弃,这个阶段我每天在宿舍花四五个小时敲代码,不会了就找老师。然而老师也给不了什么建设性的意见,当时我就意识到,老师怕是也很水。
于是我自己找了个 QQ 群。其中一个网名叫"晴空一鹤"的群友很是热情,每次我有问题他都会解答。可以这么说,当时一些简单的语法问题没少烦他。
就这样过了三个月,我发现我变了——一段程序摆在我眼前,我可以很轻松地在脑子里一步步演算它会发生什么,然后得到最后的输出。换言之,我就像一个编译器,可以在脑子里"编译"一个简单的程序,太复杂的还不太行。但那种豁然开朗的感觉,是编程路上第一次真正的质变。
从那之后,班上有什么问题都会来问我。这事儿其实挺有意思——别人问我一个问题,我自己可能也不完全懂,但既然问了我就得给个说法,于是反逼着我到处找资料、自己先搞明白,然后再用他们能听懂的语言解释清楚。一来二去,教别人的过程反而让我自己的理解越来越深。
语言的本质
大一下学期学 Java、C#、AT89C51 单片机,大二上学期学 Android、iOS 开发,下学期学 H5、CSS、JS、JSP——所有的编程语言,在我眼中都是换汤不换药,换个语法、换个库而已,本质上思想没有什么区别。正因如此,后续我自学 C++、Go、Rust 都没什么阻碍。
但有一门语言我始终没搞定——英语。说实话我的英语一直比较差,高考就是被英语拖了后腿,分数够不上本科线,最后读了大专。大学期间英语四级也没考过——这件事让我意识到编程这行英语差确实会吃亏,文档看不懂、Stack Overflow 翻译费劲、很多一手资料得靠翻译工具才能啃。但也不是死路一条,该学的照样能学,只是要花比别人更多的时间去补。后来有了 AI 之后这个门槛倒是低了不少。
我在学校算是那种经常泡实训室的人。因为老参加比赛,老师对我挺放心的,实训室基本随进随出,想用什么设备、做什么实验都很自由。这种自由度在当时真的很难得——很多想法都是在这个环境下折腾出来的。
大二的时候我当了学校 物联网协会的会长,同时兼技术部部长。组织培训、带项目实践,还运营过协会的微信公众号,写过一些物联网和嵌入式方向的文章。现在回头看那些文章写得确实挺幼稚的,但当时觉得能把自己学到的东西写出来分享给别人,是一件很有成就感的事。而且为了写文章去查资料、整理思路的过程,反过来也让自己的知识体系变得更清晰了。
🏆 比赛
比赛拿了不少奖,省里的市里的都有。其中两个含金量最高:
2019 年 3 月 — 省赛一等奖
2018-2019 年度广东省职业院校技能大赛 — 物联网技术应用赛项(高职组)
一等奖,证书编号 GDGJ2019141008,广东省教育厅主办。
那年学校派了两支队参赛,两队都拿了省一。但去国赛的名额只有一个,给了师兄他们那一队(他们后来也拿了国二)。本来想着第二年还有机会,结果刚好赶上疫情,国赛取消了。所以这个省一背后其实有个遗憾——我们队从头到尾都没能站上国赛的舞台。
2019 年 7 月 — 国赛二等奖
第六届台达杯高校自动化设计大赛
二等奖(国家级),参赛作品是「食品加工车间环境监测及安防系统」,比赛在江苏吴江办的。
这个比赛的级别比较高——教育部高等学校自动化类专业教指委和中国自动化学会联合主办的,台达集团承办。但它不是大专专属的比赛,而是面向全国高校、不区分学历层次:本科、硕士、博士,甚至还有国外选手同场竞技。据说当年大概七成队伍是拿不到奖的。
所以这个国二的含金量,不在于它是"国赛",而在于——一个大专生,跟一群本科生、研究生、博士生、海外选手站在同一个赛场上,从他们手里硬抢了一个二等奖回来。这件事从那之后一直让我坚信:只要我足够努力,别说同台竞技,就是从更高学历的人手里抢名次也是可以的。也是因为这个,后来我没有选择专升本,而是把精力全部投在了技术钻研上——学历能证明的东西,用实力也一样能证明。
2019.05 — 2019.11 · 毕业设计:跨平台智能家居系统
说实话学校并没有要求我们必须做毕业设计。但我那时候正好比赛打得比较多,实训室又随便进,就想着干脆自己做点有意思的东西吧。于是立项做了一个智能家居系统,从 5 月到 11 月,前前后后花了半年。
硬件是怎么搭的
用的是学校提供的 CC2530 Zigbee 开发板组网(现成的板子,不是我自己画 PCB 的)。整个网络分两路走:
一路比较直接——各传感器节点通过 Zigbee 组网,数据汇聚到一个协调器上,协调器负责 Zigbee 转 RS232,RS232 直接插到开发机的串口上。挂载的是温湿度、烟雾、火焰这些常见传感器。
另一路就比较绕了。单片机没有 485 直出,所以我找了一块板子当网关,先 Zigbee 转 RS232,再 RS232 转 RS485,然后接到一个集线器上。为什么搞这么复杂?因为实训室的 CC2530 开发板数量有限,不够给每个设备都单独挂一块,所以用集线器走 Modbus 协议来分发控制,把智能插座、电动窗帘模拟器、红外遥控家电模拟器、LED 氛围灯之类的一股脑全挂在上面,凑成一个看起来像那么回事的智能家居场景。
通信统一用的 Modbus,支持主机轮询、终端主动上报、远程控制下发三种模式。
代码是我自己写的,但有个遗憾
所有单片机程序都是从零开始写的。不过有个现实问题——地址和控制逻辑全是写死的,没做成可配置的。为什么?一来做可配置化工作量太大了,单片机端要加配置解析,前端还要配对应的界面和逻辑;二来这半年也不是每天都有空——台达杯的比赛跟这个项目时间上有冲突,中间还穿插了一些省市级的小比赛,实际能花在项目上的时间远没有表面看起来那么多。光把基础功能跑通就已经焦头烂额了,实在没精力弄那些锦上添花的东西。
上位机那边的情况
电脑端我用 C# 写了一个 WPF 工程,前后端是一体的。当时根本不知道什么叫前后端进程隔离,就觉得一个工程搞定所有事情挺好的。后果就是——WPF 窗口一关,整个系统的数据采集和控制全停了。WPF 那边负责 Modbus 解析、设备状态管理、数据存盘、监控界面展示、异常报警这些事。
另外还写了一个 Android App(Java),局域网内可以看传感器数据、收报警推送、控制家电。当时对 Socket 通信研究得比较多,App 和 PC 端之间就是靠局域网通信同步数据的。
2020.06 — 2021.07 · 第一份工作:嵌入式开发
毕业后入职了一家初创公司,做单片机开发。这是我人生第一份正式工作。
那家公司是什么样的
公司非常小,办公室里算上我就 5 个人,其中有 3 个是我的大学师兄。我要干的事情远不止写代码——PCB 要自己画,元件要自己焊,焊完还要洗板,然后装外壳、打包快递、发货、处理售后……全流程都参与。工资也不高。在这种环境下待了一年多,几乎没什么社交生活。慢慢地,我发现自己对写代码的热情被磨没了。
但说句公道话,确实做出了东西
进公司后接到的第一个任务就是搭一套硬件无关的串口抽象接口——定义一个只包含函数指针的结构体,不同的板子各自实现这些函数、初始化这个结构体,然后把结构体对象扔给上层使用。说实话当时我没有任何参考资料,但之前学过 C# 和 Java 的接口设计,就想 C 语言要想模拟接口,大概也就只有这种写法了,然后就这么设计了。事实证明确实可行,而且后来验证出来非常省事:上层业务逻辑只跟这个抽象接口打交道,不碰具体的硬件寄存器。不管底层硬件怎么换,换一块 MCU、换一个串口外设,只要实现了同一套接口,上层代码一行都不用改。
之后,我开始参与一款产品的固件开发——遥控延时继电器模块。这是一款单路继电器产品,跑的是裸机 MCU,没有 Linux 微内核那一套,支持定时触发、输入触发、遥控触发等多种模式。我主要负责这款产品的 315MHz 无线遥控解码部分:超外差接收模块通过三根引脚(VCC、GND、DATA)接入 MCU,捕获到的信号是一串二进制编码。我的工作是把这串信号接收下来,存到一个 unsigned int 变量里——因为有效数据的每一位刚好对应一个按键状态,1 表示按下,0 表示松开,用 unsigned int 存储再自然不过了。当时总工提议说用 unsigned char 数组来存,我没搞懂为什么非要用数组去存一堆位数据,最后还是按 unsigned int 的方案写了。后续的按键逻辑判断不是我负责的部分。
产品现状与日常工作
产品现在淘宝还有卖,26.5 块起售,刚上市那会儿每天能卖 5 个以上(不带遥控的基础版每天 20 来个),现在淡了很多。除此之外的工作主要是绘制各种子型号的 PCB 板,焊板,打包发货,不涉及固件开发。这段经历虽然不愉快,但让我完整走通了裸机 MCU 从固件开发到产品交付的全流程。嵌入式全链路的底子就是这时候打下来的。
最后还是走了。原因很简单:压抑的环境磨灭了我对编程的热情,那段时间下了班我只想打游戏躺平,几乎没什么社交生活。
2021.07 — 2022.02 · 自学游戏建模
2021 年 7 月 1 号,离职第一天,我没有投简历。
心里一直有个游戏梦——做程序员的人大概多少都有过吧?想着要不转行试试?于是决定趁这段时间系统性学一下游戏建模。
先是传统手绘流程
学了 3ds Max,多边形建模、UV 展开、贴图绘制,产出了一些简单作品,算是入了门。
然后是次世代 PBR 流程
手绘跑通之后又转向业界主流的次世代流程:ZBrush 高模雕刻 → TopoGun 拓扑布线生成低模 → 烘焙法线/AO/曲率到贴图上 → Substance Painter 画材质 → 八猴渲染预览。整条工具链都走通了,也做了几个练习作品。
顺便学了 Python
学游戏建模期间需要大量教程和参考素材,我在 B 站找教程、在网上找参考图,后来感觉过于麻烦,于是顺手学了 Python 和网络爬虫,做了几个工具:
- B 站视频批量下载器:PyQt5 框架写的桌面工具,批量解析地址然后下载教程视频
- 图集查看器:同样是 PyQt5 框架,桌面端图片浏览工具,用户自己填写 XPath 规则来定义数据源,软件里按规则解析出不同的分类,每个分类下是独立的图集,点进去就能逐张查看——用来批量下载和浏览网络上的参考图
- 给姐姐做的办公自动化工具:从 Excel 表格中批量读取信息,然后套用 Word 模板生成对应的文件
说实话这段时间的编程让我重新找回了写代码的感觉。这也是我第一次接触 Qt——虽然是 PyQt5,但信号槽、布局、控件这些概念都是这时候建立的,后来转 C++ Qt 几乎没有学习成本。之前被工作环境磨灭的热情,在自由自在地做这些小工具的过程中又燃起来了。
结果呢?没入行
流程都会了,工具都能用,但美术功底这东西真不是几个月能补的。审美、造型感、色彩把控……这些需要长期的积累,我不是那块料。
2022.02 — 2022.12 · 编程教育
建模走不通,嵌入式不想回,游戏行业也进不去。软件方面当时我家附近也没什么 C#、Java 的岗位可选。回想大学运营协会公众号写技术分享的经历,我又发现自己其实挺喜欢把学到的东西讲给别人听的——做教育好像挺适合我。过完年(2022 年 2 月)正式入职,一直到年底。
日常教学
教的东西挺杂的——Python、C++、图像识别(OpenCV 入门)、乐高 EV3 和 WeDo 2.0、Scratch 图形化编程、大疆 RoboMaster 机甲大师和大疆教育无人机。说是授课,其实是边教边学——为了把课讲明白,我得先把自己理顺了。
C++ 这边,面向对象的思想我在学校就会了,C# 和 Java 都是这套东西,所以只是补了个 C++ 的语法表达,然后往桌面开发方向深入。而且说实话,小学阶段教的那个 C++ 根本没有面向对象、没有指针,其实就是 C,我完全不用学。至于给小孩子玩的 GOC 少儿编程,更是简单得不得了。Python 这边也差不多,那段时间基本上能用别的语言写的我都能用 Python 写出来,算是彻底掌握了。
教学之外,日常杂事也不少。每次写课程评价都要花好几个小时,一怒之下写了个批量生成器——得有界面吧?之前学建模那阵子用 Python + PyQt5 做过几个工具,对信号槽和布局有概念了,我也有意想趁这个机会接触一下 C++ Qt,于是就用了它来写。
也是在这段时间,我买了台雅马哈电钢琴。小时候四年级开始学的钢琴,六年级考了个四级,后来学业忙就停了。重新捡起来之后,以前弹过的《梦中的婚礼》《秋日私语》这些经典曲目,肌肉记忆还在,但谱子已经不会看了。好在这时候已经有 AI 了,查一下就能捡回来,按着谱子就能弹下来。古典方面自学了贝多芬的《月光奏鸣曲》,还在慢慢啃。但我不满足于只靠肌肉记忆去弹——弹琴不应该像小朋友学编程一样死记硬背,换道题换个情况又不会了。编程有框架,一切在框架里自由发挥;钢琴也有框架,这个框架就是和弦。我想学会的是根据和弦走向自己配伴奏,而不是一辈子照着谱子弹。
口罩识别 + 自动消毒系统
刚到机构不久还是疫情时期,口罩是刚需。我寻思着能不能把课上那些乐高 EV3 和 OpenCV 串起来,做一个有点实际意义的东西——于是就有了这个系统。
核心思路是这样:网络摄像头接在笔记本电脑上,笔记本电脑连着机构的 WiFi 当服务器跑 OpenCV。每帧画面拿下来跑一个网上下载的口罩检测级联分类器,判断有没有戴口罩。检测结果通过 Python 的 EV3 二次开发封装(蓝牙连接)发指令给 EV3 主控器——戴上口罩就播放一段欢快的提示音,没戴就播另一段提醒音。
然后还有一个自动消毒的功能:EV3 的超声波传感器检测到有人把手伸过来,蜗轮蜗杆机构就会带动电机连续下压三次,挤出酒精。选蜗轮蜗杆是因为齿轮齿条和连杆结构都顶不住酒精瓶弹簧回弹的应力,只有蜗轮蜗杆的自锁特性扛得住。
整套东西零成本——网络摄像头是机构里现成的 TP-Link,有局域网取流的方法;乐高 EV3 本身就是教具,机构有 12 套随便用。正好把 OpenCV 图像识别、蓝牙通信、LEGO EV3 的 Python 二次开发这些都串在了一起,上课展示效果还不错。
机甲大师自动瞄准系统
大疆 RoboMaster 机甲大师是教学内容之一,为了让课更有意思,课余时间我做了一个自动瞄准系统:
用 RoboMaster SDK 取摄像头画面 → OpenCV 做目标检测找到对方战车 → 算它相对于画面中心的偏移量 → 归一化成一个 [-1,1] 范围的二维向量 → 喂给 PID 控制器 → 控制云台转动去跟踪对方 → 自动射击。目标检测用的是大疆现成的分类器,但 PID 控制算法是手搓的。
做完之后那种感觉挺奇妙的——从查资料、啃理论到自己一行一行写出来,最后看着云台追着目标转、自动开火,那个满足感是实实在在的。
当然有个明显缺陷——敌我不分。这个问题当时没解决:一是课余时间本来就有限;二是总不可能给对方战车刷个颜色来区分吧?所以就这么不了了之了。但作为教学演示够用了。
大疆的教育无人机我也玩过,有Python SDK 二开的支持,但说实话实用性一般,没做出什么有价值的东西。
为什么又走了
两个原因。一是疫情对线下培训冲击太大,工资只有寒暑假能高一些,平时很一般,不过整体比第一份工作还是强不少的。二嘛,干着干着觉得有点对不住自己的良心——校区主管一直施压要主动推课、催续费,我知道机构有生存压力,但我真的不喜欢这种硬来的方式。我想做的,是把课讲好、让孩子觉得有意思、自己愿意来上我的课;而不是琢磨怎么把课程吹得天花乱坠去哄家长掏钱。本质上是想达成同一个目标——让学生留下来,但做法完全不同。有时候被逼得急了,做出来的一些事情难免有拔苗助长的味道,违背我当初入行的初心。这种无力感不只是宏观层面的,具体到每个孩子身上更明显——有的孩子真的不适合学纯代码编程,乐高积木编程可能都玩不转,但家长不接受,非要上我的课。我多次想劝退他回到上一阶段的学习,否则我讲课受罪孩子听课也受罪,但跟校区校长沟通无果,孩子父母也不接受。这种事发生不止一次了。
说实话在这种教育机构待久了,我对这个行业也形成了一些自己的看法。教育这件事本身我是认可的——回想大学写技术分享的经历,我确实喜欢把自己学到的东西讲给别人听。但机构化的教育和我想象中的"分享知识"完全是两码事:它有 KPI、有续费率、有排名,所有东西都被量化成数字,然后逼着你为了这些数字去做一些你明知道不太对的事情。学钢琴不想被催着走,学编程也一样——我不想让孩子按被安排好的节奏走,但机构的商业模式决定了它必须这么做。这不是某一个人的问题,是这个模式的问题。所以想了想,还是回到技术开发的本行吧。
最近留意到一些声音在探讨 AI 时代还有没有必要让孩子学少儿编程,作为两件事都做过的人,我写了点自己的看法。
2023.02 — 至今 · CAM / 数控软件开发
2023 年 2 月入职现在的公司——一家机床制造企业,到现在还没离职。这是我做时间最长的一份工作,也是技术上成长最快的一段。
也是在这段时间,我把日常主力系统换成了 Linux 桌面。当初换 Linux 的原因很朴实:旧电脑跑 Windows 卡得要死,一气之下自己装了 Linux,从此就没回去过。环境搭建、驱动调试、日常运维都是自己摸索出来的,到现在用了快 4 年了。这件事本身跟工作没什么关系,但它反映了我的一贯风格——遇到不爽的东西与其忍受,不如自己折腾出一个满意的方案来。
日常在干什么
主要管这几个方向:CAM 软件的加工路径生成算法和工艺参数配置界面、基于轻代码平台的机床数控软件开发(C++ 二次开发 + 运动控制板卡)、工业相机的 SDK 集成开发用于加工过程中的视觉定位和辅助校准。另外公司历史项目多且杂,Qt、MFC、C# WPF 哪个出了问题或者要加新功能都得管。
这些听起来挺杂的,但干着干着就发现一个规律:工业软件这行,你越往上走越需要懂底层,越往下做越需要知道上层怎么用。嵌入式全链路的底子在这时候派上了大用场——当我后来在做上位机软件的时候,我对底层发生了什么是有直觉的,这不是看书能获得的。
刀路干涉计算优化
有一个 CAM 软件里的刀路干涉检查功能,图形多的时候计算慢得离谱——500 个图形有时候要跑 3 分钟。工期紧,来不及上多线程,我就换了个思路:用四叉树做空间索引,把暴力两两比较改成只查相邻节点;然后配合定时器分批触发的假异步处理,不让计算卡死界面。最后优化到 10 毫秒以内出结果。虽然还是单线程,但也完全够用了。
事件总线解耦跨组件通信
工业软件组件多,不相邻的组件之间要通信,按 Qt 传统写法得一层一层转发信号槽,链路过长又容易断。我用事件总线模式重构了一下:所有组件都往总线发事件、从总线订阅事件,互相不直接依赖。这样新增组件不用改现有连接关系,通信链路一目了然,维护成本降了很多。
下班后的事
这一阶段是我技术视野扩张最快的时期。工作之余我像海绵一样吸收新东西,而且每一样都是因为"工作中遇到了"或者"想做某个东西"才去学的,不是为学而学。
Rust 是目前为止最让我上头的语言。编译器很严格,借用检查器经常把我卡得想摔键盘,但一旦编译过了,跑起来就是稳。没有空指针、没有数据竞争、不用操心内存泄漏,C++ 踩过的坑它基本都从语言层面给你堵上了。学习曲线确实陡,生态也不如 C++ 成熟,但那种"编译过就等于靠谱"的安全感是其他系统级语言给不了的。现在我用它做了 AI 调度框架的核心引擎——后面会专门讲这个项目。
前端那块之前一直是空白。以前一直做桌面端和嵌入式,Web 前端基本没碰过,抱着"总得知道页面是怎么跑起来的"心态补了 React / Vue3 / Electron。Vue3 上手快,React 生态大,Electron 能拿 Web 技术写桌面应用——学完之后发现 Qt 写界面那套方式确实有改进空间,这也是后来我开始探索混合架构的起因之一。
线性代数和矩阵计算没啥捷径,就是硬啃。搞机器学习和图形学绕不过去的一道坎,向量、矩阵、特征值分解这些东西刚开始一头雾水,多写多练才慢慢有了感觉。啃完线代之后自然就想碰图形学了——之前做三维建模是在软件里操作,现在想自己写代码去控制顶点、着色器、光照,从"用工具"到"造工具"的转变。
Blender 也是这时候捡起来的。之前用 3ds Max 和 ZBrush 做建模,后来发现 Blender 也不差还是开源的,建模雕刻渲染一体不用在几个软件之间倒来倒去,社区插件丰富不花钱能做的事越来越多。加上它有 Python API 可以二次开发,跟我现在的技术栈正好接得上。
AI 那块能跑起来还得感谢换了新电脑配了台 RTX 4070S 的机器,算力够了才开始真正动手跑模型、调参数、搭 Agent。之前 C++ 的内存管理经验和 Rust 的安全理念到了 AI 上下文管理这块意外地顺手——说到底都是"怎么高效利用有限资源"的问题。
我正在探索的方向:混合架构
在工业软件、机床工控、CAD 二次开发这些场景里泡久了,对传统桌面开发的一些痛点感受很深。纯 Qt 开发在复杂工业场景下长期运行的稳定性和并发性能始终是个问题;但 Qt 开发效率又确实快不起来——写界面调样式跨平台适配每一步都费劲。
所以我在尝试三条路:一条是 Rust + Qt——Rust 做高性能核心解决计算密集和并发的部分,Qt 处理用户交互。这个方案已经在 AI 调度框架项目中落地了。另一条是 Rust + Electron + React + TypeScript(也可以换成 Tauri,但目前 Electron 功能更完善)——用 Web 技术解决 UI 层的开发效率和界面表现力,Rust 通过 N-API 或者 sidecar 进程把高性能计算部分包进去。第三条也是目前最看好的方向——Flutter + Rust + C++:Flutter 做前端界面,比起网页套壳性能更好、调试更方便、类型更安全;Rust 做核心引擎;C++ 负责对接既有工业库。三条路并行探索,目前还在摸索阶段,但方向是明确的。
回头看这几年,从嵌入式底层到桌面 GUI,从前端 Web 到工控再到前沿 AI——各个层面都有所涉猎了。路径看起来很散,但每一步都不是白走的。
2026.05 起 · 业余项目:通用 AI 调度引擎
2026 年 5 月启动的个人项目,原型已验证通过,已全部开源。
🔗 https://gitee.com/GahooChan/ai_-scheduler
在 CAM / 工控领域干了几年之后,我发现一个反复出现的痛点:企业有接入 AI 的强烈需求,但工程师搞不定——技术栈固定在 C++,没有 AI 基建,老板给的窗口是几天不是几周,现有业务还不能停。结果就是要么放弃,要么硬上写一堆不可维护的胶水代码。
所以我自己做了一个通用调度引擎:一个 ~260KB 的 Rust C ABI DLL,嵌入任何桌面软件就能让它具备完整的 AI 能力——多轮对话、工具调用循环、MCP 协议对接、HTTP API 暴露,全内置。集成方只需要实现 4 个回调函数(约 100 行代码),剩下的调度工作引擎全包了。AutoCAD 是我选的验证平台,56 个工具跑通了三条通路(内部对话、MCP 外接、HTTP Skill),证明这条路走得通。
写在最后
回头看看,我和编程的缘分,从小学的第一节电脑课就开始了。
小学的电脑课教我打字,初中的电脑课教我 Flash,高中的电脑课让我第一次用 VB 写出能运行的程序——每一节电脑课都是一个小小的台阶,把我一步步推向了编程这条路。没有那些课,没有金山打字通、Flash 补间动画、VB 计算器这些看似不起眼的起点,我可能根本不会在 2017 年填志愿时毫不犹豫地选物联网,也不会在 C 语言报错满天飞的时候咬牙坚持三个月。
我是个学东西比较快的人,缺什么就补什么,看到新技术就想搞明白。从嵌入式到移动端,从桌面端到三维建模,从编程教育到 CAM 工控,再到现在的 AI 应用——路径曲折,但每一段都不是白走的。回头一看,所有的技能树最终都连成了一片。
这种学法也决定了我对知识的态度——我从小到大都比较反感学一些使不上的东西,不屑于死记硬背。什么"Spring Bean 的生命周期""HashMap 的扩容机制"之类的,我从来没刻意背过。一个东西,真正用到它的时候就自然懂了,用不到的时候,为什么要浪费脑容量去背?标准答案记住了,但换个问法可能就懵了。真正有价值的,是面对没见过的问题时能不能自己分析拆解找到思路。
回头想,这种性格可能也是我没考上本科的原因之一——从小本能地排斥一些需要死记硬背的东西,英语就是典型例子。但我选择理科是因为心里清楚理科是有用的、能造出东西来的,跟那些纯粹靠背诵的学科不一样。现在并不后悔。如果当初为了分数逼着自己去背那些东西,我也许能上个本科,但也可能变成另一个只会按标准答案答题的人,而不是现在这个遇到问题愿意自己折腾出来的人。得失之间,我选的路没错。
📬 找我
如果你看到这里觉得我们可能有共同语言,以下这些事情是我能帮上忙的:
正在纠结要不要让孩子学编程的家长——我在编程教育机构待过,亲眼见过不适合硬推的孩子被逼着上课有多痛苦。AI 时代少儿编程到底还有没有意义、怎么学才不是给机构送钱、想自己教孩子又不知道从哪下手,这些问题我自己也琢磨过很久,如果你也需要一个过来人的参考意见,可以找我。
对未来方向感到迷茫的大学生或应届生——我大专出身,没考上本科,英语四级都没过。毕业这些年从嵌入式到桌面开发到 CAM 工控再到 AI 应用,每一步都是自己趟出来的。学历不够技术凑这条路能不能走通、技术栈该怎么选才不会把自己锁死,如果你正被这些问题困扰,我可以帮你理一理思路。
制造业里技术栈单一的工程师和老板——工程师这边,C++ 写了十年不想换但上面要求接 AI、CAM 软件想搞智能化但不知道从哪入手;老板那边,知道传统工控软件该升级架构但怕动了牵一发动全身、想给产品加 AI 能力又找不到靠谱的落地路径。混合架构、跨语言集成、MCP 协议对接这些事我在实战中踩过不少坑,也沉淀了一些可复用的经验,如果你的项目正卡在这些环节上,也许我能帮你想清楚怎么落地。
三维 + 编程的复合需求——我能看懂拓扑结构、理解 UV 展开和 PBR 材质是怎么回事,同时又能用代码去操控和生成这些东西。CAD/CAM、三维可视化、数字孪生这类领域,这种复合背景做起来会比纯程序员或纯设计师都更顺畅。如果你有这类项目需要技术方案评估或者外包对接上的建议,可以聊聊。
GitHub:github.com/GahooChanGitee:gitee.com/GahooChan
抖音:野生全干攻城狮
B站:Gahoo_Chan
Email:2432168423@qq.com