一天之内从高级到初级——回顾我作为专业开发人员的最初几天

2025-06-07

一天之内从高级到初级——回顾我作为专业开发人员的最初几天

十月初是我加入Pipedrive公司的三周年纪念日。正因如此,我开始回想起我的初级时光。

2009年至2016年期间,除了一些例外,我非常活跃地从事自由职业,担任设计师和开发人员。这在高中和大学期间都是很好的赚钱方式,让我有机会与人沟通并解决他们的问题。在此期间,我创建了50多个网站(主要是WordPress)。

在爱沙尼亚服兵役期间(这是强制性的),我开始意识到自由职业只能让我走这么远。他们创建的网站通常技术上不太复杂,设计也不再像以前那样让我感到兴奋。正因如此,我决定服完兵役后,找一份全职的开发人员工作(我曾在2014年尝试过做设计师,但后来发现自己更喜欢开发)。

求职的过程很有趣。我的简历标题是“高级前端开发人员”,虽然我也可以称之为“高级全栈开发人员”,因为我精通HTML、CSS、Javascript、PHP、MySQL和MongoDB。此外,我还准备了一份丰富的作品集来证明我的技能。

我联系了多家机构,他们为我开发简单的WordPress网站提供了丰厚的薪水。为了提升自己的开发能力,我还申请了一些处理更高级技术问题的公司。在完成其中一家公司的测试工作后,我得到的反馈是,我最多只能算初级员工。难以置信的是,上述几家公司竟然把我看作是中级或高级员工,于是我又申请了Pipedrive,这家公司曾经是(现在仍然是)爱沙尼亚一家理想的雇主。

第一次面试很顺利。接下来是 Backbone 的作业。由于我之前从未写过 Backbone,所以我随便找了一本这方面的书,学习了基础知识,并运用学到的知识编写了解决方案。第二次技术面试,我信心满满。我们回顾了我的测试代码,嗯……它并没有我想象的那么完美。代码运行良好,但面试官指出了一些问题的边缘情况。此外,代码结构也存在缺陷。尽管如此,经过几次额外的面试后,我还是获得了初级前端开发人员的职位。

我面临着一个艰难的决定:是接受优厚的薪水,继续以中级职位的身份为各大机构创建简单的WordPress网站,还是在Pipedrive担任初级职位。最后,我想有些公司把我看作初级职位肯定是有原因的,于是我接受了Pipedrive的邀请。

我第一个念头是:“……添加查询参数的任务?我两分钟就能搞定。” 几天后,任务仍在进行中。

几周的入职培训后,我开始了工作。第一个任务是检查我们单体应用中是否存在一个查询参数。我的第一个念头是:“……添加查询参数的任务?我两分钟就能搞定。” 几天后,任务仍在进行中。我之前从未听说过或使用过单元测试、Git、持续集成、代码审查等等。此外,搭建整个开发环境也花了一些时间。信息量实在太大了。最终,我成功上线了任务,感觉棒极了。对其他人来说,这只是一些微不足道的单行代码,但对我来说,在经历了测试、代码审查等所有麻烦之后,这真是一项真正的成就。

我终于明白,我之前作为自由职业者的经历或许能让我积累大量的技术知识,但并非所有知识都适用于我的工作。而那些适用的知识也需要进一步完善和发展。

在最初的四个月里,我开发了很多前端项目,既有小bug,也有新功能。我记得我经常有一种“给我更大的任务,我能搞定”的感觉。例如,有一项任务需要我使用 JavaScript 和 CSS 来实现一个标题,滚动过它的位置时标题会自动固定。我估计这个任务需要几个小时才能完成。很简单。但实际情况是,在提交代码审核后,关于代码结构、变量名、使用基于仓库的标准而不是我自己的逻辑的评论开始涌入。此外,在测试阶段,我们发现了一些无法正常工作的极端情况。我记得一位开发人员说过:“仅仅让事情正常运转是不够的,它们必须完美无缺。”我想,正是在那时,我突然意识到,团队合作开发产品的意义不在于快速想出解决方案,而在于创建可维护、结构化、遵循团队(或公司)设定的标准的解决方案,最重要的是——它们必须有效。经历了那次经历后,我终于明白,我之前作为自由职业者的经历或许让我积累了大量的技术知识,但并非所有知识都适用于我的工作。而那些适用的知识,也需要进一步完善和发展。

我的经理建议我阅读不同的书籍,参与一些业余项目,并把每一项任务都当作学习的机会。我照做了。像《代码整洁之道》、《代码大全》、《Eloquent Javascript》、《Javascript 精髓》(因为我们主要使用 JavaScript)、《Javascript 模式》、《构建微服务》等书籍给了我很多理论知识。我把这些知识运用到我的自由职业、业余项目以及日常工作中。

...离开电脑,清空思绪,第二天继续工作

我也开始投入更多额外的时间——即使很累或者完全卡住了,我也不会在达到一个里程碑之前下班。没错,这很好,因为我有更多时间去探索不同的问题解决方案,但回想起来,我建议不要这样做——更有效的做法是离开电脑,清空思绪,第二天继续工作。

而且,面对陌生的人和陌生的问题,我真的很害怕。不过,我做得越多,就越感到安心。

随着时间的推移,我变得更加自信,开始更多地参与后端解决方案的开发,这需要与其他团队进行更多沟通。我注意到自己描述技术问题和提出问题的能力需要提高。此外,面对不熟悉的人和不熟悉的问题,我感到很害怕。然而,我做得越多,就越感到自在(虽然我描述技术问题的能力仍然很差)。

在初级岗位待了将近一年之后,我的经理建议我承担更多责任。由于我对 NodeJS 和 Redis 应用相当熟悉,我决定承担一个与路由系统相关的小任务,并彻底重构了它。在代码审查中,我的一个队友问我:“等等!你还是初级?初级员工不会写那样的代码。” 这句话是我开发生涯中遇到的最棒的事情。一个月后,我升职了。

我初级阶段的经历告诉我,独立完成项目和团队合作之间存在巨大差异。如果你只做自己的事情,很容易被称为高级开发人员。但当你从事需要协作、包含测试和评审,并且会影响实时用户的工作时,情况就完全不同了。

作为一名初级员工就像坐过山车一样——你会感到害怕,你必须学习很多东西,你每天都会经历多次失败和成功。

初级程序员就像坐过山车一样——你会感到害怕,你必须学习很多东西,每天都会经历无数次的失败和成功(即使你是一位经验丰富的开发者)。你所处的环境充满未知,但凭借周围人的帮助和努力,你一定能挺过去!只要你确保全力以赴,就一定能成功!

我在 Pipedrive 工作三年了,感觉自己已经是一名优秀的中级开发人员了。尽管如此,我始终努力提升自己——阅读书籍、文章、文档等等。永不偷懒,永不停止学习!提出问题,确保理解所有内容。找到自己的弱点,并加以改进。找到自己的优势,并进一步提升!

文章来源:https://dev.to/kethmars/from-senior-to-a-junior-developer-in-one-day-looking-back-at-my-junior-days-3p41
PREV
分享你的作品集 - 我会在视频中回顾
NEXT
极度主人翁精神——推动职业发展的心态