27条软件工程师必备职业建议
作者:John Sonmez
你是否希望在软件工程师或开发者的职业生涯中取得最大成功?那么你需要掌握一系列关键职业技能:
初级职业建议
当你刚开始成为软件工程师时,重点应该放在正确的职业心态上——并尽快获得尽可能多的经验。以下是一些实用建议,帮助你在编程入门阶段保持清醒头脑,找到实习和第一份真正的工作。
1. 不喜欢编码?找一份无代码工作
也许你现在不想要一份编写代码的工作——更不用说将这样的职业视为终身事业。考虑不需要编程的技术职位并不丢人!为什么不成为技术招聘人员、数据分析师、质量测试员或销售专业人士?这些职业道路不仅与软件工程一样有趣(对某些人来说甚至更有趣)——而且还能让你获得不错的薪水。
2. 专精领域以获得更高收入
专业编程技能需求旺盛。如果你是为数不多能提供这些技能的人,你将获得丰厚报酬。选择最佳专业领域从行业研究开始:公司希望完成哪些任务,但需要特殊技能,因此值得高薪?努力成为这些领域的专家。将自己定位为专家。很快你就会获得一些很棒的职位——报酬远高于你作为“普通”软件开发人员的预期。
3. 赢得实习机会
如果你想获得作为专业开发人员或软件工程师的第一份经验,科技公司的实习是最佳选择。这些实习通常可以直接在同一家公司获得初级职位。至少它们在你的简历上看起来很棒,增加了未来的机会。获得程序员实习的一个独特策略是联系你最喜欢的、没有积极寻找实习生的公司。然后向他们推销实习生(提示:就是你)可以给他们的业务带来的所有好处。这让你展示积极主动的积极品质——但避免与数百人竞争相同的职位。
4. 使用LinkedIn找工作
说到竞争:同样适用于LinkedIn上发布的编程工作——公司被申请淹没。不过,你仍然可以在平台上找到工作——再次通过反其道而行之。当其他人只关注广告内容并以通用方式联系时,你与感兴趣的人建立联系,并与在你选择的领域工作的人建立真正的联系。在求职中比大多数人愿意玩更长的游戏意味着你将能够获得他们不会获得的回报。
5. 申请你不合格的编程工作
你是否曾因为列出的要求(例如多年经验)而不敢申请软件工程工作?你不必这样。我鼓励你申请一些软件工程工作,即使你在客观上资格不足。让我解释一下。编程职位空缺的一个秘密是,如果潜在雇主喜欢你带来的技能和个性的组合,你仍然有机会。即使你缺乏一些经验:他们要么无论如何都会雇佣你担任确切的职位,要么可以将其变成更初级的职位。无论哪种方式,你都赢了——只因为你尝试了。
6. 在接受任何编程工作offer之前知道该问未来雇主什么
你得到offer了?恭喜——你的努力终于得到了回报!但是,在你直接接受软件工程师新职位的offer之前,你应该问雇主一些关键问题。询问他们如何修复错误,以便判断为他们工作是否会一团糟。询问他们的代码质量指南。询问他们的QA流程。询问他们如何部署软件。仔细审查他们的答案,并注意任何危险信号。在你说“是”之前,一定要确保你的新工作不会让你走上无尽挫折的道路。
7. 避免第一年软件工程师的错误
当你刚开始第一份软件工程工作时,很多事情都可能出错。最大的绊脚石是你自己的自尊心。作为新开发人员,你最好的选择是保持谦虚。同时期望在技术技能之外还要提升软技能——许多新手忽略了这些技能的重要性。虽然这种谦逊是关键,但这并不意味着你应该忽视自己的需求。即使你年轻且作为第一年程序员能忍受:努力开始从事对你最有意义的工作。现在就开始照顾你的健康,这样你就不会在以后遭受倦怠——即使现在你感觉无敌。
推进你的职业生涯
一旦你获得了软件工程工作,目标就是充分利用你的情况:智能谈判。为自己定位以应对未来的晋升。获得你应得的报酬。
8. 赢得薪资谈判
谈判得好可以在一次对话中为你赢得数万美元。一些有效的软件工程师薪资谈判策略包括:了解常见的行业数字、从强势位置谈判(有推荐、良好声誉和/或其他offer)、避免说出你的数字、以及提出强有力的还价。在面试前练习模拟薪资谈判就像练习模拟编码会话一样是个好主意。
9. 停止被低估
这是一个令人震惊的事实:许多高级开发人员职位的甚至不是优秀的编码员。这意味着如果你是,你不必羞于瞄准六位数的工作。作为熟练的程序员,不要满足于低薪职位——相反,目标要高。因为即使只凭你已有的技术技能,你通常也能 outperform 许多高薪开发人员。
10. 获得加薪或晋升
如果你想在编程工作中获得加薪或晋升,你需要积极主动地追求这个目标。不断提高你的技能。承担更多责任。在公司内外变得更有价值。在沟通你的抱负时,要开放、直接和具体。遵循这些步骤,你应该能够随着时间的推移增加你的收入和影响力。尽管付出了所有努力,仍然面临阻力?那么也许是时候向其他地方更好的机会敞开心扉了。
导航你的工作
作为软件工程师,你需要战略性地思考——不仅在你的开发工作中,还包括你的工作环境和市场。
11. 学习如何与廉价程序员竞争
来自西方国家的人应该怎么做才能比来自低GDP国家的程序员更好并与之区分开来,这些程序员以比你更低的价格提供服务?最擅长的领域是你与客户的沟通。如果你花时间深入了解他们的需求,并建立良好的关系,你可能能够比那些依赖竞争性技术技能和低价格来获得工作的人更有优势。简而言之:更关心,更好地沟通,你仍然可以赢。如果你自己来自低GDP国家,应用相同的策略来获得更多需求。
12. 知道你的老板不了解软件开发的什么
在你的软件工程师工作中,重要的是要认识到你的老板可能不像你那样理解你的开发工作。常见的例子是你的上级不理解技术债务的严重性,过于重视时间估计,或对新技术和可能的投资过于怀疑。调整你的工作流程和与经理的沟通以反映这一点——这样你可以改善合作,将不必要的冲突扼杀在萌芽状态,并让你自己的生活更轻松。
离开开发工作的建议
当时机到来时,就是时候了。学习如何掌握过渡。无论是完全不同的东西——还是软件工程中更大更好的挑战:
13. 知道你是否应该退出编程
你是否已经到了不再喜欢编程工作的地步?这可能意味着你应该退出,或者可能意味着你应该以多种方式之一转向。这取决于你最初获得开发人员工作的原因:如果是因为你实际上热爱这份工作——那么尝试学习新的相关技能。或者申请行业中的另一家公司。你甚至可以转向另一种技术工作。另一方面,如果你开始只是为了作为软件工程师赚很多钱,但现在你对工作太无聊了:你能以另一种方式赚钱吗?如果还不能,那么继续工作直到你找到一份报酬不错且你热爱的工作。但如果你已经知道它是什么,那么是的——你应该退出编程。
14. 当你是房间里最聪明的人时该怎么做
我们在这个平台上试图做的是让你提升技能,成为你能成为的最有价值的程序员。成为房间里最聪明的人会带来新的挑战:你可能会对当前的工作环境感到失望。人们会注意到——即使你在客观上变得更有价值,也可能密谋取代你。如果不是那样,你自己会渴望一个能让你不断成长的职位。这两种情况的底线:是时候继续前进了。
15. 知道该离职的迹象
如果你开始因为工作中发生的事情而感到沮丧——或者因为你必须修复其他人的错误而过度工作——是时候计划你的逃离了。倾听该离开编程工作的迹象。不要继续被倦怠和痛苦。
16. 如何离开你的软件开发工作
现在,如果你决定离职:尽快这样做——不要停留在不再对你有益的情况中。但注意以正确的方式做。避免戏剧性。不要在他们低落时踢他们。不要 burn the bridges。离开软件工程工作的最佳方式是给出标准的两周通知。尽你最大的努力培训将取代你的人。并对你知道公司出问题的所有事情保持沉默——谈论它只会伤害你。遵循这个退出策略意味着你将最小化任何怀有的 hard feelings,并有助于保护你的声誉,这是无价的。
longevity, 失业与重启职业生涯
为了使你的软件工程师职业生涯长久而繁荣,并经受住不可避免的风暴——例如从强制或自愿休息中回来——请确保你 heed 以下建议:
17. 让失业成为你的老师
作为软件工程师没有工作可以成为你的机会,如果你让它。利用这段时间在个人和专业上发展自己。为了确保你在下一次面试中闪耀,成为解决编码问题的大师、训练你的金钱管理技能、尽快开始提升你的网络努力。这些技能不仅会在你的余生中为你服务,还会让你快速找到新工作——通常比旧工作更有趣、更有成就感和高薪。
克服职业空白
如果你失业一段时间,利用这段时间改进你的时间管理。学习新技术并升级你的技能。继续追求新机会。如果你准备在休息期间和一旦开始新职位时努力工作,你的职业空白将无关紧要。
18. 如何在长时间休息后重启开发职业生涯
如果你休息了很长时间,也许多年呢?确实尝试 comeback——开发人员仍然有需求。即使你在长时间休息后需要从小处开始,毫无疑问这是值得的。从诚实地评估你的技能与市场需求的关系开始。如果在如此长的休息后你有空白需要填补,考虑参加课程、认证或训练营——或者至少埋头进入免费教程。增加你的网络努力,刷亮你的简历,准备面试,并下定决心找工作。
19. 作为年长开发人员成功
你的就业能力确实在35岁后下降。大多数开发人员在40岁前退出该领域。这是否意味着对年长程序员来说没有希望?一点也不。有很多40岁以上的人仍然强大的例子。归根结底是跟上时代。不要固守你的方式。始终保持学习。采用新技术。努力保持年轻人的心态,你可以在60多岁和70多岁时成为成功的软件工程师。
软件工程师职业心态与策略技巧
为你的编程旅程制定策略是必不可少的。正确的 mental attitude 也是如此。以下技巧帮助你掌握这些元素。
20. 找到你作为程序员的“为什么”
如果你在工作中有一个强大的“为什么”,你就不太可能倦怠。为了经济利益而进入软件工程是可以的。但如果你找到获得编程工作的根本原因更好:例如,过你想要的生活方式,养家糊口,在硬技能中发挥你的潜力,并将新事物带入世界。
21. 从其他开发人员的生活故事中寻找灵感
无论你在软件工程旅程的哪个阶段——总有一个人的故事你可以学习。有起步晚但仍然成功的程序员。有那些创建你自己想启动的项目类型的人。使用其他开发人员的故事作为灵感,点燃你心中的火焰。你知道追逐并达到你的目标是可能的,因为那些在你之前的人——那些曾经处于类似情况或必须克服比你面临的更大挑战的人。
22. 使用强大的成功策略
要成为伟大的程序员,你需要几乎沉迷于寻找信息和学习新事物。你需要充分利用最好的学习资源。你需要将所有内容并不断练习直到掌握。解决呈现给你的问题,并不断寻找新问题来解决。一切都是变得更好的机会。最后,作为程序员最强大的成功策略之一是参加课程和训练营,并找到(现实生活或在线)导师。
23. 征服改善之路
日本概念“改善”(大致为“持续改进的精神”)对任何软件工程师都有用,并且是敏捷方法论的一部分。在你的开发人员职业生涯中,你经历改善的不同阶段。你从“守”(遵循状态)开始。然后你进入“破”(创新状态)。直到你到达“离”(流动状态)。努力在每个工作日为改善做出贡献,你就有望成为你手艺的真正大师。
24. 成为编程增长黑客
在编程领域成为增长黑客意味着你通过寻找所有领域的改进来寻找彻底改变公司的方法。你的编码背景将帮助你进行测试和快速迭代。但除此之外,你应该精通文案写作、外展、设计和项目管理的技能。公司内部专业增长黑客的职位不仅带来丰厚的经济利益——而且很有成就感,因为你的努力将有助于改变收入数字和影响。
25. 克服你的冒名顶替综合症
我们大多数人在编程职业生涯的某个阶段都会感到冒名顶替综合症。重要的是你不要屈服于它。专注于你已经取得的成就(无论多么少)和你正在努力的目标——而不是关注他人 perceived superiority。不要害怕看起来和行为像初学者。成为那个沉浸在学习中的初学者,你会发现大多数 ahead of you 的人更感兴趣的是帮助你,而不是评判你缺乏技能。
26. 放弃某些东西
以下是在软件工程职业生涯中要避免的:不要为了“花哨”的代码而牺牲可读性。不要尝试创建你以后才需要的功能——首先编程你现在需要它工作的东西。不要成为孤岛。在线与其他程序员交往并接受他们的帮助。不要编写零注释的代码。让别人更容易理解你的代码。不要拖延调试。它是必不可少的,应该成为你过程的一个组成部分。不要盲目复制和粘贴他人的代码。旨在理解进入你软件的所有内容。不要走捷径达到你的目标。弄清楚你遇到的每个问题,并愿意投入必要的努力和关心来解决它。
27. 应对软件开发的挑战
毫无疑问,软件开发是一个复杂的话题——这种复杂性可能难以处理。应对开发挑战的第一步是尽可能简化,以保持事情可管理并避免不知所措。还旨在不断提高你对该领域的理解。保持领先于趋势,这样你就永远不会被不断发生的变化 caught off-guard。如果你能在照顾健康的同时做到所有这些,你将 well-equipped 在这个具有挑战性的行业中茁壮成长。