ARTICLE · 981229
不懂代码的人,靠AI写了两个软件
工具替不了人做判断,但能把人从重复里解放出来。
写代码这件事,对我来说是“听说过、没碰过”。连 Python 和爬虫都分不太清,纯纯的小白一个。
但就是这个暑假,我做成了两件事:一套排课软件,已经迭代到 2.5.0,双击就能打开用;一个办公室工作台,把全校教师的档案、合同、考勤、值班,全装进了一张看板里。
从 0 到 1。我一个字代码都没写,全程靠 AI。今天把这半年,不,这一个月的心路,掏心窝子讲给你听。

— 小白对着屏幕讲人话,代码自己长出来
📌 本文看点
01
排课软件:从清单到一键打包
02
办公室工作台:一张看板装下杂事
03
五条经验:小白也能造软件
SCHEDULING
排课软件:开学前的灯火通明
看过教务排课的人,都懂那个画面:开学前两周,教务处灯火通明。不是备课,是排课。
几十个班、上百名老师、几十间教室,得在同一张网格里严丝合缝地拼好。不能让同一位老师同一节课分身,不能让一个班同时上两门课,还得照顾“体育别排一二节”“主科尽量放上午”这些说不清道不明的讲究。
「一位干了八年的老教务跟我说过:排完课,他连电话都不敢接。」
我一度以为排课只能靠耐心和一块好橡皮。直到听说现在的 AI 能听懂人话写程序。
我的第一步很笨,但顶关键:先把要什么想清楚。我给自己列了一张功能单子:
系统设置:一天几节课、一周上几天,这是所有计算的基准
教师、班级、课程、任课关系:四张基础表,谁教哪个班的哪门课
智能排课:一键把上面所有数据排成尽量不冲突的课表
课表查看:按班级看、按老师看,全校总表一张导出
冲突检测与手动微调:哪儿撞了标红,能直接拖
写完这张单子,我一条条讲给 AI 听,让它动手。
中间最大的坎是排课逻辑。一开始图省事,固定一个随机种子跑,结果时好时坏,运气成分太重。手动拖明明能零冲突,自动排反倒撞三处。后来才弄明白:课表一旦排满,能腾挪的空位极少,单次排容易卡在局部最优,这一格顺了,那一格又冒出来。
我试过深度连锁换位,三跳四跳地倒腾,实测没用。最后定下来的逻辑很朴素:多种子扫描,多轮跑,挑最优。同一张表跑好几个不同的随机起点,每轮把冲突数算出来,谁冲突少留谁,撞到零冲突就提前收手。

— 单次排课卡在局部最优 vs 多种子多轮扫描挑最优
这个过程,AI 陪着我迭代了四五轮。每次我说“这样不对,因为……”,它就改;我说“能不能换成这样”,它就试。它不嫌我外行,我也不怕它听不懂。反正说人话,它真听得懂。

到后来,软件越做越懂行。学校里有单双周各 0.5 节的课,比如音乐和信息互换成对,合占一格,这是排课里出了名的坑,我们做进去了;合唱团、篮球社团这样的课后服务课,做进去了;几个班合上一节功能室课,做进去了;调课时格子直接上色,绿色能放、黄色可换、红色有冲突,原因一条条列给你看,也做进去了。
💡 最后,把它打包成一个双击就能打开的软件。没有程序员,没有外包,没花几千块的软件费。开学前,它已经准备好了。
OFFICE HUB
办公室工作台:让杂事自己跑
排课软件让我尝到了甜头。暑期末尾,我开了第二个项目:给自己搭一个办公室工作台。
办公室这摊子事,说好听叫“综合”,说难听就一个字:杂。
教师个人档案、聘任合同、教师资格注册、岗位竞聘、每学期的总结、上级公文流转、办公用品领用采购、考勤、请假,还有值班排班。哪一样都得管,哪一样都散落在不同地方。过去这些数字分散在七八个 Excel 里,月底对一遍,对完心里还是发虚。

有了上回的经验,这次我熟门熟路:先列单子,再讲给 AI 听。
教师档案:教师的档案往里一导,每学期更新不再靠抄表
合同管理:三年一签,每个人签订日期不同,系统自己算到期、提前提醒该续签谁
资格注册、岗位竞聘:到了年份它替你点名,谁该上场、谁已上一级,两张清单摆着
公文流转:上级来文拖进去,文号、标题、来文单位自动识别,你只指个转办处室
办公用品:打通草料二维码,教师扫码填单签名,库存低了系统提醒、顺手生成采购申请
请假和考勤:考勤机 Excel 导进来,请假单自动存档,月底要上报的请假自查表自己长出来
值班排班:法定节假日与每周上课日两类值班自动生成,校历 Excel 一导,放假调休系统自己认

— 一张看板,把到期预警、师资结构、值班安排一眼摊开
前后不到一个星期。它不卖给谁,就替我自己干活。现在工作台更新到2.0版,增加了值班排班功能,有需要工作台的,我将链接放在评论区免费分享。
TAKEAWAYS
复盘:小白做软件的五条经验

— 小白做软件的五条经验
回头看,我能从 0 走到 1,靠的不是运气,是几条笨办法:
工具是翻译机,不是许愿机。你连自己要什么都说不出,AI 再有本事也帮不了你。我两个项目的第一步,都是坐下来把痛点一条条列成功能清单。
排课软件我坚持每张表都有模板:导出模板拿回去填,填好导回来。上百个老师、几百条任课关系,要是没有模板,光建数据就能让人放弃。软件做得再聪明,数据进不来也白搭。
最忌讳的是那种结果一扔、说不清为什么的黑箱。我的排课是确定性引擎,规则你来定,过程可追溯,这次排出来零冲突,下次同样的数据还是零冲突。AI 帮你造工具,但“这里为什么这么排”你得让 AI 讲明白,你能听懂,才敢用它。
没有一个功能是一次做对的。排课逻辑我改了四五轮,工作台的值班排班光模式就设计了两种。每次发现问题,告诉 AI“哪里不对、因为什么”,它改完你马上试。小步快跑,比憋大招靠谱得多。
开发过程里没少遇到怪事:明明改了代码却不生效,同样的数据一会儿对一会儿错。后来我学了个朴素流程:先备份数据库,清掉缓存,干净重启,再试。九成的灵异事件都是缓存惹的祸。这句话,值一个暑假。
EPILOGUE
尾声
有人问我:你一个不懂代码的,折腾这些图什么?
图开学的时候,同事双击那个软件,半小时把一学期的课排完;图月底的时候,该上报的表自己长出来;图那些凭印象记的合同、注册、竞聘,变成看系统说话。
「不懂代码不丢人,丢人的是不敢试。」
以前我觉得做软件是程序员的事,离我十万八千里。这个暑假之后我明白了:AI 把从 0 到 1 最后那一公里修平了,剩下要迈的那一步,只取决于你想不想、敢不敢。
我是 不戒,乐于分享日常工作的所思所想。
如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见。