自学编程指南(以及找工作指南!)第一步:搞清楚你到底在做什么 第二步:选择一个职位,然后倒推 第三步:提升你的技能 第四步:建立你的作品集和简历 第五步:申请工作!到这一步

2025-06-07

自学编码指南(以及找工作指南!)

第一步:弄清楚你到底在做什么

第 2 步:选择职位名称,然后倒推

第三步:培养你的技能

第四步:建立你的作品集和简历

第五步:申请这些工作!

至此

单行道标志图片

和大多数人一样,我根本没有自学编程的计划。这个决定是在2015年我失去客服工作之后做出的。

这种转变来得自然,就像爱上了一个灵魂伴侣。我们是旧爱——大学时我曾尝试过继续这段感情,但时机不对。这并非易事!但有了如此丰富的情感驱动,这段经历就轻松多了。

在我开始自学 Web 开发之后,经过大量的努力,大约 10 个月后,我得到了第一份科技工作。

请相信我,如果我能做到……你也可以。

我确信网上有很多关于这个话题的指南——如何自学编程并获得你的第一份编程工作。但这篇文章是我写的,所以有所不同。我想你会喜欢我的观点。:)

现在,我认为将整个流程精简为5个步骤未免过于简化了。我会给你大致的思路。你有几个选项可以填补空白,说实话……你应该两个都做!

选项 1:依靠社区的支持
选项 2:获得一些专门的帮助和指导

其实两者都是我的专长!我是一个充满热情的社区建设者,我深知看到和听到那些正在努力实现目标的人是多么重要。

选项 1是你作为开发者成长的重要部分。你需要一个人际关系网。这个行业其实非常棒,而且充满乐趣。我们与科技共同成长,也彼此进步。我们在会议上见面。我们每周都会参加 Twitter 聊天。这太棒了。

第二种选择有一些门槛。本质上,它需要有人——最好是一位经验丰富的教练,深刻理解你的处境和目标——牵着你的手,了解你,和你一起探索你的梦想,规划你从现状到理想目标的旅程。然后,你带着一张通往目的地的地图和路径,深入学习技能。到那时,艰苦的努力就只属于你自己了。

我喜欢与新手程序员一对一地合作,但当然,考虑到所需的关注度和专业知识……这并非免费。我们大多数人会尽己所能,通过博客文章、播客节目、书籍等方式支持新手程序员——但有些人更愿意付出更多时间和精力!因此,选择 2 是对自己的一项投资。

所以,这确实是一个过于简单但仍然相当全面的概述,介绍了自学编码以及获得第一份开发工作的过程!

第一步:弄清楚你到底在做什么

男人说的 GIF

我专门为这段旅程的早期阶段写了一本14页的指南,因为这是最容易被忽视的部分。这也是很多人最终放弃的原因——他们根本没做好最初的准备工作。

如果您正在寻找第一份工作并彻底改变职业,请继续下载我的指南“学习编码之前需要了解的 10 件事”

首先,你为什么要这么做?

你从小就梦想着编程吗?或许你只是听说编程代表着未来,考虑到科技发展如此迅速,这对你来说很有道理,所以你想搭上这趟列车。无论你的理由是什么,你都需要尽早确立这一点。当遇到真正挑战时,它将成为你前进的动力。

你需要为自己制定预算,我知道这很糟糕,因为我也讨厌预算。如果你正在换工作,你需要确保自己能够以尽可能小的压力完成转型。编码本身就够难的了……所以要做好应尽的准备,不要给自己增加负担。

你住的地方有 Web 开发行业吗?如果有,那就去了解一下,开始和大家交流。参加一些聚会。认识一些和你志向相似的人。

询问该地区招聘公司的情况。人们喜欢开发工作吗?他们的薪水是多少?

如果您所在地区没有活跃的开发行业,您需要发挥创造力。如果您愿意,远程工作或许是一个不错的选择。或者,如果您拥有资源和灵活性,那么搬迁到新城市可能也会是您新职业发展过程中令人兴奋的改变。

步骤 1 的全部目的是确保如果你正在找工作,你不会在没有先了解情况的情况下就贸然行动。

如果你贸然行动,你可能会发现自己在账单到期、意外事件发生时,以及一般而言……生活发生时,感到毫无准备和压力重重。

第 2 步:选择职位名称,然后倒推

斯蒂芬·科尔伯特 (Stephen Colbert) 对巴拉克·奥巴马 (Barack Obama) 说的 GIF:

好吧,我的做法和很多人不一样。当人们开始学习编程时,我听到最多的问题之一就是“我应该学什么?”(还有“我应该在哪里学?”)。

请记住,你现在甚至还没有开始写代码。或者你只是在摸索,学习基础知识,但还没有真正开始构建项目。你仍在打基础,学习你的工具及其背后的用途。这是一个非常重要的阶段!

尽管有这么多工具,您怎么知道哪些工具适合实际的职位呢?

学习一堆毫不相关的技能和语言,直到基础水平,然后发现它们实际上并不能帮你找到工作,这难道不糟糕吗?或者,你甚至需要通过额外的学习来充实其中的几个技能,才能在你所在地区找到有竞争力的工作?

是的……这就是你的女孩所做的。

快速、相关的旁白

我学了HTML,然后又学了CSS。一开始我有点讨厌CSS,但我们慢慢适应了,现在感觉还不错。到目前为止还不错,是吗?

然后,我开始学习 JavaScript。像变量、循环甚至一些基本数据结构这样的基本工具,我都还算熟练。但是,总的来说……对我来说,事情开始变得艰难起来。

狗在航天飞机中漂浮的 GIF,说

我有非语言学习障碍。说来也怪,直到我努力学习了10个月后才找到第一份工作所需的技能,才被诊断出来。这让我更加理解我的挣扎。

那时候,算法把我吓得魂飞魄散。freeCodeCamp 的算法极具挑战性。我过去的很多学习创伤都涌上心头。我简直无法将一个心智模型融入我神经非典型大脑的语境中,让我“理解”它,我为此沮丧得哭了好一阵子。

慌乱中,我偏离了正轨。或者说,当我开始学习 Ruby 时,我“走上”了正轨。又回到了原点。再次惊慌失措。

换成了 PHP 和 WordPress。其实我挺喜欢这两个的,现在主要用它们和 JavaScript 一起用。结果我又累到不行,最后累得筋疲力尽地倒下了。我到底是怎么了?

我在写这篇文章的时候休息了一段时间,因为我经历了一场存在危机,怀疑自己是否适合做这件事。

这个故事有点像个警示故事,它告诉我们,如果做事不按顺序,或者没有一个初始框架,可能会发生什么。如果你想要一份工作,你就必须能够培养这些工作所需的技能。

所以我的问题是:为什么不先猜测一下,然后先弄清楚自己想做什么样的工作呢?

当然,这种情况会随着时间而改变!我们不仅作为开发者,而且作为人,都会随着时间而成长和变化。我们对自己有了更多的了解,也希望改变自己的目标。但从某种指南针开始确实很有帮助。

如何解决这个问题?你需要深入盘点自己的梦想、激情和现有技能。通常,在别人的帮助下评估会有所帮助(嗯,比如我)。我们拥有别人所不具备的技能和天赋……而我们自己也常常忽视这些。

看看你所在地区有哪些工作机会。在Indeed等求职网站上搜索。在本地在线论坛上提问。

但这里重要的是要注意列出的技能:技术和人际交往技能。

是的,人际交往方面的问题。我们缺乏人际交往技巧,比如有效沟通、同理心、同情心和包容性,这些问题已经够多了。别再来这里了。

但是这些编码技能将为您提供指导和通往目的地的道路,这样,如果您改变目标,您至少知道您偏离了什么以及要去哪里

第三步:培养你的技能

两个穴居人惊奇地看着另一个穴居人建造轮子和轴的 GIF

到目前为止,你已经对当地的开发行业有了一定的了解,并且对职位名称也做了研究。你也清楚自己在获得第一份开发工作时需要掌握哪些技能。

现在,是时候培养你的技能了。

需要注意的是,你将在进行第 4 步的同时进行此步骤,并与你可能正在做的任何其他事情同时进行(我们希望限制这些事情)。你需要始终学习和提升你的技能,同时还要运用这些技能构建项目。

我通常建议 Web 开发者从前端开始,因为所有道路都通向用户体验。但这实际上会根据最初的目标而有所不同。看看首先识别它们有什么帮助?

例如,如果你的目标是处理数据,那么你的起点就会有所不同。也许你的目标是学习 Python,因为 Python 本身就非常擅长数据管理。根据你的最终目标,你自然会规划不同的技能提升之旅。

重要的是,无论你去哪里,你都要有一个路线图。你要避免学习那些你不需要的东西,因为它们会妨碍你尽快找到工作。

你应该列出一份你认为对你有用的资源清单。了解自己如何最好地吸收信息是这部分工作中绝对不可或缺的一部分。如果你觉得视频学习效果最好,就不要把时间浪费在书本上。再次强调,时间至关重要,所以你不仅要学习,还要学得聪明、高效、有效。

花大量时间在这部分。你正在向工具箱中添加工具,一旦你开始构建你的作品集,你每天都会用到它们。

第四步:建立你的作品集和简历

记住,第四步是与你的技能提升同步进行的。你每天都在学习,并学以致用。当然,我发现这里有几个非常重要的部分,是编码学生容易忽略的。所以,让我快速地讲解一下!

热门提示™️#1:项目让你作为自学成才的程序员获得优势™️

你没有麻省理工学院计算机科学专业的长简历。我也没有。但是,就像……我们真倒霉?

不。

作为一名自学成才的程序员,即使没有简历来佐证你的技能,你也需要展现你的实力。所以,即使你也会专注于简历,但你真的需要花时间打造作品集。即使没有其他,你的简历也会随着你的技能积累和作品集一起成长!

热门提示™️#2:您不需要大量的项目!

首先,你不需要做大量的项目。我想很多新手一想到要创建大量的项目才能展示自己的知识就不知所措。

这就是为什么我们要将这些技能与实际职位描述相结合。即使你只构建了一个项目,并巧妙地维护它,你也会远远领先于你的同行。

好的,你创建了一个项目,在 GitHub 上提交了一些代码,现在感觉需要开始下一个项目了。等等,pahdna。

你是否从这个项目中获得了最大的收获?因为你学习的技能是为了工作,所以它们很可能会组合在一起。而且你很可能可以将许多新学到的技能运用到同一项实践中。

假设你正在努力成为一名前端 Web 开发人员。你刚刚建立了你的第一个网站。

您能否将网站转变为网络应用程序,以便用户可以登录?

如果您没有以移动优先的方式构建您的页面(您应该这样做!),那么如何将其重构为移动优先?

花时间审视你的项目,它不仅是一项资产,更能让你了解自己的内心世界。这对招聘经理来说至关重要。他们想知道你的想法,这样才能判断你的项目是否能为公司和团队带来价值。

因此,为了利用 Hot Tip™️#2...

热门提示™️#3:成为一个讲故事的人,而不仅仅是一个程序员

除了记录你的旅程之外,还有什么更好的方法可以向人们展示你的大脑内部运作?

找工作最容易被忽视的资源之一就是……鼓声响起……你的 README.txt 文件。

这部分不应该只是告诉人们如何运行你的程序。你应该告诉招聘经理:

  • 为什么添加该功能
  • 为什么放弃添加该功能并将其删除
  • 您下一步的扩展计划
  • 您希望看到的反馈
  • 您在每个步骤中学到的内容
  • 你感到自豪的事情,以及你可以做得更好的事情

我们为什么要羞于写自己的故事?我们没时间写——我们得给你找份工作!

甚至让它变得有趣。让它变得史诗般。你的旅程就是史诗般的。

但是,是的,利用您的 README.txt 文件,您将对查看您的作品集并考虑雇用您的人更有吸引力。

第五步:申请这些工作!

这一步要解开的东西太多了,一篇文章根本讲不完!😆 所以,我就直接给你们爆点儿价值炸弹吧。

热门提示™️#1:立即申请

希亚·拉博夫大喊的图片

我最常被问到的一个问题是:“我应该什么时候开始找工作?”我的回答大致是“昨天”。

认真的。去申请吧。他们最坏的回答也不过是“不”。

所以,作为一名自学成才的程序员,申请工作时要注意以下几点。你需要做得正确,并且真正地展现出来:

  • 你的学习意愿
  • 迄今为止的成长
  • 您对行业(特别是公司)的热情

与招聘经理沟通时,你需要诚实地说明你的现状,并展示你的成就。这两点会让你受到关注。你展现了自身的脆弱,同时也能在一定程度上控制自己在面试官心目中的形象。

还有一件重要的事情要记住:申请一家公司,并不是一次性的工作。很多新手都误以为是这样。

好吧,假设你面试被拒了。现在,你有一个机会可以寻求反馈。如果他们回复了,那这家公司真的很棒。👏🏽

如果您真的喜欢这家公司,并且他们知道您是自学成才的(无论如何他们都会从您的简历中知道,所以请保持透明),请告诉他们您希望按照他们的方向发展您的技能并在将来重新申请。

太棒了!你刚刚和招聘经理建立了联系,并且展现了你提升技能以满足他们要求的决心。

热门提示™️#2:你需要培养扎实的技术面试技巧

除了打造作品集,你还需要提升面试技巧。但面试技巧并非一成不变——科技行业与其他行业截然不同。我们充满热情,期待你展现你的知识。

这对于自学成才的程序员来说尤其重要。你需要知道如何做以下事情:

  • 解释不同的技术概念
  • 解决算法难题——同时解释你的方法
  • 写出你的解决方案步骤
  • 读懂你的面试官
  • 跳一会儿舞来保持对面试的控制(这是我的特长哈哈)

这方面有很多资源,比如盖尔·拉克曼·麦克道尔的《破解编码面试》。而且,它还可以当成一把钝器。

你需要做你自己。他们需要想雇佣你。当你不确定别人对你的期望是什么时,很难做你自己,但为什么要以一个与你不同的人的身份被录用呢?这听起来像是在煽动“冒名顶替综合症”。

至此

至此,您已经拥有了不断增长的技能工具箱。

一位男士在朋友的注视下举重,并说道

你每天都在学习。你构建项目,但要充分利用它们,而不是轻易放弃,转而去做下一个项目。你正在用你的 GitHub README.txt 讲述一个故事。

但最重要的是,你知道自己要去哪里。当你迷失时,内心的指南针和一个支持你的社区(比如#CodeNewbie!)会拯救你。

继续前进,不断成长,并建立自信。你是一位真正的勇士,你一定可以做到!💪🏽

💣 如果您想要更多这样的价值炸弹,请加入我的时事通讯《Life in Code》!

文章来源:https://dev.to/lavie_encode/a-guide-to-teaching-yourself-to-code-and-getting-a-job-828
PREV
如何正确地练习所学知识 刻意练习的特点
NEXT
成为一名技术顾问意味着什么?顾问的工作内容是什么?需要具备哪些技能?顾问通常服务于哪些类型的客户?我是如何进入这一行的?