我希望自己在第一份开发工作中就知道的 50 件事(第二部分)

2025-05-25

我希望自己在第一份开发工作中就知道的 50 件事(第二部分)

这是第 2 部分!

26. 文化契合很危险

文化契合度可能是任何招聘过程中最危险的概念之一。

我的第一份工作在招聘过程中,有一个相当严格的文化契合度面试。这听起来是个好主意;他们告诉我,他们想确保我能融入团队(讽刺的是,我完全不适应)。

把文化契合度归结于单一文化,或许是打造单一文化最有效的方法。如果我试图确保每个人都融入团队,我实际上就是在排除那些来自不同背景的人。文化契合度是多元化的敌人。

我希望我在第一份工作中就挑战了那里的文化,那可能会让我在那里过得更好。

27. 编程语言并不能让你变得聪明

当我第一次开始编程赚钱时,我觉得世界上所有最好的开发人员都在使用很酷、很流行的语言编写代码。

我以为 Rust 开发人员和 Go 开发人员是行业顶尖人才,而编写 PHP 的人可能被困在该语言中并且不快乐。

这是一种有害的心态,是错误的。

人们使用有用的工具,而这些工具并不能体现一个人的智力或能力。有些世界级的程序员正在编写 PHP、Java 以及各种其他“不受欢迎”的语言。

28. 框架灵活

我第一份工作加入了一个 Ruby-on-Rails 团队。在学习期间,我把 Rails 视为铁律,不可更改。

我花了很长时间才意识到,框架只是代码而已。必要时,代码可以被修改,甚至被规避。

如果我意识到框架是灵活的,我可能早就开始为 Rails 做出贡献了。

29. 你的堆栈不是最重要的决定

就像人们愚蠢地认为编程语言与才能或智力有关一样,认为产品的技术堆栈是最关键的决定也是愚蠢的。

事实上,当涉及到产品时,这可能是您最不需要担心的决定之一。

30. 你的人脉是你最宝贵的资产

重要的不是你知道什么,而是你认识谁。这是千真万确的。

学会社交;你会感谢我的。

31. 你很有价值

在我的第一份工作中,我总是认为我随时都可能被取代。

事实是,只要知道如何使用 HTML/CSS 和少量 JavaScript 构建基本 UI,市场就认定你非常有价值。

学会接受这个事实,因为当你需要离开工作时,它会帮助你感到充满力量。如果我意识到自己的技能很有价值,我早就辞掉第一份工作了。

32.软件开发需要时间

新手很容易急躁,承诺不切实际的结果。我经常因为向别人保证事情会比我预期的提前很多完成而陷入困境。

学会估计,当有疑问时,依靠霍夫施塔特定律。

霍夫施塔特定律:即使考虑到霍夫施塔特定律,事情总是比你预期的要花更长的时间。

好的软件需要时间的开发,如果我早点认识到这一点,我就会少写很多糟糕的软件。

33. 你会更善于解决问题

我注意到,初级员工和实习生在一天工作结束后往往会感到筋疲力尽。学习这么多知识,还要讨论软件工程中那些晦涩难懂的概念,这会让你的大脑感觉像一团浆糊。

这会过去的。这种感觉让我非常焦虑。我下午5点半回家,然后一睡就是12个小时。我以为我的整个职业生涯都会是工作和睡眠的循环,直到我死去。

事实上,你做这项工作的时间越长,你的大脑就会变得越有弹性,当你做了几年之后,只有最可疑的问题才会让你感觉像僵尸一样。

34.白板有害

我在这里有很多意见,但我经常被白板写文章,这让我觉得自己陷入了自己讨厌的工作中。

经理:不要在白板上写求职者。求职者:拒绝在白板上写求职者。

如果一家公司依靠这种策略来雇用员工,那么很有可能你不想与这些员工一起工作。

35. 写坏代码并不代表你愚蠢

当我编写出糟糕的代码时,我曾经对自己感到非常失望。

我会做一个 PR,但它会被撕成碎片,所以我会回家并在晚上剩下的时间里为自己感到难过。

当你编写糟糕的代码时,请承认这是无知而不是愚蠢的结果,然后接受提供给你的建议。

请记住,你应该始终假设别人有最好的意图。

36. 为自己留出时间

这是我仍在努力解决的问题,但我不需要提供比显而易见的更多的证据。

当你连续几个小时为一个问题而苦苦挣扎时,感觉就像在半干的水泥中游泳一样,你并没有接近解决方案,你只是精疲力竭。

这类问题的解决办法似乎总是几个小时后在淋浴间或健身房里出现。这是因为休息能给你时间去消化,让你换个视角。休息能帮助你更快地解决问题。

不要仅仅因为觉得每周工作90小时就能提高效率就这么做。我的经验之谈是,这根本行不通。

37.阅读小说

这与为自己留出时间有关。

作为工程师,我们总是在消耗信息。通常是技术信息或行业人物传记信息。虽然这些信息在脑子里盘旋很有用,但却不利于创造性思维。

开发人员的工作本质上是创造性的;我们必须接触其他富有创意的事物。在我看来,最好的方法之一就是阅读小说。

在我职业生涯的第一年,我像躲避瘟疫一样躲避小说,因为我太专注于阅读技术内容了。这耗尽了我的创造力,现在我尽量保持一本小说作为我的阅读轮换。

38.积极倾听

如果您不熟悉积极倾听的概念,您现在就需要掌握它。

开发人员工作的很大一部分与理解他人息息相关。我们必须能够将反馈转化为有用的功能,而这需要世界一流的倾听技巧。

顺便给自己一个机会,读一读《如何赢得朋友和影响他人》。

39. 你的意见很重要

当我还是新手时,我总是认为我的意见是最不重要的。

对我来说并非如此,对任何读到这篇文章的人来说也并非如此。作为人类,我们每个人都有独特的背景和经历。这意味着我们对任何特定问题的看法都不同,所以当我们有想法时,大胆地说出来至关重要。

40. 资历不代表一切

你很容易仰望资深同事并认为他们已经把所有事情都弄清楚了。

我急于尝试获得这个高级头衔,因为我觉得它对我来说非常重要,但实际上,这个头衔非常主观,除了简历要点之外,它对其他任何事情都不是很重要。

如果时光可以倒流,我会告诉自己放慢脚步,利用职业生涯的早期阶段专注于学习。到时候,资历自然会来。

41. 学习慢没什么不好

我实际上是一名快速学习者(但与许多人相比可能比较慢),但我总是担心被视为学习缓慢的人。

过去几年,我发现学习慢的人往往比我更透彻地理解某个主题。事实上,我甚至有一两次后悔自己能放慢速度,专注于细节。

42.软件工程是一项耐力运动

就像我之前说的,构建好的软件需要时间。

在软件行业中建立职业生涯需要很长时间。在软件行业中,长期的坚持比短期的努力更有价值。

正是由于这个原因,我不喜欢“冲刺”这个词。

罗马不可能在一天内建成。

43.软件工程是一项团队运动

软件工程的民间传说让我们认为,个人开发出优秀的软件。我们经常听到洛夫莱斯、沃兹尼亚克、托瓦兹、图灵和霍珀这样的名字。我们相信这些人在计算机行业取得了惊人的成就,但却忽略了那些在他们项目过程中给予他们支持的人。

所有伟大的软件都是由团队直接或间接地构建的。

刚开始写代码的时候,我梦想着自己能付出巨大的努力,梦想着能离开一周,然后带着数十万行天马行空的才华回来。可惜,我的自尊心受不了这种现实。

你不能独自建造罗马。

44. 使用你喜欢的工具

很少有东西能像工具一样让软件开发人员激动不已。

去翻翻论坛里关于 Emacs 和 Vim 的老帖子,或者加入一些关于编程语言的讨论。你很快就会发现,开发者们非常在意他们的工具。

你也应该这样做,你应该利用对工具的浓厚兴趣来激励自己并挑战自己更深入地学习工具。

当我意识到自己喜欢 Emacs 的那一刻,我开始更多地了解我的环境是如何运作的。我成长了很多,仅仅因为我对一个工具感到兴奋。

45. 使用你的团队使用的工具

别太狂热。我超爱 Spacemacs,而且我可能一直都会在我的电脑上安装它,但我也安装了团队里最流行的文本编辑器,这样我就能和团队里的任何人一起结对编程了。

46. 贝壳是你最好的朋友

许多初学者都对 shell 感到畏惧,但如果你真正花时间去了解 shell,你就会意识到它是自动化工作流程的绝佳工具。

我花了很长时间才习惯这个 Shell,但一旦习惯了,我感觉自己和机器更加亲近了。它帮助我理解我的操作系统,而不是被工具的 UI 所限制,我感觉自己就像在和机器一起工作一样。

47. 谷歌搜索愚蠢的东西很正常

在我的实习和第一份工作中,每当我得用谷歌搜索一些简单的东西时,我都会感到有点尴尬。比如,每次我得用谷歌搜索 SQL 查询的语法,我总觉得这对我来说太难了。

这些天,我意识到即使是最优秀的工程师也几乎每天都会谷歌搜索。没有人能把整个行业都记在脑子里,所以在需要的时候依靠谷歌。把大脑空间留给重要的事情吧。

48. 老年人并不总是对的,他们也并非无所不知

当我开始担任初级职位时,我总是认为团队中的资深人员已经把所有事情都解决了,但我逐渐意识到,高级工程师只是比我失败次数更多的人。

如果您认为自己知道一些他们不知道的事情,那么挑战您的资深同事也很重要,因为毫无疑问,您所接触到的一些东西是他们尚未看到的东西。

49. 房间里最吵闹的人并不总是对的

作为一个行业,我们有一个坏习惯,就是相信那些大嗓门的人。我的职业生涯中就受益匪浅,因为正如我的朋友贾里德曾经说过的,我的性格很高大。

如果我能回到过去,告诉自己要更频繁地质疑那些声音最大的人,并避免在不合适的时候成为那样的人,我会的。

50. 多样性让每个人都变得更好

我一直很关心多样性,但直到我开始从事开源工作才看到多样性的真正好处。

多元化的群体每次都会比同质化的群体做出更好的决策。

这是我刚开始时就应该接受并努力倡导的事情。

再次声明,这份清单是为我刚开始写软件时准备的。它并不适用于所有人,而且大多数人可能不需要像我刚开始写软件时那样频繁地听到这些建议,但也许有些人会读到它并从中受益!

还有更多...

这些天我写了很多文章,我运营着一个播客,并且我已经开始发送一份关于我听到的所有精彩故事的新闻通讯摘要。

您还可以在Twitter上关注我,在那里我会制作一些有趣的表情包并谈论作为一名开发人员的感受。

文章来源:https://dev.to/jacobherrington/50-things-i-wish-id-known-at-my-first-developer-job-part-2-31b5
PREV
Git Rebase 简单解释
NEXT
我希望自己在第一份开发工作中就知道的 50 件事(第一部分)