作为一个在工程领域摸爬滚打十年的工程师,我今晚可能在酒精的作用下,毫无顾忌地分享一些心得体会。以下是我酒后吐真言。

  1. 我在职业发展上取得的最大进步,是通过跳槽实现的。
  2. 技术栈并不是真的那么重要,因为在我所在的领域,大约有15种基本的软件工程模式是适用的。我从事的是数据领域的工作,它与网页开发或嵌入式开发不同。但所有领域都有大约10到20个核心原则,而技术栈只是试图让这些原则更容易实现,所以不必为此烦恼。
  3. 人们推崇寻找新工作是有其道理的。如果我对当前的工作感到不满意,那很可能是时候向前看了。
  4. 在我曾经工作过的公司里,我结交了一些好朋友,他们将会是我一生的挚友。我并不要求我工作过的每一个地方都必须建立这样的友谊。在那些没有与同事建立友谊的地方,我也能非常快乐地工作;同样地,即使在那些我交到了好朋友的地方,有时我也可能感到不快乐。
  5. 我学会了对上司坦诚,既保持真诚,又不至于过于直白,这样在工作中我能够保持自我。最糟糕的情况是什么?被解雇?那也无妨,我相信不久便能找到新的工作机会。
  6. 如果我一个季度内因为值班被在凌晨两点钟叫醒超过一次,那么肯定是出了严重的问题,我要么会解决它,要么就会辞职。
  7. 再倒一杯。
  8. 一个优秀的管理者与一个杰出的工程师之间,有许多共通的品质。
  9. 当我刚开始的时候,我对技术和编程以及计算机科学非常着迷。我现在已经不再那么狂热了。
  10. 好的代码是初级工程师能够理解的。伟大的代码是计算机科学专业的大一新生都能理解的。而最好的代码是根本不需要写代码。
  11. 作为工程师,编写文档的能力常被低估。真的,如果有人能教我如何编写出色的文档,我非常愿意为此付费参加培训课程。如果能保证我能够写出高质量的文档,我愿意支付高达1000美元的费用。
  12. 与上述相关的,写出优秀的变更提案也是一个非常重要的技能。
  13. 几乎所有的技术“圣战”(比如Vim与Emacs,Mac与Linux等)其实都是无关紧要的……但有一个例外,详情见下文。
  14. 随着年龄的增长,我越来越欣赏动态语言了。该死,我说出来了。来打我啊。
  15. 如果我发现自己认为我是团队里最聪明的人,那就是我该离开的时候了。
  16. 我始终不解,为何全栈网络开发者的薪资如此之低。说真的,他们理应至少获得每年五十万美元的底薪。他们需要掌握前端和后端的知识,了解不同浏览器的机制、网络、数据库、缓存,以及网页与移动设备的差异。天啊,又有一个新框架问世,公司又想采用它?说真的,为什么网络开发者的薪资这么低?
  17. 我们应该招聘更多的实习生,他们太棒了。这些充满活力的小家伙带着他们的想法。当他们能够提出问题或批评某些事情时,就更棒了。我非常喜欢实习生。
  18. 轻啜一口。
  19. 不要去见到你的偶像。我花了5000美元参加了我心目中的一个偶像的课程。他是个杰出的人,但到了课程结束时,我意识到他也像我们其他人一样边走边摸索。
  20. 技术栈确实重要。好吧,我之前说技术栈不重要,但让我来解释一下。当你听到Python开发者和C++开发者时,你脑海中浮现的肯定是两种不同的形象,对吧?这是因为某些工具在特定的任务上确实表现得更为出色。如果你还不确定自己想要做什么,那就选择Java吧。它可能不是一种完美的编程语言,但它几乎能胜任所有工作。
  21. 历史上最伟大的编程语言是 Lisp。我应该学习 Lisp。
  22. 对于初学者来说,最赚钱的编程语言是 SQL。其他语言都不重要。就算你只知道 SQL 也能能赚大钱。财务专员?也许是 5 万美元。懂 SQL 的财务专员?9 万美元。在大公司有组织技能的普通人?4 万美元。有组织技能和 SQL 的普通人?自称为项目经理,能赚 15 万美元。
  23. 测试很重要,但测试驱动开发(TDD)简直就是个邪教。
  24. 安逸的政府工作并不像人们想象的那么好,至少对于处于职业生涯早期到中期的工程师来说是如此。当然,12万美元的年薪加上福利和退休金听起来很诱人,但你可能会为了研究那些深奥的专有技术而不得不放弃自己的原则。我非常尊敬政府工作人员,但说真的,那些地方的工程师平均年龄在50岁以上是有原因的。这个建议不适用于政府承包商。
  25. 外包人员有时被比作水蛭。然而,如果你找到了一个好的外包人员,就要努力与他们建立良好的关系。他们可以在你的职业起步阶段提供帮助。你如何判断是否找到了一个好的外包人员呢?如果他们做了超过三年的外包工作,他们可能就不是最佳选择。通常,优秀的外包人员最终会成为大公司的正式员工。
  26. 期权可能一文不值,也可能让你一夜之间成为百万富翁。除非工程团队的人数超过100人,否则它们可能一文不值。小公司的期权,在接下来的十年内可能会有所价值。
  27. 居家办公真是太棒了。但是缺乏白板讨论的机会就很糟糕。
  28. 我从未在FAANG公司工作过,所以我不清楚我错过了什么。但我曾招聘过(也拒绝过)来自FAANG公司的工程师,他们有时也显得手足无措。(博主注 FAANG:Facebook、Apple、Amazon、Netflix、Google,类比国内的BAT)
  29. 我的自我价值不是由我的总薪酬决定的,也不依赖于我的总薪酬。用资本主义的方式来衡量自我价值是一种糟糕的做法。
  30. 管理者的权力比你想象的要小得多,远小于你的预期。如果你曾疑惑为什么某位经理不开除某个人,那是因为他们实际上并没有那么大的权力。
  31. 头衔大多数情况下并不重要。无论是来自哪个公司的首席杰出团队领导工程师,这些都无关紧要。人们关心的是你做了什么,以及你取得了什么成就。
  32. 说到头衔:在职业生涯早期,头衔的提升是很好的。从初级到中级,从中级到高级,从高级到领导。而在职业生涯后期,头衔的降低也很好。这样,你可以获得相同的薪酬,但在晋升时可以得到提升。换句话说,在职业生涯早期(不到10年),头衔向上提升是好的,因为它让你的技能和责任得到增长。后期,头衔向下调整是好的,因为它让你的薪资得到增长。
  33. 社保、五险一金拉满(结合国内情况翻译)
  34. 对每个人都要友好。这不是因为它会帮助你的职业发展(它确实会),而是因为友好本身就是一种回报。
  35. 如果我在过去的一个月里没有从初级工程师或实习生那里学到任何东西,那就意味着我并没有在关注。
  36. 哎呀,我的酒喝完了。
  37. 为课程、书籍和会议付费是值得的投资。我参加过一些会议,上过几个价值1500美元的课程,读过许多书籍,还有各种订阅。这些都是值得的。它们帮助我更好地掌握所需知识,即使是假装,也能更自信地知道自己在做什么。
  38. 说真的,为什么网络开发者的薪酬不高?他们无所不知!!!
  39. 手腕和背部问题可不是闹着玩的。现在就花1000美元投资一些好的设备吧。
  40. 为我工作过的最聪明的人是一位拥有数学博士学位的人。我从他那里学到了很多。我希望他一切顺利。
  41. 你知道作为软件工程师最令人兴奋的是什么吗?那就是你有机会遇见并与那些思考方式与你相似的人交流。重要的不是对体育或电视节目有相同的兴趣,而是他们的思考逻辑与你一致。这真的很酷。
  42. 技术领域中女性的比例远远不足。这是行业现状的一大遗憾,迫切需要改变。我一直尝试为我们组织中的女性工程师提供更多的鼓励和支持,但我还在思考还能做些什么。
  43. 同样的情况也出现在黑人工程师身上。这究竟是为什么?
  44. 我从未真正开始讨厌一种编程语言或技术,直到我对它有了深入的了解。而且,我认为如果我对某项技术有所不满,但我仍会向客户推荐它,那么这项技术其实是值得肯定的。比如我对Jenkins虽然不太满意,但我仍会向新客户推荐它。
  45. 话虽如此,Git 有时候确实令人头疼,但我没有其他选择,只能使用它。至于那些图形用户界面的Git工具,我更倾向于命令行。基本上,只要记住大约7条命令,其他问题都可以通过搜索引擎找到解决方案。
  46. 由于我从事数据领域的工作,我将分享一些与数据相关的经验教训。去他的 pandas
  47. 我的工作之所以更轻松,是因为我团队里有半技术性的分析师。所谓半技术性,是因为他们懂编程但不懂软件工程。这其实是一种幸事,因为如果某件事对他们来说没有意义,那意味着这件事可能设计得很差。我爱我们团队的分析师;他们对我的帮助比最杰出的工程师还要大。
  48. 暗模式很棒,直到你被迫使用亮模式(网页或不支持的应用程序)。这就是为什么我使用亮模式的原因。
  49. 我对安全了解得足够多,以至于我知道我对安全一无所知。
  50. 哎呀,我的酒喝完了。
  51. 成为一名优秀的工程师意味着要掌握最佳实践。而成为一名高级工程师,则意味着要懂得在何时打破这些常规。
  52. 如果你的团队总是试图将错误或故障归咎于个人,那么这可能是你该离开的信号。
  53. 许多进步的公司,特别是初创公司,都鼓励员工展现“真实的自我”。但如果你的“真实自我”涉及到观看不雅内容呢?是的,保持工作与个人生活之间的界限是很重要的。
  54. 我喜欢在下班后的聚会时光与同事们共饮。然而,我更珍惜与孩子、家人或朋友相聚的时光
  55. 伟大的领导力最好的证明就是,当我犯错时,我的领导愿意为我承担责任。你可以放心,为了这样的领导,我甚至愿意赴汤蹈火。
  56. 同样,我有幸共事的最好的领导者们不仅会为我的观点辩护,还会向我解释与我观点相悖的其他观点。我正努力成为像他们那样的领导者。
  57. 至于副业项目,如果你喜欢做它们,那当然很棒!即便我有时间,我也宁愿在Reddit上发表酒后的帖子。
  58. 算法和数据结构固然重要,但也不应过分强调。我从未见过药剂师的面试会问有机化学的细枝末节。我们行业的面试流程确实存在一些问题。
  59. 那些运维开发人员真是极其聪明。至少,他们因此得到了不错的薪酬
  60. 我越是接近产品,越是参与推动收入的工作,无论我的工作多么技术性,我都感到自己非常有价值。即便是最前沿的公司,这一现象也同样存在。
  61. 即使我主要在 Windows 环境下工作,Linux 依然非常重要。为什么呢?因为我最终转向了 Linux。所以对于那些周末我瞎折腾安装 Arch Linux 的日子,我感到非常开心。
  62. 我对那些模糊的流行词汇如“大数据”保持警惕。“大数据”到底是什么?我处理过在 Spark 和 Kafka 中每10分钟流式传输10,000行数据,也处理过在 Python 和 MySQL 中每小时批量处理10亿行数据。这些标签可以去见鬼了。
  63. 并不是所有的好工作都在硅谷。但是,硅谷确实集中了许多优秀的工作机会。

以上观点并不完全代表博主的观点,部分观点博主也不认同。博主仅做翻译以及结合实际做必要润色,如有侵权请及时与我联系,若部分观点戳到你的痛处请立即关闭它

原文地址:https://www.reddit.com/r/ExperiencedDevs/comments/nmodyl/drunk_post_things_ive_learned_as_a_sr_engineer