30 年软件工程师职业生涯的 30 条建议
几天前,我满30岁了。这十年充满乐趣,我做了很多,也学到了很多东西,终于结束了。我经常记录这些“人生经验”,所以我觉得把与软件工程师工作生活最相关的经验分享出来是个好主意。
开始了:
1. 努力工作
没有人会无缘无故地给你升职、加薪或更好的职位。光努力工作是不够的,你还需要高效。
努力工作却不创造任何价值对任何人都没有用,除了那些以坐在椅子上的时间来计算生产力的人。
顺便说一句,你得避开这些人,他们所在的公司通常毒害极大,会让你痛苦不堪。谢天谢地,在我们这个行业,这样的人正在逐渐消失。
2. 不要拘泥于编程语言
对一门语言太过在意是没有意义的。大多数语言都遵循相同的原则,只是在某些方面比其他语言做得更好(这当然很重要)。这就是为什么我们拥有如此多的语言,因为没有一种语言是完美的。
确保你至少了解每种范式中的一种语言。例如函数式、面向对象等等。
3. 每年学习一门新的技术语言
每年尝试学习一门新语言(理想情况下是一门流行的、能让你走出舒适区的语言),以保持大脑敏锐并跟上市场趋势。
此外,如果您发现所学语言有价值,您可以向公司推荐它作为解决某个问题的工具。
4. 为你的职业生涯负起全部责任
你的童年很坎坷,你的前任经理(或者现任经理)是个混蛋,你经历了三次婚姻,离过五次婚,你花了两年时间掌握的 Web 框架现在也过时了。你的生活一团糟,周围没有一丝积极向上的气息。
但你已经成年,你应该自己应对这场战斗。艰难的过去并不能成为你现在不做最好的自己的借口。专注于你能做的事情,让事情变得更好,并确保你…… =>
5. 不要担心那些你无法控制的事情
只需担心如何妥善应对。如前所述,你花了大约 3 年时间掌握的 Web 框架已经不再流行了。那又怎样?学习另一个。或许可以选择一个看起来更有前景的框架。在你的职业生涯中,你需要反复尝试。
也许你挚爱的技术主管朋友已经离开了公司。这很令人难过(我以前也遇到过这种情况),但现在也是时候做好准备,给新领导留下深刻印象了。
如果你无法承受,你也可以离开公司。但千万别唠叨那些你无法掌控的事情。不如调整你的应对方式,因为事情还得继续。
6. 避免仇恨
如果某人在某方面比你强,不要恨他们,要向他们学习。我们把比我们强的人视为威胁。我选择把他们视为潜在的进步源泉,你也应该这样做。
我记得以前雇主那里的几位同事非常善于应对压力,在危急关头也能想出解决方案。我从他们身上学到了很多,但我从未感到羡慕,因为我知道自己也能学到这种技能。
注意,如果出于某种原因,身边没有比你(技术上)更优秀的人,那么是时候为你和你的职业生涯寻找一个更好的地方了。相信我,除非你是首席技术官或类似的职位,否则你不会想成为最好的。但即便如此,正如俗话所说,你也需要雇佣比你更优秀的人。
仇恨也会毁掉你的个人生活,影响你的情绪,降低你的积极性。仇恨别人对你没有任何好处。
7. 追逐责任,金钱随之而来
我很遗憾,太多人只关注金钱,却没有打造强大的技能和品牌
。
你认为未来什么时候会有更好的收入前景:如果你是薪水过低的CTO,还是薪水过高的初级工程师?明智地选择你的工作吧。
8. 如果你忽视磨练你的技能,他们最终会抛弃你
太多的人认为计算机科学学位使他们成为某种王子/公主,公司会恳求他们加入,一切都会轻易交给他们,只因为他们的墙上贴着一张纸。
别误会我的意思,我相信一个好的学位可以给你带来大量有用的知识(我拥有本科学位,很快将获得信息学硕士学位),但太多人止步于此。
这正是我钦佩自学成才的程序员的地方。他们或许缺乏计算机科学的各种理论知识,但他们深知,没有人会免费给予他们任何成功。
另外,如果你连一些最流行的趋势(至少)的基本知识都不知道,那你就错了。你不需要成为专家就能了解周围的世界。
9. 廉价硬件质量差、价格低,而且还会损害你的健康
投资一套超值的键盘、指点设备和显示器。你的职业生涯很大程度上取决于你的手和眼睛。
拥有降噪耳机很棒,但如果您没有前面提到的高质量硬件,就不要购买它们,因为每个人都有。
除非您在极其嘈杂的环境中工作,否则您可能不需要降噪耳机。
10. 散散步,问题就会解决
好吧,我有点夸张,但我想强调发散模式的必要性,芭芭拉·奥克利在她的课程“学习如何学习”(我强烈推荐)中解释道。
如今,人们不太重视发散思维模式。至少我知道只有少数公司允许在工作时间睡觉(或其他有利于发散思维的活动),但事实上,两者都需要。实际上,那句非常著名的短语“睡一觉”就暗示了发散思维模式的重要性。
11. 将收入的相当一部分投资于专业教育
如果您的公司能够支付这笔钱,那就更好了。
YouTube 是一个很棒的学习资源,但如果您真的认真对待您的技艺,并且您的收入允许,您应该订阅像 O'Reilly / Pluralsight 这样的高质量培训服务。
找到你更适合的学习方法,并运用它学习更多。说到专业教育 =>
12. 避开没有培训政策的公司
我在这里可能有点偏颇,而且非常严格。如果公司刚刚进入市场或资金不足,你可以允许例外。
鉴于该领域需要不断更新知识并保持最新状态,我倾向于不会认真考虑那些没有适当培训/教育政策的公司。
对我来说,适当的教育政策的最低限度是,每个员工都有专门的预算,至少可以覆盖(每年)
- 参加会议
- 买几本书
- 购买 O'Reilly Learning 等高质量培训服务的订阅
- 做认证
当然,大多数人不会在一年内完成所有这些工作,原因有很多;也许是因为他们已经安顿下来,或者因为他们有家庭,无法投入太多的空闲时间,但问题是,如果员工想这样做,公司不应该成为障碍。
我对大公司的要求更高,我期望(额外)能邀请一些现场授课,尤其是关于关键领域的课程。例如,如果公司正在迁移到 Scrum,最好聘请一位敏捷教练来做铺垫。
13. 使用金钱能买到的最好的工具
比如你的IDE。和硬件一样,IDE的选择也不要贪便宜。正如《程序员实用手册》里说的,选择一个编辑器,然后熟练掌握它。高质量的工具确实可以帮你节省很多时间。
别忘了,金钱其实就是时间的压缩。你现在付出更高的金钱代价,以后就能节省时间。
14.忽视动机
人们往往非常依赖动力来实现重要的人生目标。
动力固然重要,但它仍然是一种情绪。就像所有情绪一样,它来来去去。
你最好有一个更优化的方式来指导自己(比如你的梦想生活或下一点讨论的愿景),指导自己需要做什么,至少指导自己生活中重要的事情。
当一切顺利时,脸上露出笑容是很容易的,但是当没有什么可以激励你,当你接近精疲力竭的状态,没有什么令人着迷的时候,你会怎么做呢?
15. 不惜一切代价,保持心中的热情
虽然我不建议你依靠动力来发展你的事业和你的生活,但我坚持要对你的事业有一个愿景。
你应该对自己的目标有一个清晰的愿景,这样你才能知道你做的每一个决定(不仅仅是职业生涯的决定)是否能让你的船行驶得更快、更安全。就像2000年那位著名的英国赛艇运动员曾经说过的那样,这会让船跑得更快吗?
16. 了解哪种类型的公司更适合你,并专注于获得类似的工作
初创公司、中型公司和大公司在优势和劣势方面有很大差异。
事实上,你在大公司做得很好,并不意味着你会处理初创公司的日常问题。
做好调查,确保你了解自己现在拥有什么,得到什么,以及在每一次选择中失去什么。可惜,没有灵丹妙药。
17. 拥有一位优秀的经理是拥有健康工作生活的最佳标准
您可能已经知道这一点;如果您有一位支持您的经理,您可以与他进行有效的沟通,并且您喜欢工作中的任务,这将是一件幸事。
人们不会离开公司,人们会离开他们的经理。确保你的经理会尽力让你享受这段经历。最好在接受录用通知之前就这样做。
18. 确保你懂得某件事的唯一方法就是教它
这就是我最初开始写博客的原因。
如果我了解到一些有趣的事情(即使是作为我个人培训计划或工作的一部分),我也会尝试通过我的博客进行解释(尽管我的硕士学位让我减少了发帖频率)。
我觉得这挺好用的。至少我还没问过我的读者 :)
19. 如果你停止学习,你就已经被淘汰了
软件行业相对较高的薪资水平(以及其他因素)与该领域的快速变化息息相关。这个行业发展如此之快,如果你停止学习,你就已经被淘汰了。
这并不意味着你应该把醒着的每一刻都花在阅读和编码上,但不要走向另一个极端,安于现状而忽视正在发生的变化。
20. 一致性比强度更重要
与您上面的学习心态相关,每天花 30-40 分钟阅读有关您的手艺的文章比整个星期天都坐在显示器前完成不合理的学习工作要好。
你大学的时候就知道了,对吧?当你一点一点地完成作业,而不是拖到最后一晚的时候,压力水平会好很多。
21. 首先,让它发挥作用,然后让它正确,然后让它快速
肯特·贝克的这句名言是我(以及 Unix)最喜欢的座右铭之一。我对业界缺乏务实思维感到震惊。
人们太在意空格和制表符、蛇形命名法和驼峰命名法、如何命名界面等等。
没有人(?)不同意这些都是重要的事情,但只有当我们拥有一些可行的东西时,它们才是重要的。
我最喜欢的,是观察别人如何为那些甚至无法编译的代码添加详尽的文档。务实一点吧,朋友们。
22. 如果你想在社交媒体上投入时间,请确保它是值得的
关注那些值得你花时间的优秀人士。我在 Twitter 上关注了很多优秀的人,包括很多来自 dev.to 的合著者。
尽管我在推特上并不是非常活跃,但我总是很乐意阅读他们的意见,即使我不同意,
因为他们给了我很好的视角。
23. 不要害怕提问
无论你在公司担任什么职位,无论是老板还是首席技术官,任何理智的人都不会指望你无所不知。相反,研究表明,当你向别人寻求帮助时,他们往往会更喜欢你。
而且,计算机科学领域如此庞大,你不可能无所不知。就像其他所有需要大量参考文献的职业一样。
24. 定理和头脑风暴并不能带来回报
结果才是关键。满意的客户和成功的产品才是关键。你已经不再是学生了。没人会在乎你对编程的浪漫主义、那些不再适用于行业问题的理论,或者你的假设。我不是说这些不重要,而是企业界更看重结果,而不是抽象的讨论。
这是一个令人悲伤的事实。如果你不喜欢,也许职场生活并不适合你。你更愿意去研发导向的地方或大学寻找庇护。
25. 尝试培养软件以外的爱好
我最近因为没有听从这个建议而感到有点内疚。
在全职工作、健身训练和硕士学位之间,我很难说自己在这里感到自豪。不过,我正在努力弥补。
它将帮助您避免倦怠并从不同的角度看待事物。
例如,我见过各种关于将增强型发散思维模式(见上文)与演奏乐器联系起来的文章。
26. 不要对科技抱有偏见
我觉得这不需要解释。软件技术有各种各样的替代方案,这是有原因的。别再宣扬某种特定的编程理念或技术,别再把它当成唯一的解决方案。往好了说,你会显得烦人,往坏了说,你会显得无知。
27. 绝不容忍工作场所中不被社会接受的行为
性别歧视、种族歧视、欺凌、对你的职业发展的偏见、老板休假时不给工资(我亲身经历过)。有些公司里有认真、成熟、专业的员工,他们会尊重你。去寻找这样的人吧。让其他人去享受他们自认为优越和独特的小世界吧。
28.单元测试很无聊,但是......
当事情变得艰难时,例如产品快速增长或即将进行大规模重构,它可以挽救生命。
正如生活中的所有事物一样,先播种,然后收获。
29. 有效的时间/任务管理比你想象的更重要
有效的时间/任务管理与学习最新、最热门的技术同等重要,甚至更重要。
为什么?因为如果你不能运用你的技能按时创造价值,没人会在乎。如果你觉得自己在这方面不够好,不妨从GTD理论和15个时间管理秘诀开始。
30. 不要忘记你的软技能
除非您是接受匿名投标的自由职业者或将销售和客户处理事务委托给他人的人,否则您需要这个。
我们整天与人打交道,我们需要知道如何有效地沟通,并说出商业上可接受的语言,因为与我们不一样的人。
如果所有人的软技能水平都较低,这可能不是一个问题,但由于这有点反乌托邦,而且我上面要求你要务实,所以你也需要在这个领域变得更好。
我推荐三本关于这个主题的书,首先是:
软技能
如何赢得朋友和影响他人
魅力神话
结论
感谢您读到这里,希望您喜欢以上建议。如果您有任何建议对其他读者有帮助,我很乐意分享。
文章来源:https://dev.to/perigk/30-tips-for-software-engineering-careers-after-30-years-of-life-5ddf