技术界的 Unboxable:30 年的错误形状

发布: (2026年3月9日 GMT+8 02:13)
13 分钟阅读
原文: Dev.to

Source: Dev.to

这是对2026 WeCoded Challenge:Echoes of Experience 的提交

每次招聘人员或人才中介联系我时,谈话总是以同样的方式结束。
“你的简历真的很有趣……但说实话,我们不知道该把你归入哪个类别。”

起初我把它当作礼貌的尴尬,随后又当作一种背后的赞美。如今,我把它视为迄今为止别人给我的最诚实的诊断。

三十年里,我在凌晨三点进行编码、建模、调试,只因为业务问题在前期没有被理解。三十年里,我构建了能够正常运行的系统——而业界却把我当成没有说明书的宜家家具。

如果问题不是我呢?

Act 1 — TO7 与意外的启示

第一次接触: 在八十年代中期的初中教室里,一台 Thomson TO7。一个稍显疯狂的数学老师在磁带上用 BASIC 教我们让字符跳舞。对一个十三岁的孩子来说,那就是带有 GOTO 的纳尼亚。

三年后,我走上了纯人文的道路——拉丁语、希腊语、德语、哲学、无尽的论文。键盘不见踪影。可是,当我最终进入计算机科学学院时,病毒仍然潜伏在那里,处于休眠状态。

那所学校是完全不同的世界:COBOL、CICS、JCL;大型机、庞大组织、形式化方法。MERISE 用于数据建模,Warnier 用于程序结构。严谨、层级、文档。

第一次实习: 在一台基于 Intel 8088、配有两块 5¼″ 软盘驱动器和 GW‑BASIC 的机器上,为一所初中数字化图书馆。配置相当简陋——远不及我们所学的系统。

很快就变得显而易见:

程序从来不是根本问题。
真正的问题在于结构不良的数据。借阅、归还、作者、复本——如果关系一开始没有正确定义,系统就会崩溃。因此,我先建模,再写任何代码。

这种方法并不依赖于机器。

二十岁时,我在不自觉中已经选定了自己的方向:系统思考者先于编码者

第2幕 — 拼凑的岁月

随后是一段欢乐而不可思议的拼凑。

  • 建筑事务所 – 使用 dBASE III+ 进行工程量清单,配合一台没有说明书的 HP 打印机。花了两周时间像解中国拼图一样破解背面的跳线,因为必须先了解机器,才能对它提出任何要求。
  • 地区邮政管理局(Chronopost 仍在试点阶段时) – 小型应用程序,用于跟踪货运和投诉。
  • 工业清洁公司 – 使用 OS/2 和 Lotus Symphony,实现发票和排班的自动化。

每一次都是同样的仪式:深入实际业务,建模流程,结构化数据,然后编码。先理解,后构建。

没有固定职位。没有明确的职称。没有线性职业路径。这种工作方式能够维系下去——但在行业分类体系中没有名称。

第三幕 — 巴黎、人才中介与文化冲突

在 2006 年,我尝试了“常规”路线:巴黎、开放式办公室、人才中介、Pierre & Vacances、Photoways、现场合同。我想从内部看看它是什么样子。结果我看到了。

完整的 Agile 推行: Redmine 任务、每日站会、回顾会、速度点。每周三到四小时的仪式,最终只剩十分钟的实际系统思考。

我交付了。但在内部我在呐喊:

“你花更多时间填写燃尽图,而不是弄清楚为什么客户失去了 15 % 的线索。”

整个冲刺都在把用户故事切得精确到毫米——却从未问过:这个数据模型能在五年后仍然成立吗? 我们只顾速度,速度,再以后再补丁。

问题不在于 Agile 本身,而是它变成了:一种集体安慰仪式,消耗了我本该用于实际工作的全部精力和专注。

一个例外

Logic‑immo (2008‑2009) – 通过人才中介雇佣。我走进面试时是为一个 Zend Framework 的岗位,二十分钟后离开,却被雇佣去做完全不同的事情:Oracle‑to‑MySQL 迁移、PHP CLI 模式,一个不可协商的要求——数据完整性优先,执行速度其次。没有流行框架。没有流行词汇。只有一条路线图。

有人看到了我实际在做的事,而不是纸面上的描述。半现场、半远程,数据为核心,脚本严密。这类工作让我能够发挥最佳水平。

这很少见。足够稀有,值得在意。

我坚持到 2011 年,然后收拾行李离开。2012 年,我的女儿出生。这不是退缩——而是一个结论。

第四幕 — 按我自己的方式构建

离开并不意味着停止。

  • 区域分类信息站点 – 使用 Zend Framework、Smarty,动态生成和管理超过一百个业务站点,拥有自定义路由。十个月,独自完成。
  • B2B 匹配平台 – 处理时间段约束和人工/自动仲裁;算法优化、流畅的界面、性能远超之前的系统。
  • 其他项目 – 由我自行挑选,没人要求我使用特定技术——只为交付具体成果。

随后是 dev.to、用英文写作,以及那些没有人委托的项目。

  • RFC 2324 – 为咖啡壶设计的 HTTP 协议,1998 年的工程师玩笑。我用 Python 的原始 asyncio 服务器认真实现它,因为这正好是讨论协议到底如何体现技术文化的借口。
  • 我自己的讽刺 RFCHTBMCP/1.0,“啤酒杯控制协议”,端口 1414,编号 1516 以致敬《纯酿法》。
  • AJC Bridge – 一个 WordPress 插件,可通过 GitHub 将内容同步到静态站点生成器。它在我需要的形态下并不存在,而这正是我要解决的合适问题。
  • 以图形式呈现的简历 – 将我的简历分析为关系图谱,而非时间线,因为线性的简历无法表现像我这样的职业轨迹。

这些项目都没有职位描述。它们也不算传统意义上的“全职”,但每一个都是拼图的一块,最终让我 把自己装进自己设计的盒子

ack React Node AWS. 然而它们都从同一点出发:真实的问题,而不是要填满的简历。

最后一个例子。我把 AJC Bridge 提交到官方的 WordPress.org 插件库。等待数周后,审查员给插件分配了一个通用的 slug,覆盖了插件的名称——没有解释,也不理会我的异议,只是引用了一个假设的商标问题,而该词根本不属于任何人。我撤回了提交。插件现在直接通过 GitHub Releases 分发。

相同的机制。不同的舞台。

Source:

第五幕 — 同样的工作,三十年后

我不再全职写代码。我现在做课堂助理。

我不想假装这是一份梦想中的工作。做课堂助理意味着我选择了就业不足——或者说,是因为拒绝。拒绝继续与一个永远不知道如何对待我的系统抗争。拒绝牺牲我的地区、我的女儿、我的工作方式,以迎合一个从未为我量身定做的模子。

这是一种妥协。清晰、刻意,有时也会让人筋疲力尽。

但它是我的。

我对这些孩子的做法仍然奇怪地像我过去对系统的做法:不带假设地观察,了解事物实际是如何运作的,而不是文档声称的那样,适应,拼凑出对特定个人有效的解决方案——而不是为某人想要把他们塞进的盒子服务。

我的方法在这里同样具有颠覆性。

WeCoded 挑战旨在庆祝科技领域的边缘声音。我不是性别少数群体。但我与足够多的此类同事共事,已经认识到其中的机制:问题不在于你不适合盒子——而是盒子本身是为排除你而建的。无论声明的理由是性别、背景、资历,还是仅仅一种让人感到不适的思维方式——结果都是一样的。

边缘化并不总是可见的。有时它只是——不可分类

如果你曾被告知——“简历很棒,但不太符合我们的盒子”——请仔细聆听:你并没有出问题。他们的分类网格实在太狭窄。

行业热衷于超专业化的组件。它几乎容不下那些能看到整体系统并敢于说出:*“如果我们继续这样下去,两年后系统就会崩溃”*的人。

你并不是不可分类的。你只是对匹配算法而言不可读。

而且,不,你不需要等他们学会阅读。

当一切在技术债务和破碎承诺的重压下崩塌时——那些不可分类的人正是他们要找的人。不是为了感谢他们,而是为了修复问题。随后他们又会把这些人忘在一旁,直到下一个危机来临。

所以现在就打造你的空间。不要等到得到许可后再行动。

他们不会要求你的盒子。他们只会问:“你能修好这个吗?”

是的,我能。

而你也能,可能。

0 浏览
Back to Blog

相关文章

阅读更多 »

代码的纹理

代码可以是美的吗?不是工程意义上的“elegant”。不是“efficient”或“clean”或“maintainable”。我的意思是像一幅画那样的美,像音乐那样的美。