作为软件工程师,给年轻时的自己的建议(上)

如果能够穿越到10年前,你会给年轻的自己什么建议?

如果穿越到刚从业时,我会给年轻时的自己一个建议——“为你想要实现的目标设定各种各样的目标。只要有正确的计划和愿景,任何目标都不会太大。”


在过去的25年里,我经历了成功和失败。这段旅程令人难忘,因为它让我明白了失败和成功的重要性。每一次成功都贴近我的内心,不断让我更好地理解团队合作和成就感,但每一次失败都为我提供了一种新的创新方式,让我找到非凡的解决方案。

另一个帮助我走到今天的品质是敢于冒险。我从不害怕障碍,寻找具有挑战性的任务,而不是接受我遇到的第一个项目。有意识地走出自己的舒适区,让我比同龄人更快地学会了高级技能。

当我回顾十多年前,有几件事,我希望我应该或不应该做。这些职业建议本可以帮助我避免错误的决定,并以更专注和更快的方式前进。这就是为什么我决定写下我给年轻时的自己的一些建议,以帮助那些刚刚开始软件工程工作的职业旅程的人。

如果我能回到过去,这些是我作为软件工程师会教给年轻的自己的18条建议(上篇仅展示1-9条,下篇展示10-18条):

一、乐于提问

作为一名专业人士提出问题可以让你清楚自己的角色、任务,并展示出理想的领导品质。即使你认为那是愚蠢的问题、严重的担忧或一个简单的想法,总是提高你的声量,把你的想法摆出来。需要明白的是,将你的的声音带到工作场所是至关重要的。

在上级眼中,提问意味着:

  • 乐于学习:提出问题有利于把办公室等级制度转变为教育体系,从中学到非凡的东西。
  • 渴望参与:提出问题并认真倾听回答,表明重视同龄人的见解,并希望在最终确定任何结果之前了解对事情的看法。
  • 持续求知:了解他人的思考、工作和行为方式,为创造性的想法和解决方案打开大门。

大多数时候,问相关的问题会激发创新,帮助及早发现风险和挑战。

IT行业的新手,如果不积极主动,很可能不会意识到客户或团队遇到的问题。站在自身角度,依赖通常模式处理挑战很容易,但是当与上司和团队成员一起应对挑战时,可以找到更多元的方法来解决这个问题。

二、保持好奇

好奇心是所有顶级开发人员的关键行为,能够理解“为什么”和“怎么做”的好奇心使开发人员是团队的巨大资产。历史上的大多数突破性发现和发明都是好奇心的结果。

在软件工程工作中,好奇心非常重要,因为它可以帮助领导者及其员工适应不确定的市场条件和外部压力。始终记住,了解业务需求也是必不可少的。

好奇心促使我们对决策进行更深入、更理性的思考,并提出更有创造性的解决方案。

三、在软件工程中应用极简方法

在软件工程中传授极简主义几乎是不可能的。但下面是我简单朴素的极简主义清单:

  • 最快的代码是根本不运行的代码。
  • 运行更少的SQL查询总是更好的。
  • 当功能、工具和框架更少时,复杂性的数量就会减少。
  • 过于复杂会浪费时间和金钱。
  • 不要浪费时间做无用的事。
  • 始终专注于避免复杂性和代码。
  • 建立高效团队,而非依赖于工具。
  • 清晰地表达项目需求,并定期与其他团队一起工作。
  • 工程师必须找到替代方案以避免技术债务。
  • 关注复杂细节,比如分析和维护旧代码或开发战略性的方法。
  • 软件工程师应该同时管理多个项目。

四、打造自己的品牌

根据一般经验,软件工程师并不会主动推销自己,也不会专注于建立自己的个人品牌。这是因为他们大多数人认为品牌是一项不必要的任务。但是,需要意识到,如果没有个人品牌,软件工程师要获得真正的认可会变得极其困难。

我相信,对年轻的自己来说,建立个人品牌是最重要的建议,因为它可以帮助任何阶段的从业者:从自由开发者到企业家,再到找工作的工程师。包括软件工程师在内的每个人都需要在竞争中脱颖而出,尤其是在就业机会稀缺的新常态下。

软件工程师建立个人品牌的方式:

  • 更新领英个人资料:你的LinkedIn个人资料应该包含你简历中的所有信息,甚至更多。信息的显示方式应该告诉招聘人员你值得考虑。
  • 持续发布:在个人社交平台上持续发布,保持活跃。当你定期发布内容时,你的关注者会期待你的内容,这将带来高参与度。
  • 展示对工作的热情:展现热情并不是非常优秀的候选人的最佳预测指标,但是招聘经理在他们的面试反馈中反复提到这一特点。

五、选择合适的组织

人们通常更关注职位而非关注公司。当申请工作时,需要确保选择好,选择最为合适的公司。

这很重要,因为你将为其提供服务,并与该公司建立联系——即愿景、使命和价值观。如果公司的价值观和你的价值观一致,你所做的工作会给你带来更多的满足感和幸福感。

公司应该投资于你的职业发展。它应该有专注于员工成长的实践,比如小型课程或讲座。

合适的组织也将拥有合适的高智商人才资源。经验丰富的工程师将帮助阅读清晰的代码并深入理解它们由资深同事组成的文化,可以帮助新人分析创新方法和技术决策背后的原因。身边有经验丰富的同事可以大大提高自己的学习效率。

所以,有必要尽量深入地对公司做好了解。不要被公司的网站或基础设施分散注意力,而是要研究他们的产品、服务和客户。对公司、公司使命、愿景和文化了解得越多,也就越了解它将如何影响你的职业发展。

六、成为领域专家

领域专业知识对项目的成功至关重要。获得领域知识的重要性很少被讨论,尤其是与我们对提高技术技能的重视程度相比。成为专业人士对职业发展有意义,并指导你在职业生涯中做出正确的决定。

在组织中,有时只有专家才能挽救某一局面。这就是大多数公司更愿意招聘领域专家而非多面手的原因。

在当前情况下,具有技术背景的领域专家比纯粹的技术专家更受欢迎。领域专家拥有领域知识、相关挑战、领域分类、生态系统和趋势分析等优势。他们对不同的问题或场景有更好的理解。领域专家可以帮助交付灵活、敏捷的应用程序或软件,以帮助公司提高产品的适销性。

七、勇于改变

如果你一直做重复性的工作、解决相同的问题,那工作将变得不那么重要且不具有挑战性。

在同一份工作上呆了很长时间可能会让你的简历看起来停滞不前。每24-30个月更换一次角色,以促进职业发展跳槽到新公司或新职位有助于保持自己技能的更新。换工作的另一个重要原因是,你通常只在前几年就能学到最重要的东西,换工作可以发展更广泛的内容。

当然,这不一定意味着一定要换工作,可以是内部轮岗、调岗,这样可以保持简历的更新,让其对雇主更有吸引力,因为这意味着愿意接受新的挑战和机遇。

八、如果当前组织不适合你,那就采取下一步行动

没有人在接受工作的时候会期望它会变成令人失望的事情。一旦得出结论——你的工作已经成为紧张的来源,事情就变得真正严峻起来。

当发现上级不回应你的反馈或者经常因工作而精疲力竭时,就不要因为不称职的雇主而痛苦,也不要害怕在事情不利的时候迅速离开。不要容忍那些不准备对你的成长做任何投入的人。

九、学会在不舒服的情况下保持舒适

“走出你的舒适区。只有当你愿意在尝试新事物时感到尴尬和不舒服,你才能成长。”——Brian Tracy

谨慎行事往往会分散你对成功的注意力,学会在不舒服的情况下保持舒适将有助于个人实现其最高潜能水平。如果不敢跨出第一步,就永远无法成长和达到新的高度。学习新的技能和课程将帮助你度过一生。

走出舒适区的最佳方式之一是明智地冒险。它鼓励你发展高级技能,从长远来看会有所帮助。它还将为你的工作提供更大的主人翁意识和信心。

在接下来的18个月里个人会学习了解以下领域:量子计算与Q#、分布式计算、RUST、Tensor Flow、Snowflake、Unity(用于3D建模、AR、VR、MR)、5G。

你可能会想:为什么这些职业建议这么重要?让直属上司满意还不够吗?答案通常是否定的。在成功的旅途中会有一些无法解释的挑战,但当从一开始就朝着正确的方向前进时,就会更容易处理这些挑战,并且比其他挑战行动得更快。

从长远来看,这些职业建议是值得的。

你可能感兴趣的:(程序员发展职业发展成长路径)