软件工程职业生涯之前的生活通常是一系列有时间限制的努力,以获得一个新领域的能力。这学期你要学几何。你学历史的那个学期。下学期你要学微积分。诸若此类。
因此,大多数进入软件工程队伍的人将学习等同于学习一个全新的主题。我不认识鲁比,我学的是鲁比。我以前不懂SQL,现在我懂了。
这种思维将人们引向两年周期。在大多数现代软件团队中,大约需要一年的时间才能真正感觉到自己已经站稳脚跟。到那时,人们习惯的那种学习新鲜感已经不存在了。到了16个月,他们就焦躁不安。到了24个月,它们就消失了。
这是个问题。这是一个问题,因为大多数持久的和可转移的知识都是在获得基本能力之后才出现的。掌握技能,理解和学习多年前决策的结果,架构和设计,领导项目-所有这些都是在具备基本能力之后才会出现的。
循环学习的生活不仅会阻碍你达到这些下一个层次,而且你的自我意识和意志力也会对你不利。这些下一级技能更难学习。一旦你获得了能力,当出现问题时,你就失去了“我入职了”或“还在加速”的借口。
我总是向那些想要对他们正在做的工作做出重大改变的工程师提出挑战,以考虑他们是否只是处于新奇周期的末尾。我总是鼓励他们追求更高层次的技能。
在招聘方面,我看到很多人拥有两年的职业价值。你可以在整个职业生涯中成功地做到这一点,甚至有些人会告诉你,随着时间的推移,这是一种优化收入的方法。如果是这样的话,我相信它只会优化那些无法达到下一级技能的人的收入。最大的收益来自与获胜的公司一起建设和发展。
24个月的人永远不会深入了解事物是如何运作的。他们通常会通过收集他们以前见过的东西,并将它们肤浅地应用于类似的问题,从而为一家新公司增加价值。但是,当面对一个不容易映射到他们所看到的解决方案的新问题时,事情就会开始崩溃。
24个月的人最终可以进入C级职位,在那里,可以把共同的解决方案应用到手头的类似任务中的人并不少见。他们的任期通常在他们以某种方式提升公司的时候结束,他们不知道如何壮大他们的团队,如何发展他们的战略,或者如何处理他们一些决策的不足之处,他们的工作通常结束于以某种方式提升公司,而不知道如何壮大他们的团队,或者发展他们的战略,或者处理他们的一些决策的缺陷。
学习下一级技能,以及如何深刻理解和应对手头任务的人会带领公司取得独特的成功结果。最好的CEO,最好的CTO,最好的C-level任何东西-他们的职业生涯通常是少数几个长期任职的职位,他们不会死记硬背,而是在深刻理解的基础上创新和反应变化,创造新的解决方案。
我不是说你应该留在任何给定的工作岗位上。有坏角色,坏老板,以及介于两者之间的一切。技能多样化很重要。但是每一份工作都有问题。如果你离开是因为你在追逐新奇或者逃避应对公司的挑战,那么你就会在这个循环中重新开始。出于这些原因留下足够的位置,你会发现随着时间的推移,你已经严重限制了你的机会和收入。