成功软件职业的五大支柱
我们都知道,成为一名称职的软件开发人员并实现职业发展不仅仅意味着编写代码。我们经常谈论“成为一名优秀的沟通者”。这一点也很重要,但我认为这只是在工作中保持积极性并拥有令人满意的职业生涯(可能还会伴随薪资增长)所需的多项技能或子学科中的两项。
以下是我认为的五个关键概念,它们能帮助你拥有高效且充实的职业生涯。如果你能想到其他同样重要的概念,但这里没有提到,或者觉得我应该换一种安排,欢迎留言。这是一个很好的讨论点!
有效的编码技巧
这是软件开发的第一个基本要素——编码。这看起来似乎显而易见,但为了精通这门技术的其他部分,有些人确实忽视了这些基本要素。
编程技能可以通过日常练习、阅读博客文章以及经常浏览类似这样的编程网站来磨练。沉浸式学习对于掌握优秀编程的细微元素至关重要,这也是本文的主题。
采用有效编码技能的一个重要因素,特别是对于新手而言,是在给自己适当的机会掌握软件开发的一些基本概念之前,避免被卷入新的和令人兴奋的领域。
遗憾的是,缩小基本概念的范围并非易事,所以每个人的旅程都是一段个人探索之旅。不过,通常来说,避免“害怕错过”(FOMO)和“闪亮物体综合症”是培养正确技能的最佳途径。
团队沟通技巧
这是软件开发中经常被提及的第二个重要概念。你必须能够接受指导,在适当的时候提供指导,并且总体上要擅长沟通。任何认为软件开发人员天生不善于沟通的说法显然是错误的。我们的行业或许确实吸引了许多内向的人(事实上,我们也吸引了很多外向的人,以及介于两者之间的各种性格的人),但沟通技巧远不止于性格特征。
根据我的经验,最优秀的沟通者是那些将沟通视为工作重要方面的人,而最差的沟通者则不是。这并非关乎沟通能力的绝对高低,而是关乎对沟通理念的投入程度。如果你认为沟通不重要,或者沟通不在你的技能范围内,你很可能会成为一个糟糕的沟通者。我相信这才是真正的因果关系,而不是相反。
优秀的沟通者是那些相信自己有能力成为优秀沟通者的人。
这是一篇关于软件通信的引人深思的文章……
生态系统意识
如果您在 DEV 附近闲逛,您会看到很多关于最新 GitHub 功能、VS Code 扩展、VIM 建议、AWS 服务等的帖子。
软件开发始终意味着保持足够的专注力,以便理解即将发布的内容以及哪些内容可能会改变你对代码的思考方式——但又不会因为过度专注而分心。这是一种微妙的平衡。
这篇文章是值得关注的文章类型的一个很好的例子……
密切关注开源和商业软件方面有趣的生态系统动向,但不要沉迷于上述闪亮物体综合症。
个人生产力
即使是世界上最博学的程序员,也可能陷入效率陷阱。有时,个人效率取决于生活安排和干扰,有时则取决于身心健康。有时,效率软件工具和快捷方式也起着决定性的作用。
你的个人效率提升习惯总是需要更新的。学习新事物往往能让你学到新的效率提升技巧——尤其是当你采纳了大量源于“生态系统意识”支柱的新事物时。
阅读有关生产力的文章并不总是会让你恍然大悟,通常它可以很好地提醒你在某种程度上已经做过的事情。
文章已不再可用
不要养成一直困在当前效率低下的习惯。经常反思和刷新。休息一下,寻找科技之外的社交方式。
职业生涯管理
如果说前四大支柱是奠定软件职业生涯成功基石的关键,那么现在就该把它们推翻了。职业管理的关键在于与你的经理保持良好的沟通,并在必要时了解自己的价值并找到新的经理。
在其他条件相同的情况下,我相信在更少的公司里拥有长久而充实的职业生涯,但如果这条路有害——而且通常有害——就不要走这条路。重要的是,要知道自己有能力离开去寻找合适的机会。
关于离职和求职的建议有很多,所以我更倾向于专注于在职期间有效的职业管理。我认为这关乎积极主动地设定界限,不遗漏重要的事情,以及持续设定期望。
以下几篇帖子体现了人们对职业生涯的深思熟虑……