程序员「开发者成长」1x程序员五年总结出的经验法则


程序员「开发者成长」1x程序员五年总结出的经验法则
本文插图
作为一名 1x 开发人员 , 我在亚马逊五年的工作中总结了 20 条经验法则 , 希望能够在有限的自由时间内自我提升为 1.1X 开发人员 。 这些经验法则涉及生产力和学习、编程语言、技术、测试、DevOps、安全、设计和项目管理等领域 。 希望对大家有所启发 。
序 言 我不是一个10x 开发人员 。 自从有了拨号上网以后 , 我就没有再建过网站 。 我在大学毕业几年之后才开始学习编程 , 因为我在政府和政治领域的职业生涯已经走到了瓶颈 。
我写了五年代码了 , 这段时间都在亚马逊 。 在这期间 , 我还在养育三个孩子 , 我刚开始工作时 , 他们分别是 0 岁、0 岁和 2 岁 。所以我不是那种在晚上和周末还在努力加班的人 。 我很顾家 。
大约一年前 , 我做了自己的第一个开源项目 。 这是我的第一个副业项目 , 它是一个会议网站 。
我从来没有系统地从头到尾读过一本关于软件工程的书 。
总之 , 我是一个 1x 开发人员 。 我为了体面的生活付出了足够的努力 。 我没有太多有普遍价值的东西要说 , 也没有太多时间去提升 。
作为一个 1x 开发人员 , 我使用的是大量的传统智慧 。关于软件工程 , 我没有太多有趣或新鲜的东西可说 。
总的来说 , 我还没有找到方法去从工作中抽出大量时间 , 或者去做一些更大的副业项目 , 或者去大量地阅读 , 又或者是去取得巨大的成就 。 我只是能抽点小空(来做这些事情)
但我也有勃勃雄心 。 我想成为一个 1.1x 的开发人员 。 我正在想办法做到 。
我的自助提升理论 这篇文章发表的时候 , 我正好有些比较自由的时间 , 因为 covid-19 病毒带来的隔离政策 , 我能休上几天假 , 但实际上却哪里也不能去 , 因为此时孩子们也正在放假 。
因此 , 我打算通过以下方式来自我提升软件工程方面的知识:
把我对一些软件工程主题的无知想法写下来 。
向比我聪明的人分享这些想法 , 并请他们狠狠地喷我 。
基于他们的反馈进行修正 。
试着想一个方法对有帮助的信息进行查找排序 , 以去阅读软件工程的有关知识 , 或者在新项目上进行反思 , 将想法合并到 #1 中 。
规 则 言归正传 , 下面是我作为 1x 开发人员的经验法则 。
变 化规则 1:有规则总是好的
据我观察 , 人类在本质上是个模式寻求者 , 不断在寻找一种不理性的、前后矛盾的、专制的模式 。 也就是说 , 一般来说 , 大多数人会暗自倾向于以一种取悦领导者的方式设定他们的目标 , 周围其他人在做什么他就做什么 , 以及遵循一些现有的模式 。 在一个复杂的世界中 , 无论是保持理性还是保持一致性都是非常困难的 。 因此 , “做领导让你做的”或“做同事正在做的”可以信手拈来 , 又简单又快捷 。
这种策略在很多情况下都能起到不错的效果 , 并有助于营造一种“团队团结”的感觉 。 但是 , 当你们的目标涉及外部 , 要完成一个团队外部的目标时 , 那么有些事就比“团队团结”更重要了 , 理性和前后一致地做事是非常有价值的 。
我认为经验法则(或者如果想说得高大上一点 , 可以称它们为原则)可以帮我们提供一些“护栏”、一些“结构”、一些“脚手架” , 使大家走出遵从模式的默认心态 。 它们能帮助我们在一定程度加强逻辑上的一致性 。当优先级和价值观发生大量地碰撞时 , 它们有助于使交流抓住重点 。 当你试图弄清楚 , 如何面对无数的选择做出决定时 , 它们可以帮助你提出一个更清楚明确、更深思熟虑的简便方法 。
我就职于亚马逊 , 它以拥有一套普遍适用的原则而著称 , 在招聘、做艰难决择、权衡利弊时都会用到这些原则 。 我认为有了它们 , 会使公司更好 。 不是因为它们有什么能人异士 , 而是因为遵循原则总比倒退到唯领导是从要好 。