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


思考很难 , 做决定很难 。 有一些精心思考的规则可以帮助我们更好地指导决策 。
尽管如此 , 下面的经验法则其实与亚马逊的原则并不相似 。 它们是我通常一想到某个主题时 , 脑海中就会浮现出的一些经验体会 。
生产力和学习规则 2:我所学到的大部分知识离开它的即时语境就没有用了
我有时会听到有人说 , 智商测试唯一衡量的是“你有多擅长做智商测试” 。我赞成这种看法 , 也赞成大多数知识都有高度相关性这一普遍看法 。 大学以来 , 我做过七份不同的“实际工作” , 每一份都有不同职位 。 在亚马逊 , 我做过两种完全不同的产品和岗位 。
我发现 , 我从一份工作中学到的东西 , 有 90% 对下一份工作完全没有用处 。 即使这两份工作同属一个职业领域 。 但也不是全部都没用 , 剩下的 10% 可能是非常重要的 10% , 比如如何更好地处理电子邮件或如何应对办公室政治 。 但是 , 当我开始下一份工作的时候 , 我学到的大部分东西都是“用完就没用了” , 即在一个非常特殊的组织下如何以非常特殊的方式来做事 。
亚马逊可能截然不同 , 因为这里的开发人员花费大量的时间来掌握在其他地方根本不存在的内部工具和业务概念 。 我大概被这弄得有点想不通了 。 我知道其他开发人员具有不同的体验 , 他们掌握一种特定的技能 , 而这些技能实际上可以随着他们从一份工作迁移到另一份工作 。
在教育领域(我曾从事过几年这方面的工作) , 有一个真相是 , 大多数知识是不可迁移的 。 学习某个领域的知识通常对其他领域没有帮助 。
所以 , 我常常任性地认为:如果我今天所做的 90% 的事对未来的工作没有任何帮助 , 那么我应该不在那 90% 上投入过多的精力(像我以前那样) , 例如 , 去关注些通用的思想、系统、抽象概念和技术 , 或者出于某种重要原因 , 我愿意为这份工作牺牲那 90% 的时间 , 或许 , 仅仅是因为钱多 。
这条规则对我来说可能比较特殊 , 因为我换过很多工作 。 对于其他人来说 , 他们或许能够将大部分技能从一份工作迁移到另一份工作 。
规则 3:把“学习时间”花在能产生复利的事情上
复利是一个非常重要的概念 , 它存在于利率体系中、摩尔定律中 , 哪里都有它 。 它主要是关于良性循环的 。 因此 , 在有限的自由时间里 , 我想的这条经验法则是 , 把重点放在能够引发良性循环的事情上 。
我学会更快地打字是一个完美的开端 。 在过去两个月时间里 , 我在 keybr.com 上花了一些时间学习 , 它可以很系统地教你如何更快地打字 。 字打得越来越快让我可以在同样的时间内写更多的东西 , 进行更多的交流 , 完成更多的事情 , 因为这一点改变让我在电脑上做的几乎所有事情都变快了 。
建立持久的人际关系也是一项能产生复利的活动 , 因为它能让你接触到更多的人 , 他们能帮助你更快地完成工作 。
消费媒体(书籍、博客等)并不是一件能产生复利的事情 。 除非你有某种方法来映射、来消化 , 将知识融入你的思想 。 如果这篇文章中有些有价值的东西 , 除非你做些什么来“加工”它 , 否则你仅作为读者 , 可能并不会从中受益 。
编程语言 这部分内容可能会完美地暴露我的无知 。
规则 4:何时使用 Java 或 C
Java 是大型企业应用程序的理想选择 , 很难想象亚马逊在任何其他平台上运行 。 这是因为它拥有最强有力的类库和社区支持 , 而静态类型使处理大公司内部的海量数据模型变得更加容易 。
我认为 C# 是微软对 Java 的一种诠释 , 如果我需要 Java 的一些好处 , 但又身处微软的生态系统中 , 那么我会使用它 。
规则 5:何时使用 Python 或 Ruby
在我看来 , Python 和 Ruby 非常相似 , 它们都是脚本语言 , 都是动态类型的 , 它们似乎是 00 年代最伟大的东西 。 当速度比易读性或调试更重要时 , 就可以选择使用它们 。 其次 , Python 非常适用于 ML/AI 应用 。