网络开发总是在不断发展,每年一月份我都喜欢退一步,重新评估和观察这个生态系统。
问题是:2022年,初级网络开发人员应该从哪里开始,以便他们能学到能找到工作的技能?
地图有变化吗?是否与一年前不同?
变化似乎是永远的,但它们可能是微妙的,有时事情从一年到另一年发生了根本性的变化,你甚至没有意识到。
因此,我开始着手写一篇文章,指导你在网络发展空间中的导航。
这对试图跟上生态系统并保持相关性的开发者来说也很有用。 有什么新的东西你绝对应该学习吗?
让我们来了解一下。
但首先,请注意。这是一个非常有观点的路线图。它不是那种列出1000种不同技术的路线图,只是让你泪流满面,绝望不已。
让我为你挑选最好的技术,相信我,这样你就可以放弃分析瘫痪,继续你的进展。
在网络开发中,我们有3条道路。
- 前台开发
- 后台开发人员
- 全堆栈开发人员
这些角色之间的界限是有点模糊的。我将把这篇文章的重点放在全栈上,这是我最喜欢的专业--在这种情况下,你并不真正擅长于前端或后端,但你能够创造任何显示出来的东西和一切。
积极地忽略
让我们首先从我们将忽略的东西开始路线图。
在这个路线图中,我将忽略更专业的利基,如UI/UX工程,可及性,以及其他重要的主题。那些是完全不同的职业,有自己的学习路径。
你不可能一开始就假设你需要学习所有的东西。
积极地削减。
我们将忽略用网络技术完成的移动开发。那是一个完全不同的领域。我们也会忽略任何不是Web开发的趋势,但它是一种不同的开发专业,如AI,数据科学,Web3,等等等等。
深度专注于5项技术
我建议深入关注一组核心的5项技术。
HTML CSS JavaScript React Next.js
这5项,按顺序,是你需要掌握的5个东西。
你可以用一只手来数。
其中3项是基础知识。HTML、CSS、JavaScript。你不能回避它们。这些都是交易的工具。
HTML定义了内容 CSS定义了我们想让内容看起来怎么样 JavaScript定义了行为
React是我在这里做出的第一个真正的选择。
什么是React?React是一种简化创建用户界面的技术。
它在许多不同的方面使我们的生活更容易。
除了HTML、CSS和JavaScript之外,没有其他替代品,但你可以选择其他东西来代替React,比如Svelte、Vue、Angular,但我选择了React。
但React是超级流行的,它有一个历史和遗产,使它成为事实上的标准。它被广泛使用,你可以找到所有的东西,每一个库,大量的教程和课程,以及在你需要的时候提供帮助。
你可以把赌注押在一个替代品上,但你也可以只看就业市场和React带来的机会而选择它。
我们现在需要最后一块。一个网络应用程序框架。
我们选择了React,所以我们需要选择一个能与React一起工作的网络应用程序框架。
在React和HTML/CSS/JavaScript三人组的基础上,我选择了Next.js,以使基于React的网站和应用程序的服务变得容易,并将后端和前端无缝集成。
所以,3种核心技术对每个人来说都是通用的--HTML/CSS/JavaScript,在此基础上,我们有一个超级流行的UI库--React,在此基础上,还有一个超级流行的框架。Next.js。
现在还有更多的东西可以添加到这5个选择中,但你需要从某个地方开始。
有了这5个选择,你已经消除了疑虑和害怕错过其他大量的东西,这些东西可能会在你成为一名Web开发者的道路上分散你的注意力。
让我在这个消除的过程中加倍努力。忽略TypeScript,至少在开始的时候。我知道你会经常听到它,但它在你的旅程中并非必不可少,而且你可以在未来的任何时候添加它。
JavaScript可以让你把事情做得更简单,这对保持积极性至关重要。
从HTML和CSS开始
在这一点上,开始学习并开始实验。学习HTML,创建网页。阅读我的《HTML手册》。做大量的练习。Codepen是一个很好的工具。
只是不要被 "我用CSS做的 "所迷惑,人们用CSS做了一些不可能的事情。我不知道他们是如何做到的,这就是艺术(如果你喜欢,这也很好,只是对我们的旅程没有用)。
至于CSS,请学习基础知识。阅读我的《CSS手册》。并立即开始学习Tailwind,这是一种真正实用和流行的将CSS应用于你的页面的方法。
CSS可能很复杂。Tailwind使它更容易。相信我,我从20年前就开始 "做CSS",有了Tailwind,我终于在每个项目中都能处理好事情。这也是其他许多人的发现。
你应该用HTML和CSS/Tailwind创建什么项目?嗯,从你的爱好和兴趣开始。随机创建网页,看看它们在你的浏览器中是如何显示的。
创建一个关于狗的页面,关于足球、橄榄球、棒球、你最喜欢的Netflix系列、你最喜欢的音乐家,等等。重要的是进行试验。
不要对HTML和CSS/Tailwind搞得太花哨。它们是兔子洞。关于这两者,有很多东西要学。熟悉它们,用它们来完成任务。
熟悉像VS Code这样的编辑器,熟悉终端和Bash shell的基础知识。学习Git来为你的代码做版本。这将为你节省大量的时间和麻烦。
添加JavaScript
现在是学习JavaScript的时候了。下载并阅读我的《JavaScript初学者手册》。
HTML和CSS定义了内容和表现形式,而JavaScript是一种编程语言。
使用JavaScript,我们可以开始享受乐趣。
基础知识有点......枯燥,而且会让人困惑,因为有很多理论和新概念。但它是你在网络开发中使用最多的东西。所以掌握它是非常重要的。
一次只做一件事。
在简单的项目上下功夫,逐渐将JavaScript添加到你的页面中。
有了JavaScript,你会发现你可以为你的页面添加一定程度的互动性。你将探索DOM,它是浏览器让我们与页面上的元素互动的方式。
你将创建你的第一个表单。
在你创建了第一个表单之后,你将需要将表单数据发送到某个地方。
想象一下,你建立了一个电子邮件通讯注册表格。你想把邮件发送到某个地方,这样你就可以存储它。
Node.js
现在是时候学习如何创建一个简单的后端了。
到目前为止,我们已经在前台工作了,这意味着在浏览器中显示的东西。
当涉及到数据时,我们必须创建一个API,在服务器的特定地址上进行监听,你将向这个地址发送数据。
我们通过在服务器上运行一个叫做Node.js的工具的JavaScript来做到这一点。
Node.js是我们在远程计算机上运行JavaScript程序的方式。
需要注意的一点是,由于历史原因,JavaScript是唯一可以在浏览器内运行的编程语言。
所以在浏览器内部,我们没有任何选择。但在浏览器之外,在远程服务器上,我们可以使用任何编程语言。比如说Python、Java、Ruby、Go。那么,为什么是JavaScript呢?
因为你已经知道了JavaScript。比起同时学习两种不同的语言,在一门编程语言上有2倍的进步要好得多。
而且,通过在前端和后端使用JavaScript,你可以做一些非常花哨的事情,就像你以后看到的Next.js一样。
用Node.js创建一个简单的API,并将你的表单数据发布给它。
数据库
现在你想把这些数据储存在某个地方。这就是你要开始使用数据库的地方。
有许多不同种类的数据库。我建议你选择PostgreSQL,因为它是最灵活的,而且是你真正可以一直使用的。
提示:在这一点上,我会忽略MongoDB。许多教程都使用它,但如果你要只学习一个数据库来优化你的时间,那就选一个SQL数据库--既然如此,就选最好的SQL数据库,PostgreSQL。
将你的Node应用连接到数据库,学习如何存储和检索数据。
React
现在是学习React的时候了,通过阅读我的React初学者手册,开始着手开发你的第一个React应用程序。
从简单的开始。试着做你在HTML中做的同样的事情,但这次是用React。学习JSX,"React的HTML"。
学习Next.js
一旦你学会了这些概念,就把Next.js加入到组合中。
Next.js很有用,因为React是创建用户界面的好方法,但故意忽略了许多东西,如服务器端渲染、服务动态数据、路由、静态网站生成、代码拆分,以及你在任何适度复杂的网站或网络应用中总是需要的许多高级概念。
你会在构建应用程序时意识到你需要什么。
Next.js手册》是对Next.js的一个很好的介绍。
在你达到这个阶段后,你可以开始使用Next.js来创建基本上所有的东西。学习如何创建API路由,这样你就不必再直接使用Node.js了,Next.js会以 "无服务器 "的方式来处理部署你的API。
在大量的项目上工作
在大量的项目中工作,获得信心和经验。不断迭代。
我每年都会在bootcamp.dev,举办一个训练营,我们会在15个不同的应用程序上工作。
实践就是一切。在某种程度上,遵循教程已经不再重要了。重要的是在项目中取得进展,学习如何解决出现的问题。
开始建立你的项目组合。从小项目开始,继续做更复杂的项目。
在Twitter上分享你所做的一切,以便与其他开发者交朋友。
学习如何调试,学习如何进行测试,如何保护你的应用程序。掌握Git以及如何在Vercel和其他云供应商上部署应用程序。
继续下去,失败。循环往复。
找到你的 "北极星 "项目。让你兴奋的事情。建立你的SaaS(软件作为一种服务)。建立一个产品并在你的Next.js网站上销售。用Next.js创建一个电子商务。无论你的北极星是什么。
保持专注。忽略流行趋势和 "下一个大事件"。
现在你可以选择你是否想成为这个堆栈中某个特定事物的专家,或者你想成为一个通才。不要跳到不同的框架上,在你已经知道的东西上加倍努力。
每当你觉得准备好了,你可以寻找工作,或者你可以创造自己的工作。创造一个软件产品并独立销售。开始做自由职业,在互联网上宣传自己是React / Next.js开发者。找到一个需要开发人员的本地公司。询问机构是否需要帮助。被当地公司聘用,或开始大公司或FAANG的面试过程。找一份远程工作。
你现在是一个非常有价值的专业人士。公司对像你这样的人有很大的需求。
天空是无限的。