“找到新的Java开发人员有多难?”

我们的工程总监向我问了这个问题,对我在为项目寻找新的软件开发人员方面缺乏进展感到沮丧。

到那时,我已经采访了几位候选人,并得出结论,他们将无法成功。

我们的团队在轻推几周后发现了一个良好的健康状况,所以我从来不必解释为什么我不推荐以前的候选人的真正原因。

是我们,而不是他们。

我帮助候选人理解的我的保留地是,尽管他们可以满足该项目的直接要求- 我们很幸运能够将它们送到船上- 从长远来看,与我们的技术堆栈合作并不是他们的最佳选择。

随着足够的时间,整个项目不再活跃,我可以使用结构化框架来解释我的评估。

在这个故事中,我解释了该框架,并分享了几个个人轶事,说明了为什么无论您是开始还是在职业生涯中都在进行中。

框架:职业重点等级

让我们从改编马斯洛的需求等级制度开始,我将其称为“职业重点等级”。

就像马斯洛(Maslow)在达到自我实现状态之前的优先事项层次理论一样- 在这种状态下,人们一直渴望成为他们最能成为的人- 我的职业成功框架以相同的方式起作用,并且具有类似的层面,如下所示:

  1. 就业能力。该基础层与马斯洛的“生理需求”层相匹配。它代表了进入劳动力的基本要求,包括就业市场所需的相关教育,培训,学位和技能。
  2. 补偿和稳定性。该层代表工作稳定,足够的薪酬与所需的时间和技能相匹配以及支持性工作环境。
  3. 增长与发展。该层涉及持续学习,技能增强和专业发展。在此层中,一项工作允许并要求专业人员发展自己的技能以扮演角色并保留未来的就业能力。该层还包括项目业务案例的生存能力和增长趋势
  4. 工作与生活的平衡和福祉。这一层是关于平衡工作和个人生活,支持员工的整体福祉。该层的重点是保持健康的工作与生活平衡,管理压力以及精神和身体健康的优先级。
  5. 目的和含义。 “职业重点等级”的巅峰之作,个人在所选职业中寻求目的和意义。该层涉及将个人价值观与职业生涯保持一致,产生积极的影响,并在物质和外部奖励之外找到实现。

理想情况下,就业选择应该有利于对这些层的良好对齐。不可能始终完美地对齐它们,但是对最终失衡的认识可以使人们早日纠正它们。

以下是这样的失衡的一些常见例子:

  • 一个慷慨的补偿包,激励人们在长时间的工作周和压力大的空中旅行日常工作中牺牲自己的福祉。
  • 过度延续了停滞的“增长与发展”层。
  • 在老化的技术堆栈中变得过于熟练,在更广泛的就业市场上的就业能力中的交易增长。

我将在以下各节中引用此框架,列出我在整个职业生涯中了解到的成功和失败的一些最重要的课程。

课程1:技术堆栈定义就业能力

对于项目经理和人力资源领导者而言,本课程比软件开发人员更像是一个盲点。

“学习或赚钱”的建议在您从职业生涯开始时起作用,但是随着您的进步,它会变体“学习或不赚钱”

在过去的40年中,软件行业从使用一些本地技术堆栈的工作居住的共同依赖关系转变为一个不可能的短期任期之一,导致雇主重新考虑“跳工作”为负面特征

结果,成功的员工曾经终身任期必须预料到技术趋势,并努力应对站立时过时的现实。

请注意,我没有对任何技术做出个人判断。我只是在反思一般的招聘实践,在这种做法中,雇主越来越多地使用自动化将候选人简历与机会相匹配。

人力资源人员可能会指出定期进行正式培训,以在使用老化技术时保持趋势。但是,软件开发人员和雇主之间存在一种认识,即在健忘和无关紧要之间迅速消散的技能。

例如,当雇主需要具有五年反应经验的人时,他们的审查过程肯定会丢弃简历,即使在几年前开设了关于React课程的符号点,在Javaserver面孔中展示了长期的经验。相反,任何使用Javaserver面孔作为其主要UI框架的公司可能很难吸引新的人才。

由于这些原因,并且承认这对于雇主来说可能很难实现:从持续的就业能力角度来看,产品技术堆栈是员工的最关键因素

是的,一个糟糕的老板可以戒烟,但是即使是最好的老板也将难以招募人员与在工作市场需求减少的技术堆栈合作。

尽管我了解出于就业原因而不愿意对技术堆栈进行改进或重写部分的产品经理和组织,但他们应该与人力资源领导者进行定期对话,试图了解其项目对员工的未来就业能力的影响。

第2课:三年作为过时的时期

技术堆栈可能会长期保持相关。只不过是COBOL或大型机等硬件技术等编程语言的持久持久力量。

但是,并非所有技术堆栈都保持相关。

对于其他没有为现代世界核心提供动力的一切,三年是一个神奇的时期,新技术突然可能会不受技术界的青睐。

如果您要决定下一步的职业生涯或下一个学习的热门技术,请跳过追逐当今受欢迎的内容的诱惑,并查看未来三年内对流行的趋势。

请注意,“三年”主要是经验观察。

为了说明这一观察,让我们从过去十年来采用编程语言的发展开始,通过GitHub对其用户活动的分析间接地衡量:

为什么使用编程语言作为技术堆栈的代理?因为采用编程语言与技术格局的变化相关,例如Ruby的命运与流行的Rails框架相关,COBOL采用仅依赖于大型机生态系统,而C#是.NET平台选择的编程语言。

在2015年至2018年之间的三年中,Ruby编程语言在排名中急剧下降,从5号到第10名,在打字稿越来越受欢迎后,作为编程语言受欢迎的统治者冠军的超级人数:JavaScript:JavaScript。

顺便说一句,在2017年至2020年之间,在3年之间,打字稿从第10号到4号。

看看PHP发生了什么,PHP是一项就业能力,直到2019年的Web开发框架的扩散,当时它开始迅速从排名第4的排名第4号到2022年到2022年。

如果您今天开始职业生涯,那么掌握在您感兴趣的领域内不主流的任何编程语言都是对未来就业前景的责任。

我的意思是,“主流”是指诸如前端开发的JavaScript,用于机器学习的Python以及进行系统开发的选择。您可能不同意我的具体示例- 例如,选择生锈而不是Go-但原则仍然存在。

如果您优先考虑就业能力,请找到主流的移动中心并瞄准它。

以下部分将涵盖该目标过高的风险。

第3课:注意那个出血的边缘

任何定期骑公共汽车的人都学会了进行批判性判断。

当您迟到到停下来时,就会发生这种电话,并且可以从公交车已经为乘客装载的距离上看到。在那一刻,您必须决定是朝停下来冲刺还是等待下一辆公共汽车。

您还了解到,追逐已经移动的公共汽车很少值得。

在研究未来的趋势时,必须关注炒作的就业能力。我并不是说人们应该忽略新趋势- 跳上它们本身可能是有益的- 但我不会建议人们在没有对冲的“增长和发展”层以其他方式推进的情况下进入这些趋势,例如高可见性或领导职位。

请注意,当用户试图在移动刀片上建立世界时,有很多课程纠正和损害控制来管理这一优势。换句话说,工作与生活的平衡往往会受到影响。

我的警告性故事来自2013年至2015年间的剪裁年份的第一手经验(另一个三年范围),在这里, Cloud Foundry和Docker最初定义并占据了集装箱编排世界的统治。

我的雇主与Cloud Foundry的创建者合作,并于2014年初推出了公开募股。 Bluemix被称为Bluemix,该产品很快成为了世界上最大的Cloud Foundry部署,拥有超过100万用户。从许多方面来看,这是一个明确的成功。

我从一开始就加入了该项目,作为其生产工程领导者,直接来自三个软件开发团队的技术领导者。这是一个宽大的跳跃,所以也是一场大赌博。

我的跳跃弧中有一个行星规模的障碍。

那年晚些时候,我们公司还基于一个带有有趣的希腊名称的开源项目对新产品进行了平行的投资。 Google于2014年初以云工作负载的编排发布了Kubernetes。它具有为Google自己的工作负载的思维范围而言的基础。

凭借10亿美元的投资以及库伯纳特(Kubernetes)背后的全明星阵容和开发商的倡导者,比赛已经结束。

在相对较短的三年中,Cloud Foundry和Docker Enterprise在新部署中都失去了所有动力。现有客户花了多年的时间来努力重新定位工作负载,重新处理其CI/CD管道并将员工重新定位到新的Kubernetes群集中的昂贵现实。

对我而言,这绝对不是错误的职业举动。我遇到了来自不同背景的人,并且对按时的行程计划的艰巨要求意味着增加了大幅度的补偿。这些年来,即使在所有这些年之后,我都坚信,每个软件开发人员都应该在操作中旋转几年。

尽管如此,到过渡结束时,我的云铸造技巧在就业市场上毫无价值。

第4课:当心高度专业的域项目

本课程来自我在Cloud Foundry工作后立即加入的项目。这也是该故事前面提到的项目,我们在这里努力填补软件开发位置。

该产品是肿瘤学领域的医疗保健提供者的托管产品。从技术的角度来看,强烈关注生物信息学和自然语言处理。

对我来说,最重要的吸引力是有机会与实验室科学家和实际医生合作。应用NLP帮助肿瘤学家找到癌症患者的替代,挽救生命的护理,以我职业生涯中没有其他项目的方式实现了“意义和目的”层。

但是,该技术堆栈进入了三年,它将很快落后于时代,尤其是对于SaaS产品而言。

  • 托管?一切都在VM上运行。看不见的容器。
  • 程式设计语言?爪哇。
  • 持久层? DB2。
  • ui? Angularjs。
  • 任务管理和源代码控制?爵士
  • CI?蚂蚁和詹金斯。
  • 光碟?大部分手动,带有多小时计划的维护窗口。

除了在CI层中使用老化的蚂蚁框架上使用老化的蚂蚁框架的不可原谅,其他一切将在项目委托之前几年都是一个可靠的选择。

简而言之,这些选择是完全敏感,执行良好且具有成本效益的。从业务角度来看,坚持使用堆栈组件的决定是合理的,但是作为经验丰富的软件开发人员,此堆栈是技能过时的高速公路。

一个小但重要的例子是爵士源代码控制的使用。我加入该项目的那一年也是我们公司与Github建立战略合作伙伴关系的那一年,铺平了用GitHub存储库来代替内部项目的爵士乐的道路。我们的项目从未从爵士乐中迁移到爵士乐中,因为伪造所有代码并将流程构建到新的源代码控制系统没有业务意义,更不用说重新训练所有开发人员使用Git。

尽管如此,从软件开发人员的角度来看,爵士技能的“就业能力”价值在随后几年中无关紧要,几乎与GIT,GITHUB和GITLAB技能的价值相反。

转到一个更相关的例子,查询存储在数据库中的遗传样本中的所有改变并不需要软件开发人员了解癌症生物学。它需要与团队中实际的癌症生物学家进行良好的沟通,并解释了代表数据的直接表结构,并确定表上哪些属性代表了这些独特的变化。

同时,数据库世界正在见证MongoDB的就业市场需求的扩展,即NOSQL数据库的海报孩子- CassandraNeo4J ,Apache SparkHadoop

尽管Java曾经是并且仍然是- 在就业市场上是一项理想的技能,但与该项目一起工作的人们慢慢地将Python接管为与机器学习和自然语言处理有关的任何事物的主要编程语言。如果这还不够,Facebook和Google迅速连续发布了PytorchTensorflow ,这增加了Java从事机器学习问题的人的技能过时的步伐。

几年后,我们的技术堆栈从没有人会考虑在同一领域中的新项目来考虑的事情。

最终,就是为什么我们努力寻找新的软件开发人员的原因,同时,科学团队设法招募了越来越令人印象深刻的人才。

即使没有这个故事的职业框架,当时我的脑海中也很清楚,我也将与候选人开放有关在专业领域工作的独特机会与对其长期增长和发展的负面影响之间的权衡。

一些候选人对项目的生物信息学和NLP组成部分具有特定的兴趣。由于我们没有雇用这些领域,因此我同样对这些组件的最终工作同样开放,严格依赖于他们的工作角色的变化,因此无法保证。

我仍然珍惜这种体验,但是对于在高度专业的领域中使用未分化技术的软件开发人员来说,这是一个痛苦的现实:域专家至关重要;软件开发人员不是。

当显然需求不会转化为有意义的财务结果时,该现实将在项目进入该项目的三年中。

该团队非常缩小规模,以扩展预算跑道,同时希望有周转的情况。任何不直接使用生物信息学或机器学习的人(其大多数职业软件开发人员)都被要求与公司(包括我本人)一起寻找其他机会。

第5课:总有时间直到没有

回到乘公共汽车的类比,比错过一辆公共汽车要糟的是:登上错误的公共汽车。

在这个故事中,我的警告性故事是,即使我的目标很明确,即在云铸造厂的失败开头和一个有吸引力的侧移到生命科学领域之间,六个,六个几年过去了,如今的眨眼。

对于一个职业生涯中的人来说,六年是危险的绕行。

我花了一份新的工作,还有三年的时间乘坐Kubernetes巴士并坐下,在平台上变得熟练,并被公认是可以为其他开发人员系统管理员提供建议的人。

九年过去了。

对于今天从大学开始新鲜的人来说,六年来错误的方向旅行是一个职业定义的间隔。

许多人会指出,“错误的方向”是相对的,并且在以后在生活中启动软件开发角色之前具有不同的背景是可能的,甚至是可取的

我不同意。实际上,我最喜欢的软件开发人员之一拥有文学学位,并在演出中花了十多年的时间在演出中播放各种乐器,然后才能成功开发软件开发职业。

但是,一旦人们走上了技术职业道路,沉迷于职业绕道而行,缺少后果的技术转变通常会使他们的进步持续一段时间。

是的,我们总是有时间,但是职业步骤以多年的方式衡量,并且每年的恢复利润率下降。

结论

我对软件开发人员专业人士的最佳职业建议,即任何专业人员,都是不断监视其职业发展,以与他们的“职业优先级等级”的层次。

没有错误的职业道路,但肯定有粗心的步骤。像在金字塔中每一层旁边的“向上”或“向下”箭头一样简单的事情可以很长的路要走,可以帮助一个人做出当前角色或转向新角色的最佳决定。

有了意识,人们可能会对一个或多个层次进行优化,例如选择更高的薪酬而不是更有趣的工作,或牺牲他们的工作与生活平衡,以使其更快的进步朝着他们的生活目标。

也可能会完全跳过层次结构层,例如决定为一个梦想的非营利组织工作,几乎没有薪酬或赌注在创业演出上,并与公司成功的不确定保证有关。

但是,这些失衡往往会赶上金字塔中的自然优先级。这种失衡以不同的方式表现出来,例如由于对工作缺乏意义而引起的抑郁,长时间的工作周期倦怠或由于使用过时的技术堆栈而导致的就业能力。

当意外的账单不断地从梦中唤醒或在不规则薪水之间的个人理财压力时,梦想的工作可能并不令人满意。

无论选择的道路如何,拥有一个框架来评估您的职业是做判断电话的最佳工具,无论是在危险选择上赌注还是在工作成为您职业前景的潜在责任时进行救助。

该框架对于对潜在候选人的吸引力进行吸引力的公司也非常宝贵,尤其是当技术可以转移的速度比项目更快地响应这些变化时。

最后,继续瞄准目标和意义。

成功的。

点赞的用户