我如何在发布作品集一周后就获得了一份网页开发工作

2025-05-24

我如何在发布作品集一周后就获得了一份网页开发工作

使用我的作品集作为面试的切入点

在花了几个月的时间学习前端开发(HTML、CSS、JavaScript、React 和 Git)并花了数周时间建立我的作品集(好吧,实际上是两个作品集,因为我不喜欢第一个作品集的样子)之后,我在开始寻找工作后不到一周就成功找到了我在 Web 开发行业的第一份工作。

一切都发生得非常快:

👉 在一个星期二的早上,我终于完成了我的作品集,并选择了在 LinkedIn 和 Seek.com.au 上找到的五个工作机会,发送了我更新后的简历以及作品集的链接。

👉同一个周二下午,我收到了我申请的其中一家公司的首席运营官的邮件,他说他很喜欢我的故事以及我在网站上(也就是我的作品集)的自我展示。他邀请我在同一周,也就是周四下午去面试。

👉周三和周四上午,我复习了一些 JavaScript 概念并练习了最常见的面试问题(稍后会详细介绍)。

👉周四下午,我与首席运营官和两位高级开发人员进行了长达两个小时的面试。面试中,我主要解释了自己是如何在 40 多岁时决定从电信工程转行到 Web 开发的。面试的技术方面主要集中在一些通用概念上,没有涉及太具体的内容。

👉星期五早上,我收到另一封电子邮件,说他们认为我的个人资料非常适合该公司,并向我发送了一个编码挑战,要求我在下周一交付并在他们的高级开发人员面前展示。

👉 我周末花了30 个小时完成编程挑战(GitLab 链接),周一早上我去了公司,回答了关于开发流程和编程方面的一些问题。他们关注挑战的具体部分,并且很想知道我为什么选择某些方法来解决问题。他们还对我的问题进行了修改和建设性的批评,我对此心怀感激,因为我想要学习和进步。

👉周一下午,我收到了工作邀请。首席运营官告诉我,团队对我的成绩以及我对改进建议的积极响应感到满意。我对提供的薪水很满意(我在面试过程中讨论过),并且渴望开始在公司工作。


🗞️新闻通讯 - 如果您想了解我的最新文章和有趣的软件开发内容,请订阅我的新闻通讯

🐦TWITTER——在Twitter上关注


背景

警告:分享我的经历时,我尽量避免显得傲慢或自恋。如果您在阅读本文时有这种感觉,我深表歉意,因为这绝不是我所希望看到的。

为了更好地评估这段软件开发工作的经历,我先来介绍一下自己。虽然在从事这份 Web 开发工作之前,我并非专业的软件开发人员,但计算机对我来说并不陌生。25 年前,我有了第一台电脑,并且自学了如何使用它。我还学习了电信工程,这让我对计算机网络和一般技术有了深入的了解。从 18 岁起,我就一直在尝试开发网站,但只是作为一种爱好,并没有认真对待。我没有接受过软件开发方面的培训,我所了解的少数概念都是通过摆弄技术获得的。

学习Web开发的过程

我会尽力长话短说尽可能真实地展现自己,所以我开始了。

坚持住...这将是一篇很长的文章!

我之前在一家科技公司工作了11个月,那是我第一份纯粹的软件开发工作。在此之前,我开发了一些Bash脚本,并对现有的代码库做了一些修改,大部分是用简单的语言编写的,例如,没有涉及纯面向对象编程(OOP)。

他们聘请我在一个网络模块中实现一个开源软件,以便设备能够发送和接收 SNMP 消息。问题是,尽管供应商说这个软件应该可以运行,但实际上却不行。这个障碍反而促使我接受了老板的建议:“你能开发一个针对该设备的 C 语言实现吗?”我唯一一次用 C 语言编程是在十多年前大学的时候,当时那是一个非常简单的应用程序,所以我试图满足他的期望,告诉他我会尽力而为,但没有任何保证说一定能成功。

于是,我专注于重新学习 C 语言,并在有限的知识范围内尽力做到最好。大约 8 个月后,我成功构建了一个功能实现。我记不清自己有多少次感到沮丧想要放弃,甚至患上了“冒名顶替综合症”。但重要的是,我没有放弃,最终完成了这个项目。然后我想:🤔 “考虑到这次经历,我为什么不干脆转行去做 Web 开发呢?这正是我多年来一直想做的事情。”

在我的整个职业生涯中,我曾多次胆怯地尝试成为一名 Web 开发人员。十几岁的时候,我读了一本 PHP 书籍,这本书让我能够为一位家人搭建一个简单的网站,也帮助我为其他一些客户搭建了一些简单的网站。我主要在 Microsoft Frontpage 和 Dreamweaver 上使用 HTML 和 CSS(是的,我年纪这么大了)。当我开始在大学学习电信工程时,我几乎完全放弃了这个爱好,大学毕业后,在之后的八九年公司工作中,我再也没有接触过 HTML 或 CSS。

我读过的书和参加过的课程

所以,在结束上一份工作后,我决定全身心投入到 Web 开发中。合同一结束,我就没有再找工作。相反,我开始全职学习 Web 开发(靠积蓄和妻子的工作生活,这对于一个习惯了自给自足的人来说,是一段糟糕的经历)。

0️⃣ 在从事这份工作之前的一年,我在 Udemy 上完成了Colt Steele 的 Web 开发者训练营(强烈推荐),这让我对成为一名 Web 开发者到底需要做多少工作有了全面的了解。之后,我深入研究了前端相关技术。

1️⃣ 我通过阅读Jennifer Niederst Robbins 的《学习网页设计:HTML、CSS、Javascript 和 Web 图形初学者指南》开始学习 HTML 和 CSS

2️⃣ 然后我通过阅读Marijn Haverbeke 的《Eloquent JavaScript,第三版:现代编程入门》(我还没有读完)和在 Udemy 上学习Jonas Schmedtmann 的《完整的 JavaScript 课程 2021:从零到专家!》(这是我迄今为止参加过的最好的软件开发课程!)来学习 JavaScript。

3️⃣ 完成上一门课程后,我参加了另一门 Udemy 课程:React - 完整指南(包括 Hooks、React Router、Redux),作者:Maximilian Schwarzmüller

4️⃣ 我还在这里和那里洒了一些 Git 和设计。

从我开始学习 HTML 和 CSS 到我有足够的信心建立自己的作品集,已经过去了四个月。

打造我能打造的最佳投资组合

从我在论坛和 Twitter 上看到的内容来看,我知道作品集会增加我在网络开发行业找到工作的机会,尤其是在没有直接经验的情况下。

为了最大限度地提高被录用的机会,作品集需要包括:

0️⃣ 一个自定义域名。我的情况是,damiandemasi.com是可用的,所以我注册了。我还注册了colo.codes域名,因为它是我在社交网络上的昵称。

1️⃣ 一个引人注目的英雄部分,通过“联系我”按钮和下载我的简历的选项立即号召行动。

2️⃣ 一个项目部分,至少包含两个项目。这些项目需要展示我的 JavaScript 知识和 API 的使用。此部分还应包含项目上线版本的链接,以及正在使用的项目的 GIF 或视频(类似演示),以及我创建项目的过程描述。所有这些的目的是展示我如何应对编码挑战、我做出的决定以及我如何处理问题。由于我作为 Web 开发人员没有商业经验,因此这部分是我展示我作品的唯一方式。

3️⃣ 一个包含至少三篇文章的博客版块。这些文章应该展示我如何描述技术概念,以及我用英语(英语不是我的母语)沟通得如何(好或差)。我发现这是一个完美的借口,可以更深入地探讨上一节中已经描述过的项目的一些具体方面,例如 React useStatehook 的不同用法。

4️⃣关于我的部分,可以轻松清晰地访问我的LinkedIn个人资料以及我的简历GitHub个人资料和 Twitter。尽管我的简历可以从英雄部分访问,但我相信冗余(不垃圾邮件)是确保作品集的重要部分(如简历)不被忽视的一种方法。在这一部分,我完全诚实地展示了我自己。通过这样做,我可以推开那些与我的性格不相符的雇主,并吸引那些真正喜欢我的雇主,从而加快了工作选择过程。我还简要强调了我熟悉的技术。最终,事实证明这是一种正确的方法,因为雇用我的公司的首席运营官和首席执行官都提到他们喜欢我在网上展示自己的方式。

5️⃣ 一个社交证明(评论)部分,用来证明我作为一名员工和团队成员拥有良好的业绩记录。我使用了我在领英上的推荐作为素材,并提供了我领英个人资料的链接,以便潜在雇主能够看到我并没有撒谎。

6️⃣ 最后是联系方式部分。我提供了三种不同的联系方式:电子邮件地址LinkedIn 链接和功能齐全的表单(感谢Netlify)。人们在联系潜在员工时有不同的偏好,所以我希望提供尽可能多的灵活性。

我的投资组合

正如你所见,作品集就像你职业生涯的宝库,它应该包含能够展现你工作方式的项目和文章。当我链接我的 Twitter、GitHub 和 LinkedIn 个人资料时,我确保它们都是最新的、完整的,并且在内容和外观上与我想要向世界展示自己的方式保持一致。

在我梦想成为 Web 开发者的历程中,创作作品集的过程是最漫长的。我先从构建项目开始,然后撰写一些文章,完善我的 GitHub、LinkedIn 和 Twitter 个人资料,确保我的简历保持最新并精简到一页纸,最后才开始创作作品集。

我经常使用Reddit来交流想法,并征求关于我的项目和作品集的反馈。我觉得合适的方法往往对别人来说并不一定适用。我发现/r/webdev/r/careerquestions子版块在整个过程中都提供了极大的帮助。

申请工作和准备面试

求职流程相当精简。我使用领英招聘Seek.com.au寻找与我当时知识水平相关的职位。根据经验,如果我精通职位要求的技术和技能至少一半,我就会申请。

我最终在周二早上申请了🖐五个职位,当天下午就收到☝️一个面试邀请,尽管他们招聘的是高级开发人员(但对这个职位的要求并不高)。其他四个职位我始终没有收到任何回复。虽然我在申请之前做了不少准备,但我还是忍不住觉得自己很幸运

得知自己获得面试机会后,我立即开始准备。我决定先针对最常见的面试问题进行训练,这样就能流利地回答这些问题;同时,我还要准备一些最重要的JavaScript 相关问题,因为我知道面试我的是资深开发人员。我只有一天半的准备时间,所以并没有太过紧张(这么短的时间内能做的事情真的有限)。

我用来准备面试问题的资源

对于一般的面试问题,我参考了Jeff Sue制作的这些精彩视频:常见面试问题及答案。他还制作了一个关于 LinkedIn 个人资料技巧的播放列表,可以推荐给大家。

对于有关 JavaScript 的技术问题,我使用了以下视频进行准备:

我还从学习 JavaScript 时所做的笔记中回顾了一些最基本、最重要的 JavaScript 概念

第一次采访

我提前五分钟到达了第一次面试,最终与首席运营官和两位高级开发人员进行了长达两个小时的面试。我们谈到了公司、我的职业经历、我从阿根廷移民到澳大利亚的原因以及我在澳大利亚的工作权利。

但最重要的问题是我选择软件开发作为新职业道路背后的原因。在回答这个问题时,我展现了我的热情和激情,而这正是他们所寻找的:一个对软件开发充满热情,愿意花几天时间尝试解决问题的人,并且愿意学习从初级开发人员晋升为高级开发人员所需的一切知识。

我在面试中清晰表达的另一个概念是我的成长心态:我知道自己还有很多东西要学,我不介意承认错误或被纠正,因为这是我学习的方式。如果今天有什么我不知道的,我会说出来,并且我会渴望学习。我也能接受批评,因为这是我改进工作的途径。在这个过程中,自我和骄傲没有立足之地。我把自己视为一个随时准备吸收知识的学生,同时也是一个随时准备讲解和分享知识的老师。我认为这是从事软件开发职业最明智的方式,他们也同意这一点。

总结一下,在采访中,他们主要关注以下几个方面:

  • 热情:他们想知道我是否会长期从事这个行业,以及我的目标是否是成为一名高级开发人员。
  • 成长心态:如果我能够很好地回应反馈。
  • 不放弃:坚持解决问题,直到找到解决方案。

编码挑战和第二次面试

第一次面试后,我收到了一个编程挑战。我需要用 React 开发一个颜色选择器应用,并满足一些特定的要求。那天是星期五,我需要在下周一提交演示,所以整个周末我都用来完成了。我最终花了30 个小时开发这个应用,虽然并不完美,但我还是满足了大部分要求。完成后(第二次面试前几个小时),我把代码发给了开发人员。

在第二次面试中,我被问到为什么选择某些方法而不是其他方法。高级开发人员不时地翻看代码,问我为什么要这么做。最终,我想他们是在评估我是否真的了解自己所做的事情。他们提出了一些建设性的批评意见我欣然接受了。尽管应用程序没有完全按照预期运行,但他们对最终的结果感到满意。

第二次面试后,我被告知开发人员对我在编码挑战中的表现以及我对批评(反馈)的反应感到满意,所以他们最终为我提供了他们公司的工作。

作为一名软件开发人员,我在最初几周学到的经验教训

在我作为软件开发人员工作的最初几周里,我面对着庞大的代码库(JavaScript、React、Ruby on Rails、SCSS 等),我仍然在一步步地思考Git 和 GitLab在专业环境中的使用方式,以及软件开发团队的表现。

我发现自己对知识有着不懈的渴望,我不禁感觉自己有点像个冒名顶替者,尽管我知道这是一种正常的感觉,而且在面试过程中,我非常清楚地表明了我仍在学习的事实。

旅程才刚刚开始

我的软件开发之旅才刚刚开始。这是一条需要经常学习新技术的职业道路。我可以想象五年后自己会成为一名高级开发人员,指导初级开发人员,甚至拥有自己的创业项目。



订阅我的新闻通讯

🗞️新闻通讯 - 如果您想了解我的最新文章和有趣的软件开发内容,请订阅我的新闻通讯

🐦TWITTER——在Twitter上关注

文章来源:https://dev.to/colocodes/how-ive-got-a-web-development-job-one-week-after-publishing-my-portfolio-3o6g
PREV
我分享了我的 Notion 模板,其中包含超过 440 页的 Web 开发内容
NEXT
ReactJS 钩子 useState 的 5 个用例