这篇文章是一位软件开发者坦诚的自白,他详细阐述了自己因恐惧而停止写作和参与社交的经历。他公开了自己的知识盲区,例如长期不理解多态性、遗忘了 SQL、以及几乎从不写自动化测试。作者还分享了个人的困惑与遗憾,包括放弃学习 Blazor、渴望更多地使用 Ruby,以及遭受网络霸凌的痛苦经历。最后,他表达了对远程工作的负面看法。通过公开这些弱点和恐惧,他希望激励自己和他人勇敢面对不足,持续学习和成长。
自从四月份以来,我一直没有发表任何东西,因为我感到害怕。我也已经好几个月没有接触社交媒体、新闻聚合器和论坛了。但我不想再让恐惧阻止我。这篇文章将详细记录我一直以来在这个博客上回避承认的每一件事。
知识盲区的自白
我意识到,我不是唯一一个在职的、却缺少关键技能的软件开发者。我的职业学习路径就像黏菌寻找食物:有用的部分就加强,其余的则任其萎缩。但最近,我一直在构建一个更好的知识基础。而要写下我的学习内容,就必须承认我曾经的无知。
正是源于这种无知,才催生了对知识的渴望。
我有十年都没搞懂多态性
在过去的一年里学习多态性时,我第一次为承认自己不懂某件事而感到尴尬。自 2012 年以来,我一直在编写所谓的面向对象软件。然而,我对多态性的无知表明,我写的不过是结构化程序。我从未想过可以用专门的类来替代条件判断和 case 语句。
为什么我害怕承认:
- 伪善: 作为一名招聘经理,我曾面试过软件工程师并试图筛选出具备面向对象知识的人。回想起来,这很虚伪。
- 暴露短板: 这个盲区表明我职业生涯早期只学会了工具,而没有掌握原则。
- 缺乏正规教育: 多态性是每门大学面向对象课程都会讲授的内容。
我忘了 SQL
我曾在大学里上过数据库课程,也曾通读过《学习SQL》并完成练习。但后来我专注于前端开发,工作中再也没有用过 SQL。就像任何未被使用的技能一样,它萎缩了。我只记得如何编写基础查询,但更多的内容就不行了。例如,如果不查资料,我说不出左内连接和外连接的区别。
为什么我害怕承认:
- 记忆力衰退: 我习惯于过目不忘。SQL 是我第一次因荒废而完全失去的技能。
- 面对衰老: 承认这一点,意味着要面对开始衰老的事实,而公开承认则更难。
我不写自动化测试
我交付给生产环境的代码中,估计有 95% 都没有自动化测试。职业生涯早期,我没有接触过这个概念。后来,我用 Ember 写前端,但当时它的测试工具很糟糕。最近,我一直在处理遗留代码,也没有投入精力去让它变得可测试。
为什么我害怕承认:
- 职业污点: 这可能是我最具职业破坏性的坦白。有人认为,交付没有测试的代码是不道德的。
- 求职风险: 我担心未来的招聘经理会因此认为我不适合与他们共事。
你应该用自动化单元测试来测试多少代码?我真的需要回答这个问题吗?全部!所有的代码。每一行你写的代码都应该被测试。就这样。
个人的自白
我最终没有学习 Blazor
我曾承诺会分享学习 C#、.NET 和 Blazor 的后续进展,但这篇文章可能永远不会出现。我学习它们只是因为工作需要。后来,公司突然取消了技术栈切换的决定。由于没有内在动力,我便放弃了学习。
为什么我害怕承认:
- 违背承诺: 我曾在上一篇文章末尾承诺会写一篇后续文章。
- 流量的诱惑: 关于这个主题的初步文章获得了很高的流量,承认我因公司变卦而改变方向,感觉像是承认失败。
我想写更多的 Ruby
我热爱 Ruby,但自 2013 年以来就没再因工作而写过它。我一直选择与优秀的人共事,代价是使用一种不那么出色的语言。这意味着我只能在下班后和周末成为一名 Rubyist。
为什么我害怕承认:
- 冒犯上级: 我的经理和 CTO 都会读这个博客。我很难自由地表达对日常使用工具的不满。
- 引起误会: 我担心他们会认为这是我准备辞职的暗示(我没有),或者认为我会在工作中强推一个没人熟悉的工具(我不会)。
网络霸凌的伤害
我曾在一个开源项目中,使用大语言模型(LLM)生成了一小段代码并提交了拉取请求,但并未声明使用了 AI。当我在一个论坛上讲述这个故事并为自己的行为辩护时,网络霸凌开始了。
- 我被人称为无能、卑鄙、恶心。
- 骚扰从网站蔓延到社交媒体、电子邮件、短信甚至电话。
- 网站管理员不仅没有帮助我,反而将更多我的个人信息附加到我的个人资料上,并锁定编辑权限。
为什么我害怕承认:
这件事是我经历过的最恶毒的事情之一。我害怕写出来会再次引来那些人的攻击。我也担心我被污蔑的个人资料会影响我的就业能力。
工作场所的自白
你的团队不需要特殊的流程
敏捷宣言已经足够成熟,软件即服务(SaaS)也已主导市场十多年。公司应该将有限的创新预算花在产品上,而不是发明一套自定义的软件开发生命周期。严格遵循 Scrum、看板(Kanban)或极限编程(XP),让团队专注于产品本身。
为什么我害怕承认:
这篇文章的动机是由于一位同事推动创建自定义流程。我担心这篇文章在没有足够技巧的情况下,会看起来像是在攻击他或他的想法。
远程工作很糟糕
远程工作解决了通勤、办公空间浪费等问题,但软件开发在与同事共处一室时效果更好。
- 低效沟通: 视频通话是一种低带宽的媒介,你失去了对同事问题的“环境感知”。
- 求助困难: 寻求帮助成了一个更大的负担。
- 协作不畅: 结对编程效果更差,在线白板也无法很好地表达空间概念。
- 冲突加剧: 很容易对视频通话另一端的人产生敌意,但在同一个房间里则很难维持这种印象。
为什么我害怕承认:
新冠疫情后,我全家搬到了一个农村地区,享受着地理套利带来的生活方式。我担心对远程工作的负面评价会危及我当前及未来的远程工作机会。尽管我更喜欢与人并肩工作,但我不太可能为了工作而搬家。我需要将目前的收入翻倍才能在城市维持现在的生活水平,这不太可能。
现在怎么办?
现在,束缚我的大坝已经决堤,没有什么能阻止我继续发表文章了。我会继续努力提升技能,并且可以自由地分享我的学习过程。如果这篇文章与你产生了共鸣,欢迎与我交流。