我是如何在没有学位或训练营的情况下获得第一份 Web 开发人员职位的:经验教训、资源和技巧为什么我没有去训练营或重返大学?

2025-05-27

如何在没有学位或训练营的情况下获得第一份 Web 开发人员职位:经验教训、资源和技巧

我为什么不去训练营或者重返大学?

替代文本

我刚开始在西雅图工作的时候!那天天气真好!

我一直想坐下来,写下我如何在没有大学学位或训练营经验的情况下,转型科技行业,最终成为一名 Web 开发人员的整个历程。我严格使用免费或低成本的在线资源。

我的经历包含了许多错误和失败,但最终我觉得这对我的成长至关重要。

我希望您发现这篇超长但必要的文章很有价值,如果您有任何问题,请随时在下面留言。

我的背景

不必过多赘述我的背景,我今年23岁,在南加州出生长大。我是家里第一个高中毕业的人。大学一年级时我辍学了,最终失去了方向和目标。我开始在梅西百货和科尔士百货等地方做收银员。我感到很尴尬,不是因为我从事零售业,而是因为周围的人都希望我成为一名成绩优异的大学生。多年来,我一直对这份工作缺乏热情。

先坠落,后飞翔

我最初是如何接触编程的,现在已经是个谜了,因为我已经忘了。我记得自己受到了 Aaron Swartz 的故事的启发,他是一位自学成才的工程师,也是 Reddit 的联合创始人。

2017年2月,我第一次尝试通过Codecademy的免费Python课程学习编程。但那简单的语法让我望而却步,立刻感觉自己学无止境。我当时想:“数组有什么用?函数又难懂。我学不会。” 那是我第一次接触计算机科学。小时候,我甚至从未像其他人一样在Myspace或其他社交网站上玩过HTML和CSS。我完全是新手。所以我放弃了,退出了。除了妈妈和一个朋友,我没有得到最有力的支持。大多数人认为我的技术不够好,因为数学从来都不是我的强项,而且我只在客服部门工作过。

促使我追求科技的动力源于2017年7月18日父亲的去世。实际上,他鼓励我继续从事科技行业。他对软件开发一无所知(我当时也一样),但他经常鼓励我拥有自己的事业,掌控自己的人生。每当我学到新东西,他都会为我加油。

2017年秋天,当我发现Web开发后,我重新开始学习编程。当时我以10美元的价格购买了Colt Steele的Web开发课程。正是在那时,我豁然开朗。我意识到前端开发很适合我。我开始构建落地页,并且真的爱上了它。

我承诺参加#100DaysOfCode挑战(这是我第一次承诺),这个挑战要求我每天抽出时间学习和编程。我经常“失败”,因为我经常因为全职工作和冒名顶替综合症而忘记进度或不得不休息,但我成功的关键在于我坚持了下来。即使我休息了一天或一周没有编程,我仍然会继续学习。

我为什么不去训练营或者重返大学?

我当时身无分文,哈哈。我当时在沃尔玛和波士顿市场之类的地方做全职工作,勉强维持生计。我没有足够的资金去参加训练营或大学,无论是全日制还是非全日制。我负债累累,而且很穷,根本无法实现这两个目标。我强烈建议任何考虑参加训练营的人仔细阅读收入分成协议。在做出选择之前,务必了解相关法律规定。

自主学习意味着你必须筛选大量的资源来构建自己的课程,但它是三种方式中成本最低的,这也是我选择它的原因。你在训练营或计算机科学课程中学到的任何东西都可以在网上找到。网上有大量的优质资源,你只需要有意愿去寻找你想要的东西。

你可以通过大量的 Slack、Discord 社区和 Twitter(关注 #100DaysOfCode、#CodeNewbie、#DevDiscuss 标签来找到你的同伴)建立人脉并寻求社区支持。我并不是说这一定能实现,但绝对并非不可能。此外,FreeCodeCamp 也为来自世界各地的人们建立了 Facebook 群组,你可以在那里组织或参加聚会。

我的建议是,了解并探索你的选择。权衡每个选项的利弊。每个人都有自己的优先事项和责任,你也一样。

第一次面试,第一次失望

我的第一次面试是在2018年3月,应聘的是React Native中级开发人员的职位。说实话,我完全不符合这个职位的要求。我用React开发过几个项目,但我的JavaScript知识不足以胜任这份工作。

第一次面试是文化筛选,通常会询问你的背景和目标。这是他们评估你个性的方式,看看你的期望是否符合他们的要求。

技术面试环节,他们会从技术角度考察你是否符合他们的要求。通常,技术面试是你和面试官共同努力的结果,你需要尝试解决问题。面试官总是说,他们不指望你能找到答案,更看重的是你如何表达自己的思维过程。我在这方面表现得很糟糕。我经常沉浸在自己的思绪中,导致整个面试过程我都保持沉默。我基本上把面试官的声音屏蔽了。

无薪实习:赤裸裸的真相

完全免责声明:我不支持无薪实习。无偿劳动本质上是不道德的,这是无法回避的。但与此同时,我需要在简历上增加这段经历。我完全理解那些从事无偿工作的人。事实就是如此。我们都在努力达到最终的目的地,拥有带薪工作、优质的医疗保健和自给自足的能力。所以我永远不会因为任何人为开源做出贡献或无偿工作而羞辱他们。你只需要明白,你的技能是有价值的。我把它视为一个垫脚石,但我永远不会把它推荐给任何人,因为从技术上讲,这是不道德的。省略我这段经历既不透明,也不符合故事的真实性。

我建议那些想要积累经验的人,为身边的人搭建网站。你可以尽快开始自由职业。学习WordPress或Shopify可以增加你获得客户的机会。这需要一定的心态,但关键在于开始为真实的人搭建网站。这本身就是你可以写进简历的经验。

回到那份无薪实习。实习地点在佛罗里达州奥兰多市中心的一栋商业大楼里。我有个很棒的朋友,他也在学习编程(更侧重于后端,NodeJS),他帮我和他一起找到了实习机会。我从2018年夏天开始实习。我们当时正在为一位爵士音乐家搭建一个网站。这份实习工作只持续了一个月左右,原因你很快就会知道。

更多面试机会,更多成长机会

2018 年的夏天真是太棒了。我终于获得了更多面试机会。我重点关注了两个职位:一个是奥兰多市中心一家科技公司的 Angular 职位,另一个是西雅图一家代理机构的职位。

Angular 的面试过程非常紧张,但我当时的阶段主要是开发一个 CRUD(一个允许用户创建、查看、更新/修改和删除的简单应用程序,例如一个待办事项应用)。他们希望我使用 Angular 1.5。我之前只用过 React,所以这迫使我学习一些新东西,这至少可以说是一个挑战。

在西雅图那家公司的另一场面试就直接多了。我得通过Skype和团队见面,深入探讨我手头上的一个项目,之后才能收到录用通知或拒信。我从其他面试经历中了解到,你面试他们的时间比他们面试你的时间还多。我向CEO询问了工作与生活的平衡,以及该职位在3/6/12个月内的目标和期望,并询问了首席工程师的沟通风格、对导师指导和入职培训的看法等等。

工具和资源

这些是我在编程过程中实际用到的资源。大部分资源都是免费的。自主学习最大的缺点是,在几乎没有任何指导的情况下,自己构建课程。我花了几个月的时间尝试了各种不同的资源,才找到适合自己的内容。我必须找到自己的学习风格,这需要我不断尝试各种视频教程、课程和书面指南。

Udemy

  • Colt Steele 的 Web 开发者训练营- Colt 为我树立了教学标杆。他的授课风格以及将技术主题清晰易懂地讲解的能力,帮助我理解了 Web 开发的基础知识。
  • JavaScript:理解奇异部分- 强烈推荐给任何想从事 Web 开发的人。我再怎么强调这门课程也不为过。你将学习 JavaScript 的内部工作原理,并构建自己的库来巩固你对核心概念的理解。这门课程实际上能帮助你更好地理解像 React 这样的框架和库,并且肯定能让你更好地应对面试中的技术问题。

YouTube

  • Traversy Media - 整个频道包罗万象。Brad Traversy 有一整套免费的 PHP 基础知识课程。你可以找到涵盖众多 Web 开发主题的教程,我强烈建议你订阅。
  • FreeCodeCamp - 自学开发者的最佳伙伴。在这个 YouTube 频道上,你可以找到许多精彩的课程,涵盖网络/应用渗透测试(适合对网络安全感兴趣的人)、人工智能/机器学习、Python、JavaScript 等等。
  • Kevin Powell - 如果你想更好地理解 CSS,他的频道内容丰富,是前端开发人员的必看频道。
  • Coding Phase - 你会发现他的 YouTube 频道和课程都很有价值,因为他创作的每一部作品都给人一种清新亲切的感觉。他的项目也非常原创,与众不同。
  • Hamza Mirza - 他有很多很棒的 React 教程。如果你已经学习了 React 的基础知识,或者刚刚开始使用这个库,并且正在寻找项目灵感来巩固你的理解,那么他的频道可以为你提供一些很好的指导。

大优惠

替代文本
2018年7月18日,出于很多原因,这天意义非凡。那天是我父亲去世一周年的纪念日。也是我知道自己能否在这家名叫Mercutio的公司找到工作的日子。你可以想象,我当时紧张极了。我蜷缩成一团,泡在滚烫的浴缸里,听着音乐让自己平静下来。我清晰地记得当时的情景。我全身心地投入到实现这个梦想的事业中。我已经习惯了人生中太多的放弃和失败,而学习编程是我坚持的第一个习惯。就在这些想法在我脑海中盘旋的时候,电话响了。西雅图的区号。我深吸一口气,接了起来。

CEO首先跟我讲述了他从团队那里得到的所有好评。我真希望自己能记住,但我记不住,我的心跳得厉害。然后他停顿了一下,说:“我想给你提供……”我几乎确定自己当时把电话静音了,然后尖叫起来——哈哈,我终于拿到了我努力争取的这份工作。我默默地哭了,他一字不差地跟我讲了所有福利:薪水优厚,全额医疗保险(牙科、视力等等),还有一份搬到西雅图的安置金,以及一个全新的开始。我连连道谢,简直不敢相信。我月底就能开始工作了。我甚至不担心要独自一人搬到一个我从未去过的城市,这对我来说根本不重要。我只想抓住这个机会,看看生活会把我带向何方。

我的第一天

替代文本
作为一名专业的前端开发者,我第一天的工作就是一切。你的第一天很可能包括设置你的环境,并确保你拥有开始工作所需的一切。全面的入职培训对每个人来说都至关重要,尤其是初级工程师。

作为一名初级工程师,我的日常工作包括修复 bug 以及结对编程完成一些更具挑战性的任务。一旦我展现出自己的能力,我就能独自维护一个大型项目。

小小的挫折,是为了伟大的回归

替代文本

宇宙:“哦,你以为从现在开始一切都会一帆风顺吗?谦虚点吧。”

不幸的是,由于预算削减,我的第一份工作在冬天就被解雇了。我当时心想,哦不,哈哈,我得去一个远离家人的陌生城市。不过还好我当时很聪明,把大部分工资都存了起来,所以在准备下一步的时候,我有足够的钱支付三四个月的房租。退出这个行业可不是个可行的选择。我当时想:“你现在已经有专业经验了,而且你现在在科技最好的城市之一,你走到今天这一步,不是为了再屈服于另一个障碍。” 我坐下来,思考我真正想要的下一份工作是什么。

我现在该做什么?

我学会了编程,找到了一份专业工作,搬到了一个全新的城市,然后又被解雇了。我现在该怎么办?

替代文本

我有幸担任微软 Build 大会的品牌大使,与一些非常优秀、才华横溢的人一起,他们现在是我的家人!

我目前在家工作,为两家公司担任前端工程师。我目前住在佐治亚州,正在搬迁到亚特兰大。我还在担任会议发言人,经常出差。我还决心要真正磨练我的内容创作技能。我很高兴

替代文本

我的第一次国际演讲是在一周前在柏林举行的。

我正在创建Patreon,以便能够专注于继续为社区创建资源,例如#AnAlgorithmADay 挑战,这是一个通过学习数据结构和算法来提升工程师水平的日常挑战。我将撰写和分享各种主题的视频,涵盖大 O 符号、递归、堆栈和队列,甚至动态规划。在技术方面,我最大的恐惧就是技术面试。虽然我仍然认为面试过程存在缺陷和局限性,但我希望始终利用我的平台帮助其他人与我一起进步和成长。我也希望通过 Patreon 定期举办问答环节和在线研讨会。

所以,白天做自由职业,晚上创作技术内容,这就是我正在努力实现的梦想。我已经完成了四分之三了,哈哈。

反思:我希望在编程之旅中完成的事情

  • 可访问性是首要任务,而不是事后诸葛亮:在你的职业生涯中,尽早致力于编写可访问性代码。养成习惯。用语义标记标记资源。
  • 参加并完成哈佛大学的免费计算机科学课程:这是一个可选的建议,但我觉得我应该在旅程之初就选这门课程,因为它会介绍计算机科学的概念,而且评价也非常好。而且它是免费的,哈哈,可以在edx.org上找到。随时报名,即使是没有编程经验的人也非常适合。
  • 更专注于原生 JavaScript:技术面试通常考察你对原生 JavaScript 的了解,不涉及任何框架或库。我强烈建议你看看 Sarah Drasner 的 Object Explorer 和 Array Explorer。持续尝试不同的对象和数组方法。说实话,在我看来,这比学习所有框架更有利于你作为程序员的成长。
  • 创建 GitHub Repo 来记录我的日常学习:我推荐这个有很多原因,但主要是因为 1)增加 GitHub 活动,这受到雇主的青睐;2)帮助巩固您对在 Git 上创建分支和进行提交的理解,这是您作为开发人员在工作中经常每天要做的事情。
  • 开始写博客:写下你学到的东西。你不必是专家才能开始分享知识。只要乐于接受反馈并不断寻求进步即可。你可以随时修改和编辑你的帖子。欢迎参考我关于学习 Python 的文章。发布你的笔记,撰写一些小教程等等。我认为这会对你作为一名工程师的成长产生指数级的影响,因为它有助于提升你的技术和社交沟通能力。你越善于解释你所做的事情,你对你加入的任何团队就越有价值。
  • 更多休息,更少倦怠和焦虑:糟糕的时间管理导致了倦怠。我白天长时间工作,然后回家又要无休止地写几个小时的代码。一次性吸收这么多知识并不明智。如果我设定更灵活的目标,并给自己更多休息时间,我就能完成更多。
  • 从未将我的旅程与他人比较:这就是我过度劳累、精疲力竭的原因。我看到其他人拿着六位数的薪水,心想为什么我不能?如果你也到了那个地步,就退出社交媒体,休息一下。我努力提醒自己,每个人都有自己的季节。我希望我当时能抽出时间欣赏自己的进步,所以请别忘了祝贺自己。你正在迈出有力的步伐,在这个世界上开辟自己的道路。

希望你喜欢这篇长篇故事,哈哈。希望你觉得它有价值。

欢迎在Twitter上关注我,阅读我在这里的其他帖子,并请考虑为我的Patreon做出贡献,这样我就可以为 2020 年的大家制作大量内容,当然也可以分享这个故事。

我讲述我的故事的目的是为了告诉大家,任何人都有能力在世界上找到自己的道路,并且可以克服挫折。

文章来源:https://dev.to/taeluralexis/how-i-landed-my-first-web-developer-role-without-a- Degree-or-bootcamp-lessons-learned-resources-tips-39ag
PREV
我是如何开始在互联网上生存的
NEXT
Git 拆解:如何从主分支创建分支并进行首次提交!Git 拆解系列隆重推出!