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

2022-04-27 10:29:23
李晓琳
  • 访问次数: 965
  • 注册日期: 2020-04-29
  • 最后登录: 2023-09-27
  • 我的积分: 2144
  • 门派等级: 玄清 等级3 真人
如果能够穿越到10年前,你会给年轻的自己什么建议?

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

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

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

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

如果我能回到过去,这些是我作为软件工程师会教给年轻的自己的18条建议(本篇仅10-18项,上篇详见:https://www.zentao.net/thread/291959.html):

十、持续学习:提高技能/重新技能的计划

数字世界正高速向前发展,软件工程师不仅要了解自己的技术领域,还要深入了解其他领域知识。为此,持续学习、提高技能/再培训计划是最好的方法。当一个人获得各种技术学科的认证时,他可以更好地理解问题和客户的要求。

持续学习和认证可以帮助工程师展示他们的能力、对专业的承诺,并在专业领域建立专业知识。此外,认证培训和延续主题通常会定期改进,以确保在该领域执业的任何人都能跟上最新的趋势和发展。

十一、软件工程简单,然而人复杂

对于软件工程师来说,为了获得成功,了解和理解他们工作的社会方面至关重要。很多时候,人类的工程师没有意识到理解社会方面的价值,而此后这会以某种方式限制职业生涯。

其中一个最大的原因是,很多时候,我们必须与其他人或团队合作,此时的技术技能就不那么重要,而沟通和协作更重要。这就是为什么不仅要关注技术技能,还要与周围的人互动并理解他们,这一点至关重要。

建立你的社交网络“社会结构”是指围绕你并支持你的群体或社区。它可以是你的家人、朋友、同事或邻居。这是一个在你需要的时候为你服务的社区。每一链条中的综合价值观互动方式,决定着这是否是将人与人联系在一起的社会纽带。

社会结构的质量决定了一个人如何有效地构建其组织,以实现包容性、可持续的繁荣。创造一个更强大、更有凝聚力的社会结构的关键不在于创造僵化、不灵活的价值观,而是通过有意识地更新和补充支撑社会结构的有凝聚力的价值观。

十二、寻找一位导师

正确的指导关系可以成为职业发展的有力工具——它可以带来新工作、晋升,甚至更好地平衡工作与生活。

找到导师的最佳方式是了解自己的目标(包括短期和长期)。目标越明确,就越容易找到合适的导师。创建有效且易于实现的目标的原则可以参考SMART:具体、可测量、可实现、相关且有时限。

第二个最好的方法是了解你现有的人际网络。别人对你的工作和能力越了解,就越能有效地指导你。当然,要确保想找的人也有你所需的专业知识。

十三、攻读硕士学位

计算机和信息技术工作岗位预计将增长12%,新增54.62万个工作岗位。硕士学位是职业发展的关键一步,尤其是如果你的专业经验有限,想转行,或者即使已经身处这个行业,但想进入下一个层次。

学位的进修可以让人获得系统思维、商业道德和组织战略方面的经验,将你的战略思维技能提升到一个新的水平。此外,这份终身学历证书也展示自己的专业知识和对该领域的奉献精神,同时还可以扩大专业人脉。

十四、要JOMO而不是FOMO

“害怕错过”(FOMO,fear of missing out)是指可能错过了一段美好的时光,它是一种焦虑或后悔的感觉,伴随着听到一个事件,需要去执行以防错过什么。但好消息是,可以用一种更健康、更快乐的方式来取代对错过的恐惧:错过的喜悦(JOMO,joy of missing out)。

错过的喜悦教会我们正确地点和正确时间的价值。这并不意味着对每一个社会事件或机会说不,而是意味着知道什么时候说是或不是,也即选择的权利。

十五、软件工程伦理

软件开发人员是保护我们关键基础设施不可或缺的一部分。他们的工作是编写对人们生活产生巨大影响的算法。学术和专业协会在为软件工程师制定道德规范方面处于独特的地位,但它们没有那么大的影响力。软件工程师的道德准则不应该看起来像一种代码或注意事项列表。

它应该更像“所有软件开发人员应该自学编程偏见及其潜在危害,检查他们的计划和后续代码等偏差,能够解释他们如何处理这些问题,愿意接受他们的代码审查,要求负责的代码中发现的缺陷可能导致偏见,并解决监督委员会提出的问题。”

十六、选择你的职业:技术管理、产品管理还是人力管理

在解决企业规模扩张的挑战时,有很多不同的思维方式。幸运的是,软件工程师能够接触到各种各样的工作环境,从而能够在正确的轨道上塑造自己的想法,并继续前进。

十七、解决关于动机的迷思

为了解答工作动机的问题,软件工程师需要能够清楚地描绘出他的日常工作如何融入到更大的图景中,以及他是否想知道他们所做的工作是相关的。

第一步是列出你想要实现目标的原因。这就是为什么你需要为自己的目标扎根。此外,要为暂时的挫折或纯粹的疲惫做好准备,但不要把它放在心上,并以充分的决心向前迈进。

十八、花时间于软件工程模式

可观察性:它是一种工具或技术实践,使工程和运维团队能够勤奋地调试他们的系统。它探索了可能没有预先定义或确定的新模式和属性。由于代码在生产环境中可能会有不同的行为,所以在生产环境中发生影响用户的情况下,主动观察发生了什么是很重要的。为了执行真正的系统可观察性,需要对代码进行测试,以生成有助于提出任何新问题的遥测技术。

作为代码进行监控:这是一种使运维团队能够观察和理解其系统不同状态的实践,通常通过预定义的指标、实时更新的仪表板报告来完成。为这些仪表盘提供数据的基础是组装一组预定义的指标或日志,这些指标或日志很重要。

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

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

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