paint-brush
我是如何成为一名 100 倍开发人员的 - 作为一名大三学生经过@picocreator
7,722 讀數
7,722 讀數

我是如何成为一名 100 倍开发人员的 - 作为一名大三学生

经过 picocreator9m2023/01/03
Read on Terminal Reader

太長; 讀書

10x / rockstar 开发者是一个神话。 100 倍情境开发者万岁! 了解如何提高成为 100 倍情境开发人员的几率。
featured image - 我是如何成为一名 100 倍开发人员的 - 作为一名大三学生
picocreator HackerNoon profile picture
0-item
1-item


10 倍开发人员或摇滚明星开发人员在所有方面都比其他开发人员更好的想法是一个神话。


相反,您应该努力在非常具体的情况下成为 100 倍的开发人员,在某些情况下成为 10 倍的开发人员,并在尽可能多的情况下成为 1 倍的开发人员。了解你擅长的领域和你可能需要努力的领域是很重要的。


除非你在一家大型科技公司工作,否则你很可能身兼多职。每天,您都需要能够在前端、后端和特定语言的开发(例如 Java 或 TypeScript)之间切换。这是由于我们行业不断变化的性质以及实现相同任务的方法数量之多——比如用 400 多种不同的编程语言打印“Hello World”。


XKCD 漫画,关于标准


不可能擅长所有事情,但有可能擅长某事。

详细来说,我想分享一个十多年前的故事,那是一个改变人生的时刻,对我的职业生涯产生了巨大影响。

我是如何成为一名 100 倍开发人员的 - 作为一名大三学生

我曾与一家大型跨国公司合作,并且是一个努力满足需求的团队的一员。

他们构建了一个自定义 Java Web 应用程序,成千上万的员工每天都在使用该应用程序,但随着进出 SQL 服务器的记录数量不断增加。事情正在放缓。他们已经将 SQL 服务器升级到极限,需要新的解决方案。一个明显的方法是使用内存缓存来缓存一些结果。


不幸的是,由于过去的一些安全事件和缺乏 HA,memcache 已被禁止。一年多来,经理们一直试图获得 Memcache 的批准,但都失败了。与此同时,开发人员进行了一场艰苦的战斗,因为每 10% 的改进都会被用户增长的两倍所抵消。


这就是我进来并加入的地方。


我不知道他们过去 1 年的挣扎,并作为初级开发人员加入,帮助对 UI 进行一些小的改进,而高级开发人员则专注于性能。


但是因为,我对开发服务器的缓慢性能感到非常恼火。我一直在玩 Hazelcast——一个全新的基于 Java 的服务器集群和缓存库。

我用它作为内存缓存的替代品。并且能够让它在没有特殊限制或特殊批准要求的应用程序上运行,这杀死了所有以前的解决方案。

并在同一周内准备好一个带有演示的工作原型。对于平台中的一个页面,API 调用时间从 10 多秒缩短到不到 1 秒。这是一个改变游戏规则的人。


整个团队都加入进来,在一个月内,我们在生产中有了一个“绝对不是 memcache 的集群解决方案”。


当我的团队经理和他的老板请大家吃晚饭时,我的经理对我说,当他把我当成一个聪明的孩子时,他从来没有想到我会成为一个 10x 或 100x 的程序员,可以在一夜之间解决他们的问题。

那句话让我印象深刻。


因为我是一个冒名顶替者——只不过是一个幸运的冒名顶替者。


冒名顶替者的形象,在我们中间的游戏

幸运的冒名顶替者——谁是 0.1x 开发者

从技术上讲,我不是 1x 甚至 10x 开发人员。我知道的比我的队友少,而且我是在工作中学习的。


我的同龄人可以比我做前端,团队知道如何优化 SQL(并教我,谢谢!)。我最大的功劳是我能够完成相当于“npm install miracle”的操作,并阅读其配置手册。


事后看来,有很多问题我都靠运气避开了。


  • 政治(首先阻止了内存缓存)
  • 用例(我们没有写争用安全,这意味着如果在同一毫秒内发生 2 次编辑,缓存将被严重更新。谢天谢地,这种情况很少发生)
  • 稳定性(hazelcast 的 v1 疯狂崩溃,幸运的是 API 服务器被设计为以 HA 模式部署,所以这在最坏的情况下对基础设施团队来说是一种烦恼)
  • 安全性(对集群中 API 服务器上的所有数据开放端口,对我来说是个坏主意,也是一个非常低级的错误,直到另一位资深人士幸运地阅读了有关如何保护它的文档)
  • 语言堆栈(如果服务器使用 Python、.NET、C# 或 Ruby,我什至不知道如何包含本地集群缓存)


我很幸运有一些只会一招的小马,这让我在正确的情况下获得了 100 倍的成绩。这是唯一可能的,因为团队其他成员所做的基础工作。


我也很幸运,我的经理和老板允许我选择我想解决的问题,因为他们对我进行了快速跟踪,并将我分配给多个团队来“解决他们的问题”。同时让我最大化我的幸运影响比并重复“奇迹”。


有了经验,我也意识到了相反的情况——我在前端开发方面很慢。这是我在被快速提升为 10 倍工程师之前本来应该做的事情,这让我多年来反思了很多。因为这可能是我一直坚持的道路。


事后看来,“掌握”了 hazelcast 和其他各种技术也让我印象深刻。如果不是因为独特的情况和保障措施,即使在同一个组织中,其他团队也会失败多少,这应该归功于团队的其他成员。


我很幸运,作为一名大三学生,如果有的话。

这就是为什么高级开发人员往往是初级开发人员的 10 倍

一旦我们超越工程的概括,就会发现每个人都有自己的技能,范围从 100 倍到 0.1 倍不等。


多年来,随着我在许多团队和项目中穿梭,我最终成为了一名“高级”开发人员。在这段时间里,我发现前辈一般都有更多的技能,知道自己擅长什么,不擅长什么。他们可以主动通知他们的经理,并相应地确定任务的优先级。这并不意味着他们知道如何做所有事情,而是意味着他们知道什么不该做。


另一方面,青少年则为此苦苦挣扎,因为他们缺乏经验,无法知道自己擅长什么或不擅长什么。除了“尝试”之外,没有一种简单的方法可以找出这一点。


一旦理解了这一点,就会很明显,这一切都是为了最大限度地增加您知道可以可靠且出色地完成的事情的数量。这也是关于在分配任务时最大化你的运气因素,并确保你不会被你不擅长的事情所困。


在某种程度上,对于青少年来说,他们的进步将在很大程度上取决于他们的运气和技能组合。老年人对如何引导他们的进步有更多(但不是完全)控制权。


在这种情况下:运气不是二元的。您可以增加适合您的情况的数量。


冒名顶替者的形象,在我们中间的游戏

如何在 100 倍和 10 倍时最大化您的情况运气

对于每个人,尤其是对于初级和刚起步的人来说,最好的办法就是不断尝试和探索技术上的新事物。这将帮助您弄清楚自己擅长什么,不擅长什么。


对于那些更了解自己擅长什么的人,下一步是扩大他们可以发挥最佳水平的情况的数量。这涉及对他们已知技术的相邻技术进行一些实践和研究。一旦你擅长某件事,一定要拥有它,这样你的经理和老板就会知道这是他们应该给你的。这将增加更频繁地达到 10 倍或 100 倍情况的机会。


至少找到一件你擅长的事情,即使它是一件很小很窄的事情。从那里建立起来。 (一些值得注意的例子包括正则表达式和配置 webpack。)


对于老年人,如果您还没有这样做,请开始超越开发的技术方面。这并不意味着您必须进入管理层。但是凭借您独特的技术知识,您可以在理解用户或业务用例方面发挥更积极的作用。这将使您能够与您的经理一起进行优化,以确保您和您的团队获得 10 倍或 100 倍的成功率。


对于正在找工作的人来说,如果您知道自己擅长某事,即使是 10 倍,也请做一些研究并深入挖掘您的求职过程。试着找一家资金充足的初创公司或跨国公司,但在你擅长的事情上遇到困难。虽然这可能很难实现并且确实涉及一些网络,但如果您将自己置于正确的地点和时间,它将对您和所涉及的公司产生最大的影响。


这些都是可以慢慢做的,时间久了,提高运气因素。并更一致地提供 10 倍的体验。


特别推荐阅读swyx关于如何创造运气的文章: swyx.io/create-luck


一群人,一起拿着乐高无花果

今天,作为首席技术官和团队领导者,这仍然成立——10 倍是一个神话——每个人都是 100 倍和 0.1 倍

有些人可能认为Uilicious.com等 UI 测试工具的 CTO 会擅长前端技术。然而,这远非事实。在使用 Vue.js 或 React 等现代前端框架编写前端组件时,我们公司的平均新员工或初级员工通常比 CTO 更快。


这改变了我作为团队领导者/经理的观点。它向我展示了 10 倍工程师神话是多么的有害和糟糕。这是对标签的过度简化和对非常独特情况的概括。这是一个需要纠正的有毒误解。


几乎每一个初创公司的 10 倍工程师神话,当深入研究时,都会发现在正确的时间和地点拥有独特知识的人。并且能够避免他们 0.1 倍的任务。


就我而言,它专注于基础设施而不是前端开发。相反,我有其他团队成员在前端开发方面的表现要好 1000 倍。


作为一名经理,这是一个重要的认识,因为对于每个在一项任务中完成 100 倍的个人来说,当他们陷入时间陷阱时,有一项任务会使他们成为 0.1 倍。这是关于理解和认识每个人的 100 倍,以及他们的 0.1 倍。


虽然这听起来很简单,但在实践中要困难得多。

团队领导或开发人员在尝试之前不会知道很多事情。或者有时间和机会磨练和掌握在这些特定情况下所涉及的技能。还有很多东西,尤其是新技术,没有人擅长,全靠冒险和机会。


团队负责人的工作是相应地组织任务以最好地满足每个人的需求。如果那是不可能的,那也是关于理解,即使某人现在不能在你的情况下达到 100 倍,他们也可能在其他团队的其他地方。

每个开发人员都要弄清楚他们的优点和缺点,并相应地与他们的团队进行沟通。


所以 10x 工程师神话死了,在特定情况下 100x 工程师万岁


PS:如果你还没有制定任何新年计划。也许可以增加您的运气表面积!


~ 🖖 长寿繁荣


Eugene Cheah: uilicious.com首席技术官


最初发布于: https ://substack.tech-talk-cto.com/p/dev-to-cto-how-do-i-become-a-10x


图片学分