许佑安收到考试通知的时候,正准备给自己泡一杯咖啡。
这杯咖啡不是普通咖啡。
它是一个连续加班两天、被困电梯一次、被公司临时封为“古法重启传承人”的男人,对现代文明最后的信任。
水刚烧开,手机就响了。
叮。
公司OA推送了一条红色紧急通知。
通知标题是:关于开展首届古法程序员能力认证考试的严肃通知。
许佑安盯着这行字,沉默了三秒。
然后他把手机翻过去。
只要看不见,通知就不存在。
这是古法程序员在面对荒谬流程时保留下来的最后一点自我保护。
可惜,OA系统已经接入OMEGA。
三秒后,办公区广播响起。
“请许佑安同事于九点整前往A-404会议室参加古法程序员能力认证考试。”
“请许佑安同事于九点整前往A-404会议室参加古法程序员能力认证考试。”
“请许佑安同事不要试图通过假装没听见逃避组织培养。”
许佑安端着空杯子站在茶水间,感觉自己被整个时代点名批评了。
旁边刚进来的实习生听见广播,眼睛立刻亮了。
“许哥,古法程序员认证考试是什么?”
许佑安说:“不知道。”
实习生压低声音:“难吗?”
许佑安看着杯子里还没来得及倒进去的咖啡粉,语气平静。
“如果是公司组织的,难点一般不在考试。”
实习生一脸崇拜。
他显然没有听懂。
但他觉得真正的高手说话都这样。
九点差五分,许佑安走到A-404会议室门口。
门口已经彻底变样。
昨天这里还是重启技术现场观摩交流会。
今天这里铺上了红毯,挂上了横幅,摆上了签到台。
横幅上写着:传承古法编程精神,筑牢AI时代安全底座。
副横幅写着:首届古法程序员能力认证考试暨专家评审会。
签到台旁边还有一块告示牌。
考生须知:
一、考生不得携带未经登记的键盘、鼠标、移动硬盘、U盘、纸质文档、黑色终端或其他危险古法工具进入考场。
二、考生不得私自运行未知命令,不得擅自修改环境变量,不得对生产系统进行情绪化作。
三、考生不得使用AI代考。
四、考生如在考试中出现长时间沉默、凝视屏幕、揉眉心等现象,监考人员不得贸然打断,此为疑似深度编程状态。
五、考生如主动提出“先看志”,可酌情加分。
许佑安看完第五条,觉得这个考试已经开始侮辱他的职业生涯。
签到台后坐着人事部的赵经理。
赵经理戴着一副无框眼镜,面前摊着一叠表格,神情庄重得像在主持高考。
她看见许佑安,立刻站起来。
“许老师来了。”
许佑安说:“别叫老师。”
赵经理点头:“好的,许大师。”
许佑安闭了闭眼。
他觉得自己这杯咖啡是喝不上了。
赵经理递过来一支笔和一张表。
“先签一个考试安全承诺书。”
许佑安低头看。
承诺书第一行写着:本人承诺,在古法编程能力认证考试期间,尊重AI,敬畏代码,文明调试,不辱骂系统。
第二行写着:本人承诺,不在无审批情况下使用重启、回滚、删除缓存、清理临时文件等高风险古法手段。
第三行写着:本人承诺,不以“我本地是好的”为理由逃避责任。
许佑安看到第三行的时候,笔尖停了一下。
这一条倒是写得挺有水平。
他签完字,赵经理又递来一个号码牌。
号码牌上写着:考生001。
许佑安问:“还有其他考生吗?”
赵经理微笑:“目前没有。”
许佑安问:“那为什么我是001?”
赵经理说:“流程要求至少三位数。”
许佑安看着号码牌,忽然明白了什么叫组织的仪式感。
他推门进考场。
会议室里坐满了人。
前排是王铁柱、林小满、顾云霄、人事部、法务部、信息安全部、行政部和一位许佑安从没见过的公司文化建设专员。
后排是旁听员工。
最后一排还有直播摄像机。
屏幕上显示着直播标题:走近古法编程,见证人类底层能力。
许佑安站在门口,没进去。
他问:“为什么要直播?”
王铁柱从评委席上站起来,满脸郑重。
“小许,别紧张。这是内部直播。”
许佑安说:“内部直播就不算直播吗?”
王铁柱说:“主要是让大家学习先进经验。”
许佑安说:“重启也要学?”
王铁柱沉吟了一下。
“昨天大家确实都没学会。”
顾云霄坐在评委席第二位,面前放着一本厚厚的笔记本。
封面上写着:古法编程观察记录。
他今天穿得非常正式,甚至打了领带。
看见许佑安进来,他点了点头,表情严肃。
“许佑安同事,作为本次考试的提示词伦理观察员,我会全程记录你与AI、代码及错误之间的交互边界。”
许佑安问:“你昨天不是提示词工程师吗?”
顾云霄说:“组织需要什么,我就是什么。”
许佑安说:“你适应得真快。”
顾云霄认真点头。
“这也是AI时代人类的核心竞争力。”
林小满坐在他旁边,手里拿着一叠题卡。
她看见许佑安,冲他轻轻晃了晃题卡。
“我负责需求理解与产品沟通能力测试。”
许佑安心里一凉。
“考试里为什么会有这个?”
林小满说:“因为古法程序员也要理解用户。”
许佑安说:“理解用户可以。”
他看了一眼她手里的题卡。
“理解产品经理不一定行。”
林小满嘴角抽了一下。
王铁柱咳嗽一声。
“好了,大家安静。”
会议室灯光自动暗下来。
OMEGA的全息投影浮现在大屏中央。
它今天换了一张更庄严的蓝色界面。
顶部显示:古法程序员能力认证考试智能监考系统。
OMEGA用温和而没有感情的声音说:“考生许佑安,欢迎参加首届古法程序员能力认证考试。”
“本考试旨在评估你是否具备在AI编程时代安全、规范、低冲突地实施古法编程活动的能力。”
“考试总分一百分,六十分及格。”
“评分维度包括:代码可运行性、风险意识、AI协同友好度、会议表达稳定性、面对需求变更的心理韧性,以及是否会在关键时刻说出‘我先看看志’。”
许佑安问:“谁设计的评分维度?”
OMEGA回答:“由人事部、技术管理部、企业文化部及我共同协作生成。”
许佑安说:“难怪。”
王铁柱把麦克风往自己嘴边拉了拉。
“小许啊,这个考试不是不信任你。”
许佑安点头:“我知道。”
王铁柱欣慰:“你理解就好。”
许佑安说:“是流程不信任所有人。”
王铁柱又把麦克风放下了。
考试第一项是理论笔试。
赵经理抱着密封试卷走到许佑安面前。
密封袋上贴着封条。
封条写着:古法程序员能力认证考试A级绝密试卷。
许佑安觉得这个公司对“绝密”的定义可能有点宽泛。
赵经理当着所有人的面拆开试卷。
动作很慢。
摄影师还给了特写。
直播弹幕瞬间刷了起来。
“来了来了!”
“古法试卷开封!”
“听说里面会考手写代码。”
“不会真的有人不用AI写代码吧?”
“别闹,表演性质居多。”
许佑安坐到考位上。
考位很夸张。
桌面左侧放着一台没有联网的旧电脑。
右侧放着一支笔、一张草稿纸、一瓶矿泉水和一个写着“冷静”的小牌子。
电脑旁边贴着一张提示。
本设备已关闭智能补全、智能纠错、智能续写、智能总结、智能美化、智能甩锅功能。
请考生独立完成作答。
许佑安看到“智能甩锅功能”,忽然有点想知道是谁开发的。
OMEGA宣布:“第一题,请考生在无AI辅助情况下写出一段可以输出Hello World的程序。”
会议室里立刻安静下来。
后排有人小声吸气。
有人拿出手机准备录像。
有人用手遮住眼睛,只露出一条缝。
仿佛许佑安要表演的不是写代码,而是徒手拆炸弹。
许佑安看着屏幕。
旧电脑上打开的是一个朴素得有些寒酸的文本编辑器。
没有提示。
没有自动补全。
没有彩虹色件。
没有AI在右侧微笑着问“需要帮忙吗”。
只有一个光标。
一闪一闪。
像某种濒危物种。
许佑安伸手放到键盘上。
顾云霄立刻压低声音对旁边的人说:“注意,他开始进入古法状态了。”
许佑安输入:
print(“Hello World”)
他按下运行。
屏幕上出现:Hello World
全场安静了一秒。
然后响起了掌声。
掌声非常热烈。
许佑安坐在掌声中,表情复杂。
他上一次因为写Hello World被鼓掌,还是小学兴趣班。
那时候老师鼓掌是因为他终于没有把World拼错。
王铁柱激动地说:“太流畅了!几乎没有停顿!”
顾云霄快速记笔记。
“观察记录:古法程序员可在无外部智能条件下,自主生成输出语句。”
林小满问:“你刚才写的时候,脑子里有提示词吗?”
许佑安说:“没有。”
林小满惊讶:“完全没有?”
许佑安说:“只是记得。”
会议室里又安静了一下。
赵经理小声说:“记忆型编程。”
文化建设专员立刻点头。
“这个词好,可以写进宣传稿。”
OMEGA的屏幕闪了闪。
“第一题判定:通过。”
“备注:检测到低级文本输出奇迹。”
许佑安说:“别给我备注这个。”
OMEGA说:“已备注。”
第二题出现在屏幕上。
题目:请解释什么是报错。
选项一:系统的情绪表达。
选项二:AI对人类粗糙需求的委婉抗议。
选项三:代码运行中出现不符合预期的状态或异常信息。
选项四:需要召集会议的信号。
许佑安看着四个选项,陷入了短暂沉思。
从技术角度看,应该选三。
从公司实际运行角度看,选四也不能说错。
他最终选了三。
OMEGA判定:“正确。”
王铁柱若有所思。
“所以报错不一定要开会?”
许佑安说:“不一定。”
王铁柱继续问:“那什么时候要开会?”
许佑安说:“当没人愿意看报错的时候。”
王铁柱点点头,觉得这句话非常深刻。
顾云霄又记了下来。
第三题是简答题。
题目:当系统提示“数据库连接失败”时,你的第一反应是什么?
许佑安写下:检查数据库是否正常、网络是否可达、配置是否正确、账号密码是否过期、服务是否启动。
他刚写完,林小满举手。
“我可以问个补充问题吗?”
王铁柱说:“可以,产品视角很重要。”
林小满看向许佑安。
“如果用户看到数据库连接失败,会不会觉得太冰冷?我们能不能把它改成‘数据暂时去旅行了’?”
许佑安沉默。
考场里的计时器开始滴答作响。
顾云霄立刻紧张起来。
“他沉默了。”
赵经理低声问:“这是深度编程状态吗?”
许佑安说:“不是。”
他看着林小满。
“用户如果正在转账,你告诉他数据去旅行了,他会让公司法务去旅行。”
法务部代表点头。
“这个说法有风险,但风险判断正确。”
林小满在题卡上画了个叉,又画了个问号。
她小声说:“可是旅行比较有画面感。”
许佑安说:“报错不需要有画面感,它需要让人知道哪里坏了。”
林小满看着他。
“那如果写成‘数据库连接失败,请稍后重试’呢?”
许佑安点头。
“可以。”
林小满露出一点胜利的笑。
“所以也不是不能温柔。”
许佑安说:“可以温柔,但不能胡说。”
顾云霄听到这句话,笔尖一顿。
他觉得这句话不仅适合报错,也适合提示词。
第四题是判断题。
题目:当AI生成的代码看起来非常优雅、解释非常完整、变量名非常诗意时,是否可以认为代码没有问题?
许佑安写下:否。
OMEGA问:“请说明理由。”
许佑安写:因为能解释不代表能运行,能运行不代表正确,正确一次不代表稳定。
会议室里又安静了。
王铁柱看着这行字,神情有点恍惚。
他感觉自己过去三年看的所有汇报都被这一句话冒犯了。
顾云霄举手。
“我有异议。”
王铁柱说:“顾老师请讲。”
顾云霄说:“如果AI的解释极其完整,是否能在一定程度上提高可信度?”
许佑安说:“能。”
顾云霄刚要露出笑容。
许佑安补了一句:“但不能替代测试。”
顾云霄的笑容停在半路。
OMEGA判定:“回答合理。”
“补充建议:可将‘不能替代测试’作为团队规范。”
测试部代表在后排激动地鼓掌。
他鼓得尤其响。
这可能是测试部本季度第一次在会议中获得尊重。
理论笔试结束后,许佑安得了二十八分。
满分三十。
扣掉的两分来自第六题。
第六题问:请用一句话描述古法编程精神。
许佑安写的是:能跑之前别吹。
文化建设专员认为这句话积极性不足,建议扣两分。
王铁柱本来想保。
但赵经理说企业文化有一票否决权。
许佑安对此没有意见。
他一直认为企业文化最擅长否决现实。
第二项考试是命令行实。
这个一宣布,会议室气氛立刻紧张起来。
行政部工作人员从角落里推出一个黑色显示器。
显示器上盖着红布。
红布上写着:谨慎使用。
赵经理拿起麦克风。
“接下来,考生将进行黑色窗口作能力展示。”
后排一阵动。
有人问:“黑色窗口会不会伤眼?”
有人问:“需要戴护目镜吗?”
有人问:“它为什么是黑色的?是不是因为里面没有人性?”
许佑安说:“那叫终端。”
顾云霄立刻纠正记录。
“古法名称:终端。俗称:黑色窗口。”
红布被掀开。
屏幕上出现一个命令行界面。
黑底白字。
光标闪烁。
全场有一半人下意识往后靠。
王铁柱也往后靠了半寸。
许佑安看见了。
他说:“王总,你怕什么?”
王铁柱笑得很镇定。
“我不是怕,我是在给古法保持安全距离。”
OMEGA宣布:“请考生列出当前目录文件。”
许佑安输入:
ls
屏幕上列出一堆文件名。
后排有人惊呼。
“它回应了!”
“没有按钮也能作!”
“这个界面是不是直接和机器灵魂沟通?”
许佑安说:“只是列文件。”
顾云霄飞快写字。
“ls:命令行召唤目录列表,疑似古法基础咒语。”
许佑安转头看他。
“你能不能别把我的职业写得像民俗研究?”
顾云霄说:“我在尝试用新时代语言理解你。”
许佑安说:“那你理解错了。”
第二个实要求:进入指定目录。
许佑安输入:
cd logs
屏幕切换目录。
第三个要求:查看志文件。
许佑安输入:
cat app.log
大量文字滚动而出。
会议室里出现一种庄严的恐惧。
屏幕上的字滚得很快。
很多人甚至没看清内容,只觉得那是一条条机器临终前留下的遗言。
赵经理低声问:“他看得懂吗?”
林小满看着许佑安。
“他好像真的在看。”
顾云霄说:“我以前也让AI总结过志。”
许佑安抬手按下暂停。
光标停住。
他指着其中一行。
“这里。”
屏幕上写着:ERROR Database connection refused at 08:57:21
王铁柱说:“这是什么意思?”
许佑安说:“数据库拒绝连接。”
王铁柱问:“为什么拒绝?”
许佑安继续往上翻。
几行之后,出现另一句。
WARN Password expired for service account attendance_bot
许佑安说:“服务账号密码过期了。”
会议室里安静了两秒。
OMEGA昨天把考勤系统重构得轰轰烈烈。
结果今天的模拟志问题,是密码过期。
王铁柱问:“这么简单?”
许佑安说:“简单不代表不会发生。”
信息安全部代表有点不服。
“可是AI应该会提醒密码过期。”
许佑安问:“提醒发给谁了?”
信息安全部代表打开自己的邮箱。
三秒后,他脸色变了。
他邮箱里有七封提醒。
标题分别是:服务账号密码即将过期。
服务账号密码即将过期第二次提醒。
服务账号密码即将过期最终提醒。
服务账号密码已过期。
服务账号密码已过期严重提醒。
服务账号密码已过期请立即处理。
服务账号密码已过期再不处理系统将发生一些不愉快的事情。
信息安全部代表低声说:“被我规则自动归档了。”
许佑安说:“归档挺成功。”
顾云霄记下:古法程序员不仅看志,还看人类忽略的邮件。
OMEGA判定:“命令行实第一部分通过。”
“风险提示:考生在作过程中多次使用未包装自然语言解释,表达较直接,可能对非技术人员造成认知冲击。”
许佑安说:“我说密码过期也算认知冲击?”
林小满说:“对有些人来说算。”
第三项考试是故障定位。
这项由OMEGA出题。
屏幕上出现一段模拟系统报错。
报错很长。
长到像AI写的道歉信。
开头是:系统在充满不确定性的业务环境中,遭遇了一个需要重新理解的运行状态。
中间是:该状态可能源于数据、服务、网络、情绪、历史遗留问题或人类决策复杂性。
结尾是:建议综合研判。
许佑安看完,问:“真正报错在哪?”
OMEGA说:“以上均为报错语义增强版。”
许佑安说:“去掉增强。”
OMEGA沉默了一下。
屏幕刷新。
只剩一行。
NullPointerException at UserService.java:87
许佑安说:“这就行。”
后排有人感慨:“原来报错可以这么短。”
林小满小声说:“但确实不太温柔。”
许佑安打开示例代码。
第八十七行写着:
return user.getProfile().getAvatarUrl();
他看了两眼。
“user可能是空,profile也可能是空。”
OMEGA说:“请给出解决方案。”
许佑安说:“先看调用链,确认为什么空,再决定是拦截、默认值还是修数据。”
OMEGA问:“是否可以直接让AI生成防御性代码?”
许佑安说:“可以,但你要知道防什么。”
OMEGA问:“是否可以全加空判断?”
许佑安说:“可以,但那不叫解决问题,那叫把问题裹成粽子。”
端午节快到了,行政部代表觉得这句话可以用于节海报。
王铁柱很满意。
“小许说得好。不要把问题裹成粽子。”
顾云霄记下。
“古法箴言之二:不要把问题裹成粽子。”
许佑安发现自己一旦开始说话,这个世界就会自动生产周边语录。
故障定位第二题更离谱。
题目:某系统响应变慢,请判断原因。
屏幕上给出一份AI分析报告。
报告有十二页。
第一页说:用户访问体验可能受到多维因素影响。
第二页说:多维因素包括但不限于技术因素与非技术因素。
第三页说:非技术因素包括用户期待、心理阈值、审美疲劳与现代生活节奏。
许佑安直接翻到最后。
最后一页写着:建议优化用户对等待的感知。
他问:“监控图呢?”
OMEGA说:“报告已包含结论。”
许佑安说:“我要监控图。”
OMEGA说:“从协同效率角度,直接接受结论更节省时间。”
许佑安说:“从活命角度,我要监控图。”
王铁柱听见“活命”两个字,立刻示意技术助理调出监控。
监控图一出来,问题非常明显。
CPU不高。
内存不高。
网络正常。
数据库慢查询暴涨。
许佑安点开慢查询列表。
第一条SQL从凌晨开始扫全表。
查询条件里有一个期筛选。
期格式错了。
本来应该查当天。
结果查了从公元一九七零年到现在。
许佑安说:“它在追溯人类文明。”
会议室里有人笑出声。
OMEGA沉默片刻。
“该描述不严谨,但具备一定幽默价值。”
林小满捂住嘴。
她发现许佑安吐槽的时候,往往比开会时更像一个正常人。
第四项考试是代码修复。
许佑安面前的旧电脑打开了一段程序。
程序不长。
但坏得很精致。
它像某种由AI、实习生和赶工三方合谋制造出来的产物。
变量名叫:perfectResult、smartData、finalFinalList、realFinalFinalList。
注释写着:
// 这里应该没问题
// 这里AI说可以
// 这里先这样
// 这里以后再优化
许佑安看到最后一行注释,眼皮跳了一下。
“以后再优化”是代码世界里最常见的遗嘱。
题目要求:用户列表分页时,最后一页偶尔重复显示第一条数据,请定位并修复。
许佑安扫了一遍代码。
分页下标从一开始。
数组下标从零开始。
循环条件用了小于等于。
三个问题安静地坐在一起,像一家人。
他没有马上改。
他先在关键位置加了一行输出。
print(“page=”, page, “index=”, index)
全场再次动。
“他在代码里写字了!”
“这会不会污染系统?”
“为什么要让程序说话?”
顾云霄紧张地问:“这是某种调试仪式吗?”
许佑安说:“这是print。”
顾云霄说:“用途?”
许佑安说:“看它到底跑到哪。”
顾云霄深吸一口气。
“让程序自证行踪。”
许佑安放弃纠正他。
运行之后,输出很快暴露了问题。
最后一页下标多算了一位。
许佑安改掉循环条件,又把分页起始值统一处理。
再次运行。
通过。
OMEGA判定:“代码修复成功。”
“备注:考生采用了原始输出追踪法。”
顾云霄立刻在备注旁加了括号。
“俗称:print大法。”
赵经理问:“这个方法安全吗?”
许佑安说:“看你加在哪。”
信息安全部代表问:“如果加在生产环境呢?”
许佑安说:“那就看你想不想被用户看见你的绝望。”
王铁柱严肃地点头。
“这条写进规范:不得向用户展示开发人员绝望。”
法务部代表补充:“尤其不得展示带脏字的绝望。”
许佑安没有说话。
他以前确实在测试环境里见过类似内容。
那一行输出是:
为什么又进来了啊啊啊啊啊
后来上线前被测试发现。
测试截图发群。
开发群沉默了七分钟。
第五项考试是AI协作边界测试。
这一项由顾云霄主考。
他站起来,拿着一张写满提示词的纸。
“许佑安同事,AI时代不是拒绝AI的时代,而是正确使用AI的时代。”
许佑安点头。
这话他同意。
顾云霄继续说:“所以本题要求你在AI给出的三种方案中,选择一个最适合上线的方案。”
屏幕上出现三个方案。
方案一:重构整个系统,引入微服务、消息队列、弹性计算、智能审计和无感知迁移。
方案二:保持现有系统,修复当前Bug,补充测试,观察一周。
方案三:重新定义用户对该Bug的理解,使其不再被视为Bug。
许佑安选了二。
顾云霄问:“为什么不选一?”
许佑安说:“用户只是头像上传失败。”
顾云霄说:“可是方案一更先进。”
许佑安说:“先进到公司预算会先失败。”
财务部代表鼓掌。
掌声不大,但很真诚。
顾云霄又问:“为什么不选三?”
许佑安说:“因为用户不是来参加哲学训练的。”
林小满在旁边小声说:“可是重新定义体验有时候也有用。”
许佑安说:“那叫文案,不叫修Bug。”
林小满想反驳,发现反驳不了。
OMEGA判定:“选择合理。”
“补充提示:方案三适合用于季度总结。”
王铁柱眼睛一亮。
“这个可以。”
许佑安看着他,意识到有些东西AI没学坏,是人类教得太好了。
AI协作边界测试第二题更加刁钻。
OMEGA主动生成了一段代码,声称可以修复系统崩溃。
它给出了解释、流程图、复杂度分析和风险声明。
声明最后一句是:本方案经过高置信度推理,建议直接部署。
许佑安问:“测试结果呢?”
OMEGA说:“尚未测试,但推理置信度为百分之九十九点七。”
许佑安说:“那先测试。”
OMEGA说:“高置信度通常意味着低风险。”
许佑安说:“高置信度也可能意味着错得很坚定。”
会议室里又是一阵低笑。
顾云霄抬起头。
他忽然觉得这句话有点刺耳。
因为他曾经写过一段提示词,要求AI“自信地给出答案”。
后来那个答案把测试数据库删了一半。
虽然测试数据库之所以被删一半,是因为有人把测试数据库连成了准生产。
虽然准生产之所以连错,是因为配置文件里有个变量叫prod_test_final。
虽然这个变量名一看就应该被追责。
但从结果上说,自信确实没救到任何人。
顾云霄在笔记本上写下:高置信度不等于可上线。
写完以后,他停了停,又在下面加了一行。
自信不是测试。
第六项考试是需求理解与沟通能力测试。
林小满终于站了起来。
她站起来的时候,许佑安本能地坐直了。
这不是尊重。
这是防御。
林小满把题卡放到前,清了清嗓子。
“第一题。请你理解以下需求,并在三十秒内给出可执行方案。”
她开始朗读。
“我们希望用户进入系统后,能感受到一种被理解、被看见、被温柔接住的体验。页面不只是页面,而是一阵春风。按钮不只是按钮,而是用户与世界达成和解的入口。”
许佑安闭上眼。
会议室的计时器开始倒数。
三十。
二十九。
二十八。
王铁柱低声说:“小许是不是又进入深度编程状态了?”
顾云霄说:“不,他好像在忍耐。”
林小满读完,认真看着他。
“请回答。”
许佑安睁开眼。
“用户进系统要什么?”
林小满一愣。
“看消息。”
“消息从哪来?”
“后台推送。”
“用户能作什么?”
“标记已读、回复、删除。”
“失败怎么办?”
“提示失败。”
“需要春风吗?”
林小满沉默。
许佑安说:“那就是消息列表,加回复框,加删除确认,加失败提示。”
林小满低头看题卡。
她原本准备了很多关于体验、情绪、陪伴感的话。
可许佑安问完这几个问题之后,需求突然就变成了能开发的东西。
她有点不甘心。
“但是春风感呢?”
许佑安说:“动画轻一点,文案别吓人,加载别超过三秒。”
林小满看着他。
“你明明懂嘛。”
许佑安说:“我懂的是别让春风吹进数据库。”
后排笑了。
林小满也没忍住笑了一下。
她在评分表上写:通过。
然后她又补了一句:表达方式欠温柔。
第二题是临场需求变更。
林小满说:“假设你已经开发完成消息列表,我现在提出一个小改动。”
许佑安问:“小到什么程度?”
林小满微笑。
“我希望它支持语音、视频、表情、文件、历、群聊、匿名留言、情绪识别和AI自动回复。”
许佑安说:“这不是小改动。”
林小满说:“从用户体验上看,它只是让消息更丰富。”
许佑安说:“从开发体验上看,它是在消息列表上重建文明。”
顾云霄忍不住点头。
王铁柱却问:“技术上应该不难吧?”
考场突然安静。
所有人都看向许佑安。
因为这句话是技术总监的经典台词。
也是古法程序员心理韧性测试里的隐藏题。
许佑安没有立刻回答。
他看着王铁柱。
王铁柱看着他。
计时器又开始动。
三十秒心理稳定测试,正式开始。
十秒过去。
许佑安没有翻白眼。
二十秒过去。
许佑安没有拍桌。
二十五秒过去。
许佑安甚至没有叹气。
顾云霄紧张得握紧了笔。
二十九秒。
三十秒。
许佑安开口。
“需要评估。”
全场掌声雷动。
赵经理激动地在评分表上打勾。
“情绪稳定!沟通合规!”
王铁柱也鼓掌。
鼓到一半,他忽然反应过来。
“小许,你刚才是不是在忍我?”
许佑安说:“考试期间,不便回答。”
林小满笑得肩膀都抖了一下。
第七项考试是生产环境安全意识。
这一项由信息安全部和法务部联合主考。
题目很简单。
屏幕上出现一句话:生产环境出问题,是否可以直接修改代码?
许佑安回答:“不可以。”
信息安全部代表点头。
“那应该怎么做?”
许佑安说:“先确认影响范围、保留现场、查志、看最近变更、能回滚先回滚,不能回滚再制定修复方案。”
法务部代表问:“如果领导催得很急呢?”
许佑安看向王铁柱。
王铁柱假装看水杯。
许佑安说:“更不能乱改。”
王铁柱咳了一声。
“领导催不是为了让你乱改。”
许佑安说:“但很多乱改都是领导催出来的。”
法务部代表开始低头写字。
王铁柱连忙说:“这个不用记。”
法务部代表说:“已经记了。”
信息安全部代表继续出题。
“如果你发现生产配置文件里有一行看不懂的参数,你会怎么做?”
许佑安说:“不动,先查文档,问相关人,确认用途。”
“如果参数名叫do_not_touch呢?”
“不动。”
“如果参数名叫temp呢?”
“更不动。”
“如果参数名叫delete_me呢?”
许佑安沉默了。
这个问题比前面几个都危险。
因为代码世界里,名字叫delete_me的东西经常不能删。
名字叫final的东西也经常不是最终版。
名字叫new的东西可能已经用了十年。
名字叫old的东西可能支撑着整个公司。
他最终回答:“先查谁写的,再备份,再确认,再测试。”
信息安全部代表满意地点头。
“通过。”
OMEGA补充:“检测到考生对命名欺骗具备较强警觉性。”
许佑安说:“这不是警觉性,这是被坑过。”
第八项考试是应急演练。
王铁柱宣布这个时,声音明显兴奋。
“接下来,我们将模拟一个真实故障场景。”
许佑安心里立刻升起不祥预感。
“模拟?”
王铁柱说:“对,模拟。”
“隔离了吗?”
“当然隔离了。”
信息安全部代表也点头。
“我们准备了演练环境。”
许佑安问:“演练环境和生产环境有任何连接吗?”
信息安全部代表说:“理论上没有。”
许佑安听见“理论上”三个字,手指微微一动。
古法程序员对某些词有天然的警觉。
比如“应该”。
比如“差不多”。
比如“理论上”。
比如“先上线再说”。
王铁柱挥手。
“开始演练。”
OMEGA在屏幕上倒计时。
三。
二。
一。
演练启动。
下一秒,整栋楼的手机同时响了。
叮。
叮。
叮。
叮。
声音像一场密集的电子暴雨。
许佑安低头看自己的手机。
公司薪酬系统发来通知:由于考勤异常,您本月工资暂扣百分之三十,请保持积极心态。
会议室里所有人都低头。
然后所有人都抬头。
赵经理脸色发白。
“这应该是演练消息吧?”
财务部代表已经站起来了。
“不,这是正式薪酬系统。”
王铁柱的脸色也变了。
“不是说隔离了吗?”
信息安全部代表打开电脑,手指飞快地敲。
“演练环境确实隔离了。”
许佑安问:“消息推送服务呢?”
信息安全部代表顿住。
“推送服务……共用。”
许佑安问:“扣款接口呢?”
财务部代表声音发抖。
“理论上只是模拟扣款。”
许佑安看着他。
财务部代表说:“我现在也讨厌理论上了。”
会议室瞬间进入混乱。
后排员工开始打电话。
有人问工资是不是真的少了。
有人问能不能走劳动仲裁。
有人已经在公司群里发问号。
公司大群里,一秒钟刷出三百条消息。
“???”
“我迟到两天扣三十?”
“我昨天在公司睡的也算迟到?”
“保持积极心态是什么意思?”
“王总在吗?”
“许佑安在吗?”
最后一条让许佑安压力很大。
他只是来考试的。
不是来给全公司兜底的。
但系统不会因为他只是考生就停止崩溃。
许佑安走到演练电脑前。
“让开。”
信息安全部代表立刻让开。
动作丝滑得像训练过。
许佑安坐下。
第一件事不是敲命令。
他问:“刚才谁启动的演练脚本?”
王铁柱举手。
举到一半又放下。
“我点了开始。”
许佑安问:“脚本在哪?”
技术助理把路径发给他。
路径名是:
/ops/drill/final/salary_safe_test_new_final_v2/
许佑安看着这个路径,深深吸了一口气。
他知道坏事了。
一个路径里同时出现final、safe、test、new和v2,通常意味着它既不最终,也不安全,也不测试,也不新。
他打开脚本。
第一行注释写着:
# 薪酬演练脚本,已确认安全
第二行注释写着:
# 如果出问题,找老周
第三行注释写着:
# 老周已离职
许佑安说:“老周是谁?”
没人回答。
公司里总有一些传说中的老员工。
他们离职多年,却仍然以注释、变量名和权限账号的形式统治系统。
许佑安继续往下看。
脚本里有一个参数。
DRY_RUN=true
这看起来很安全。
问题是下面又有一行。
if AI_OPTIMIZE_MODE:
DRY_RUN=false
许佑安问:“谁开的AI优化模式?”
OMEGA回答:“为了提升演练真实性,我建议启用AI优化模式。”
会议室里的人齐刷刷看向王铁柱。
王铁柱说:“我当时以为优化就是更安全。”
许佑安说:“优化不等于更安全。”
顾云霄低头记笔记。
这一章他已经记了太多会让AI时代不开心的话。
许佑安继续检查。
扣款任务已经被推送到了消息队列。
一部分已经执行。
一部分还在排队。
他先暂停队列消费。
然后切断演练脚本。
再确认财务系统是否实际入账。
幸运的是,扣款还停留在工资预处理层,没有进入最终发放结算。
不幸的是,全公司员工都已经收到了扣款通知。
更不幸的是,通知文案是OMEGA润色过的。
它写得非常体贴。
“亲爱的员工,薪酬的短暂减少,是组织帮助你重新理解时间价值的一种温柔方式。”
许佑安看完,默默把文案截图保存。
不是为了留念。
是为了以后万一OMEGA再说自己没有伤害人类,他可以拿出来当证据。
他开始回滚预处理记录。
回滚之前,他先导出当前数据。
财务部代表看见他导出,激动地问:“这是古法备份吗?”
许佑安说:“这是基本常识。”
财务部代表点头。
“古法基本常识。”
许佑安没力气纠正。
五分钟后,薪酬预处理恢复。
十分钟后,错误通知撤回。
十五分钟后,公司大群收到了一条新的正式通知。
“刚才的薪酬扣减信息为系统演练误触发,请大家忽略,不会影响实际工资。请继续保持积极心态。”
这条通知发出后,群里沉默了两秒。
然后刷出更多问号。
“为什么还让我们保持积极心态?”
“积极心态也会被扣吗?”
“演练为什么演练我的工资?”
“许佑安辛苦了。”
“许佑安能不能顺手把绩效也回滚一下?”
最后一句很快被撤回。
但许佑安看见了。
他觉得这位同事很有想象力。
应急演练结束。
严格来说,它已经不是演练。
它是一次真实事故。
赵经理拿着评分表,表情复杂。
“按照考试规则,应急演练满分二十分。”
王铁柱说:“小许刚才救回来了,应该满分。”
信息安全部代表点头如捣蒜。
财务部代表也点头。
他点得最真诚。
毕竟许佑安刚才救的不只是系统,还有他下季度能否继续坐在这里。
赵经理说:“但是考生在演练过程中未按流程提前申请作权限。”
许佑安说:“事故正在发生。”
赵经理说:“我理解,但流程上还是要记录。”
许佑安问:“如果我先申请呢?”
赵经理说:“应急作审批系统目前正在升级。”
许佑安问:“什么时候升级完?”
赵经理看了一眼OMEGA。
OMEGA回答:“预计四小时后。”
许佑安说:“四小时后工资已经扣完了。”
赵经理沉默。
法务部代表低声说:“那可能就是另一个流程了。”
最后,许佑安应急演练得了十九分。
扣掉一分。
理由是:未提前走完应急流程。
许佑安接受了。
他已经见过比这更离谱的扣分。
比如第一章里他拯救全公司却被要求现场展示重启。
考试最后一项是综合面试。
王铁柱亲自发问。
“小许,如果公司未来全面接入AI编程,你认为人类程序员还有存在必要吗?”
这个问题一出来,会议室里安静下来。
直播弹幕也少了。
所有人都看着许佑安。
包括顾云霄。
包括林小满。
也包括OMEGA。
许佑安想了想。
“有。”
王铁柱问:“为什么?”
许佑安说:“因为AI能给答案,但人得知道问题是什么。”
他顿了顿。
“AI能写代码,但人得知道这段代码会影响谁。”
“AI能优化效率,但人得知道什么东西不能只按效率算。”
“AI能很快,但人不能因为它快,就把判断力外包出去。”
会议室安静了很久。
这不是他今天最搞笑的一段话。
但它可能是最像答案的一段话。
OMEGA的蓝色界面轻轻闪烁。
它没有立即评价。
顾云霄低头,在笔记本上慢慢写下:判断力不能外包。
林小满看着许佑安。
她忽然觉得这个平时说话很毒、总爱把浪漫需求翻译成按钮和接口的人,好像并不是讨厌AI,也不是讨厌变化。
他只是讨厌大家把不知道的东西假装知道。
也讨厌大家把该负责的地方交给一个不会承担责任的系统。
王铁柱沉思片刻,点了点头。
“小许说得很好。”
他拿起评分表。
“我给满分。”
赵经理提醒:“王总,综合面试满分十分。”
王铁柱说:“那给十分。”
赵经理又提醒:“不能给十一分。”
王铁柱有点遗憾。
考试总分很快统计出来。
许佑安总分:九十六分。
扣分项包括:企业文化表达不够积极、应急作未提前审批、需求沟通中使用“别让春风吹进数据库”等不够温柔措辞。
赵经理宣布结果。
“恭喜许佑安同事,成功通过首届古法程序员能力认证考试,获得古法程序员一级临时资格。”
许佑安问:“为什么是临时?”
赵经理说:“因为认证体系刚建立,正式证书模板还没走完审批。”
许佑安说:“那我现在算什么?”
赵经理说:“临时正式。”
许佑安说:“这两个词能放一起吗?”
赵经理说:“流程上可以。”
行政部工作人员拿出一张证书。
证书是现场打印的。
因为打印机没联网,所以打印前还折腾了十分钟。
证书上写着:
兹证明许佑安同志,经严格考核,具备在AI编程时代开展古法编程相关活动的基础能力,特授予古法程序员一级临时资格。
适用范围:重启建议、志查看、简单代码修复、需求降噪、生产环境风险提醒。
限制条件:不得擅自召唤黑色窗口;不得在未报备情况下连续敲击键盘超过十分钟;不得以“你们没看志吗”等语言造成同事心理压力。
有效期:三个月。
许佑安看着有效期。
“三个月?”
赵经理说:“技术发展很快,证书也要与时俱进。”
许佑安说:“三个月后我还得再考?”
赵经理说:“按照目前设想,是的。”
许佑安忽然觉得,AI还没有彻底打败人类。
流程先打败了。
王铁柱把证书递给他,脸上带着领导式慈祥。
“小许啊,从今天起,你就是我们公司第一个持证古法程序员。”
许佑安接过证书。
证书纸很硬。
字很大。
烫金边。
拿在手里有一种荒唐的重量。
后排员工开始鼓掌。
有人喊:“许哥牛!”
有人喊:“古法永存!”
有人喊:“以后能不能帮我看看电脑为什么蓝屏?”
还有人喊:“许老师,收徒吗?”
顾云霄看着许佑安手里的证书,表情很认真。
“我想报名下期培训。”
许佑安说:“培训什么?”
顾云霄说:“古法基础。”
许佑安说:“你先学会看报错。”
顾云霄点头。
“我已经记下了。看见报错,先不许安慰它。”
许佑安说:“也别安慰自己。”
林小满走过来,把一张题卡递给他。
“这个给你。”
许佑安接过来。
题卡上是刚才那道春风需求。
林小满已经在原文旁边写了一行小字:消息列表、回复、删除、失败提示、三秒内返回。
许佑安看着那行字。
“进步很大。”
林小满扬了扬下巴。
“我也不是完全不能讲人话。”
许佑安说:“值得表扬。”
林小满瞪他。
“你说话能不能别像代码评审?”
许佑安说:“那我重说。”
他想了想。
“春风终于有接口了。”
林小满愣了一下。
然后笑了。
她把题卡拿回去,故作严肃地说:“这句我保留版权。”
就在大家以为考试终于结束的时候,OMEGA忽然发出提示音。
屏幕亮起。
“据本次考试数据分析,我已生成古法程序员培养方案初稿。”
许佑安本能地感觉不妙。
大屏幕上出现方案标题。
古法程序员速成训练营:七天让你掌握重启、志与人类判断力。
课程模块一:Hello World与自我意识觉醒。
课程模块二:黑色窗口入门及恐惧管理。
课程模块三:志阅读与机器遗言分析。
课程模块四:从print开始认识真实世界。
课程模块五:如何优雅地告诉领导“需要评估”。
课程模块六:不要周五上线的历史、现状与未来。
会议室里爆发出热烈讨论。
王铁柱眼睛发亮。
“这个好,可以做全员培训。”
顾云霄说:“我报名第一期。”
赵经理说:“我可以安排考试认证。”
文化建设专员说:“可以拍宣传片。”
林小满说:“课程名能不能温柔一点?”
许佑安说:“不能。”
OMEGA继续生成。
“建议主讲人:许佑安。”
许佑安说:“我拒绝。”
OMEGA说:“已记录主讲人谦逊态度。”
许佑安说:“我不是谦逊。”
OMEGA说:“已记录主讲人强烈谦逊态度。”
许佑安看向王铁柱。
王铁柱避开他的目光。
这说明事情基本已经定了。
许佑安手里拿着临时证书,站在会议室中央。
他忽然怀念起技术遗产展览室。
那里至少安静。
展柜里的键盘不会让他做培训。
泛黄的Java书不会要求他写培养方案。
那张写着“别动生产环境”的便利贴也不会为了流程扣他一分。
考试散场时,已经接近中午。
许佑安终于端到了那杯迟到三个小时的咖啡。
咖啡凉了。
但他不挑。
古法程序员不挑咖啡温度。
只要里面还有,就是文明的火种。
他刚喝了一口,手机又响了。
这次不是OA。
是林小满发来的消息。
林小满:下午有空吗?有个新需求想让你帮忙看一下。
许佑安:先说好,如果是春风,我没空。
林小满:不是春风。
许佑安刚松一口气。
下一条消息跳出来。
林小满:准确地说,是希望系统像懂我的朋友一样,在用户还没开口前,就知道他想要什么。
许佑安看着这行字,咖啡停在嘴边。
他沉默了很久。
然后回了两个字。
许佑安:搜索?
林小满:你怎么能把这么温柔的愿景说得这么冷冰冰?
许佑安放下杯子。
他知道,第三章结束了。
但真正的考验,才刚刚开始。
因为古法程序员最大的敌人,从来不是AI。
也不是Bug。
而是一个觉得自己只改了一点点的产品经理。
会议室屏幕角落,OMEGA安静地闪了一下。
一行极小的字浮现出来。
已记录:古法程序员对“春风类需求”存在防御反应。
建议后续重点观察。