我不知道的事情的最终清单

2025-06-07

我不知道的事情的最终清单

最近,我一直在思考我的工作以及未来的发展方向。因此,了解我需要学习什么才能达到目标,这合乎逻辑。事实证明,我越是思考未知的事情,就越是确信承认这些事情而不是隐藏它们的重要性。

科技行业很大一部分人都存在一个误解,认为求职者必须是一位无所不知、永不倦怠的顶尖开发者。多年来,我们看到的招聘广告荒谬地脱离了现实世界。这些广告要求求职者拥有 5 年以上的专业经验,并精通 10 多种不同的技术。

产品和业务所有者要求用更少的资源实现更高的产出。如果招聘人员没有面试现有的开发人员,了解他们日常工作所需的技能,就无法招到合适的人才。风险投资家们构建并生活在他们自己的虚拟世界中,这个世界里充满了工程师,他们每周工作 60-80 小时,每天都能开采出原始钻石。

我们开发人员也并非无辜。我们倾向于毫无怨言地分享这些冗长的学习路线图,这些路线图列出了我们在获得某个等级之前需要掌握的技能。

甚至不要问所有这些冒名顶替综合症是从哪里来的。

与此同时,我们应该支持少数族裔在科技领域开启职业生涯。对于一些大型科技公司来说,只要你在社交媒体上把头像改成酷炫的彩虹色就足够了,他们什么都给。欢迎你加入我们这种“有毒”的工作文化,只要你满足这20个不切实际的条件。

我们面临一个严重的问题,作为专业人士,我们有责任向世界承认你不需要了解一切,从而解决这个问题。

这篇文章的灵感来源于Dan Abramov一份类似清单,以及 Twitter 上关于所谓“10x 工程师”的广泛讨论

当然,这篇文章的目的并非要贬低我。关注我的博客和社交媒体账号,或者直接与我交流,你就能发现我很多擅长的事情。不过,我们还是别再讨论这些了。

不用多说,我们开始吧。我可能会在以后修改这份清单。

我不知道的事情的终极清单(2019)

  • 无需查阅互联网速查表,就能记住编程语言的语法、算法、模块用法以及许多其他内容。你觉得我是一台拥有无限存储和处理能力的超级计算机吗?
  • 回想起我一个多星期前的工作,尤其麻烦的是,你写的代码三周后就被推送到生产环境供你维护。这真的是我写的吗?哦,根据版本控制,确实是我写的。好吧,让我们看看……
  • 避免 bug。bug都是我们自己造成的,没必要为此感到压力。至少我可以消除自己造成的缺陷。
  • 命名变量、函数、类以及应用程序的其他具体部分。通常,只有在了解应用程序整体运行情况后,我才能赋予它们合适的最终名称。在此之前,请欣赏我的通用签名,例如def get_item_from_store(n: str) -> Item
  • 编写代码时更新文档。软件文档本身就注定是过时的,所以这不是什么大问题。
  • 进行测试驱动开发(TDD)。很多时候,我必须反复推敲自己的设想,编写一些样板代码,才能确定需要哪些测试。TDD 的许多假设都表明,只需查看验收标准就能立即知道所有测试用例,这非常危险。错误或执行不力的测试总是比没有测试更糟糕。
  • 使用令人难以置信的Vim宏库编写代码,并实现了每秒 100 行代码的惊人打字速度。我已经为我的编辑器配置了最重要的快捷键,但我仍然需要不时地用鼠标将光标移动到正确的位置。
  • 估算完成一个功能所需的时间。我的标准估计是,如果第三方依赖项没有意外,按照目前的速度,最多需要1-2周。等一下,我会用我的D&D骰子给你掷一些故事点数。带上你最好的牌组来开会吧。
  • 创建漂亮的 UI。我可以用 CSS 规则将几个元素居中,并从Google Fontsmargin中选择合适的字体。除此之外,诸如复杂的前端框架、网格系统和弹性框之类的东西都让我望而却步。不过,我正在慢慢适应React
  • 编写底层代码,尤其是在嵌入式系统方面。我学习期间选修过几门 C/C++ 课程,但自从转向 Web 开发后,我很高兴地把大部分内容都忘了。当然,我可以通过编程 I/O 信号在 LED 显示屏上创建漂亮的跑马灯文字,但我可能会忘记释放所有内存,导致设备崩溃或起火。
  • 移动平台。我曾经尝试在 Android 上创建一些东西,但发现自己不懂 Java IDE 的黑魔法,所以放弃了。我听说现在可以用其他语言替代 Java,但我仍然会用 Web 技术编写 PWA。
  • 游戏开发。我学过游戏设计,也写过游戏相关的文章,但我不知道如何真正开发它们。我做过的最先进的项目是按照教程做了一个《Pong》 (1972)的克隆版。
  • 平面设计。我在寻找快速制作博客封面图片的方法时,学习了一些设计工具(Sketch、Lunacy、Invision)。所以我知道如何在背景上放置阴影文字,并添加一些剪贴画。不过,下次活动别请我来做广告素材。
  • 作为一名IT支持人员,驱动程序、外设、消费级操作系统以及各种网络堆栈的世界实在太杂乱了,我经常感到不知所措。如果您打电话给我修理您的打印机或家用路由器,我只能要求您将其关闭然后再打开。偶尔,我可能会建立远程桌面连接,重新安装所有可用的驱动程序。
  • 硬件。跟上面说的一样,我给电脑做过最牛逼的事儿就是换了新的HDD和SSD,这花了我好几个小时,真是操碎了心,骂骂咧咧。我的下一台电脑肯定是笔记本电脑。
  • ……还有很多我还没有想到的事情。

我们工程师谁都不是“超级开发者”、“摇滚明星程序员”或“敏捷忍者”。就连那些愚蠢的风投们做梦也想不到。如果你的人力资源部门认为不用上网查资料也能生存下来是工作中必不可少的一部分,请把我的名字从招聘名单里划掉。我并非什么都擅长,但没关系。

但我最擅长的是什么?就是承认自己不懂,并寻求帮助。希望你也和我一样。

文章来源:https://dev.to/nikoheikkila/the-definitive-list-of-things-i-don-t-know-5afp
PREV
GitHub Markdown 表情符号完整列表
NEXT
Using Golang + Gomobile To Build Android Application (with code) Building Your Simple Android Application Integrating Go and Android Using Go Functions in Your Android Application Building and Testing Your Application