不会飞的章鱼

熟能生巧,勤能补拙,静能生慧;念念不忘,必有回响。

如何开始Web3开发

要成为一名 Web3 开发者,我们需要一些 Web2 的背景知识。无论您对创建智能合约、开发工具、协议层开发、AI 图像生成还是其他任何内容感兴趣,都有很多已经存在数十年且至今仍然高度相关且实用的主题。如果您正在阅读本文,那么您今天想要做的很大一部分就是学习如何在 Web 技术(用户可以通过 Web 浏览器访问的技术)之上进行构建。

在本课中,我将讲解一些您在 Web 开发之旅中肯定会遇到的关键术语,但更重要的是,我将讨论作为一名刚刚踏上 Web 开发之旅的开发者,您应该具备的心态。

前端技术

前端是用户交互的界面。在 Web 上,前端指的是一个可以浏览、点击甚至编写内容的网站。移动应用和桌面应用也是前端界面的有效示例。

在本课中,我们将重点介绍 Web 技术。

您是否想过,无论您使用哪种 Web 浏览器(Chrome、Firefox、Safari、Edge 等),网站在所有浏览器上的外观都完全相同?

这是 Web 标准造成的。一个名为 W3C(万维网联盟)的组织制定了一系列明确的标准,所有公司(例如 Google、Microsoft、Mozilla、Apple 等)在构建跨不同设备和不同操作系统的 Web 浏览器时都必须遵循这些标准。

具体来说,这些标准围绕每个 Web 开发人员都需要熟悉的三个关键要素制定:HTML、CSS 和 JavaScript。

HTML 是一种用于在屏幕上直观地放置元素的语言。就像您正在阅读的这段文字,比如按钮,比如下拉菜单。您可以使用 HTML 将元素直观地放置在屏幕上。

CSS 是一种样式语言,用于为这些元素添加样式和您自己的自定义风格。默认情况下,HTML 元素看起来枯燥乏味。还记得 90 年代的那些老网站吗?没错,那都是纯 HTML。CSS 允许您自定义 HTML 元素。例如,将按钮变成圆形而不是矩形,更改段落的字体,使用粗体文本或下划线文本等等。

最后,将所有这些结合在一起的是 JavaScript。JavaScript 可以说是基于 Web 技术构建的最重要方面。它是一种功能齐全的编程语言,可用于为您的网站添加真正的功能。

使用 HTML 和 CSS,您可以将元素放置在屏幕上并使其看起来美观——但它们实际上不会执行任何操作。点击按钮实际上不会执行任何操作,当您继续向下滚动时,Instagram 上的更多帖子将无法加载,等等。

JavaScript 允许您为网站添加真正的交互性和功能。毫无疑问,它是 Web 语言——您会发现 LearnWeb3 上的大多数课程都会以某种方式使用 JavaScript。没有 JavaScript 的网站除了让您以特定方式查看内容之外没有任何功能。

总之,回到 W3C——W3C 制定了 Chrome 等 Web 浏览器如何理解、运行和显示 Web 开发者使用 HTML、CSS 和 JavaScript 编写的代码的标准。由于这些标准,所有设备和所有操作系统上的所有浏览器都能以类似​​的方式工作,您无需为此担心。这就是基于 Web 技术构建的强大之处。与构建移动应用(iOS 和 Android 彼此差异很大)不同,为 Windows 构建与为 macOS 或 Linux 构建也截然不同——Web 允许您一次编写代码,即可在任何地方运行——我们将利用这一点。

后端技术

后端是指软件运行所需的部分,用户无法直接访问。大多数隐私数据、业务逻辑、数据处理等都发生在后端,而前端则提供这些数据的可视化呈现。

以 Instagram 为例,其平台上拥有数十亿张照片和视频。其中一些照片是由私人账户发布的,只有关注该私人账户的用户才能看到,其他人则无法看到。Instagram 需要对照片进行筛选,以便在时间线上显示您的动态,而不是实际可用的内容。后端不能直接供用户访问,这一点很重要,否则隐私数据可能会泄露。

如果您曾经读过某个网站被黑客入侵,用户的隐私信息(例如地址、姓名、信用卡信息等)被泄露的新闻,那是因为他们的后端存在一些漏洞,允许恶意行为者直接访问这些信息。

作为软件开发者,我们的目标是为我们的服务构建安全的后端,并且只允许用户访问他们有权访问的信息和数据。

后端服务可以使用多种编程语言编写——JavaScript、Rust、Go、Python、C# 等等。然而,既然你即将开始你的旅程,既然你无论如何都要学习 JavaScript 作为前端,那么你不妨也使用 JavaScript 作为后端。虽然每种编程语言都有其优缺点,但对于初学者来说,一次性掌握多种不同的语言和范式是远远不够的。我强烈建议,如果你想基于 Web 技术进行构建,那么选择 JavaScript,因为它在技术栈的两端都能正常工作。

为成功做好准备

作为一名新开发者,很容易感到畏惧。你上网、加入 Discord 服务器、阅读博客——无论什么——你都会遇到不太理解的术语、不太理解的框架、即使读过两遍也仍然听不懂的概念解释等等。

你必须意识到,学习编程并成为一名优秀的程序员是一个过程。计算机科学不是那种可以死记硬背的学科。例如,当你在学校上历史课时,你可能记住了很多事实——X 在哪一天杀死了 Y 等等。然而,当你学习数学时,方法可能就不一样了。除了一些基本原理之外,你不可能真正记住数学。你必须练习,你必须理解它,你需要掌握其中的概念。

计算机科学是一个类似的领域。你不可能记住一门编程语言,你不可能记住如何解决棘手的问题,你不可能记住如何修复错误——你需要练习,你需要概念,你需要理解。

我见过一些人,他们记住了 JavaScript 编程语言中所有可用的函数——然而,他们甚至连最简单的编程问题都解决不了。这是因为,如果你只记住 1 + 1 = 2,而没有真正理解加法的原理,你就无法说出 47 + 25 = 72。我可以让你把任意两个数字相加,这两个数字你可能以前从未遇到过加法问题,但只要给你一些时间,你就能把它们加在一起。你不可能记住那个加法,你理解了加法。编程也应该采取同样的方法。

其次,不要设定时间表。不要问诸如“我如何在 6 个月内成为 XYZ 领域的专家?”之类的问题——这是一个不可能回答的问题。别人根本不知道你每天花了多少时间学习,花了多少时间练习编程,也不知道你过去的背景是什么,你是哪种类型的学习者等等。设定截止日期会给学习之旅增添不必要的压力,而学习之旅本应令人钦佩,每一步都应该慢慢来,才能体会到它的美妙。总有一天,你会真正理解人类是如何从能够在实体电线中发电,到将电能表示为0和1,再到能够将0和1存储在磁铁上,一直到能够构建出高度逼真的200GB电子游戏的。那时,你会回首往事,感叹“我的天,这太酷了”,同时也明白“我还有很多不知道的东西!”。

学习是一个永无止境的过程。它实际上是人类一生中为数不多的几件事之一。追求知识,不断学习,以提升自己。保持好奇心。探索新事物。尝试新事物。承担一些风险,无论大小。感受肾上腺素飙升的快感。

最后,我想告诉你们——永远不要害怕提问或犯错。尤其不要害怕在 LearnWeb3 Discord 服务器上提问。我们一直努力营造一个友好互助的社区,很多正在回答你问题的人,不久前可能也和你一样。要知道,没有愚蠢的问题。如果你有愚蠢的问题,其他人可能也有。尽可能多地提问,努力理解问题,人们会非常乐意帮助你。

------ 本文结束------
如果你喜欢这篇文章,打赏一下让我开心到原地转圈圈~,金额随意,感谢鼓励与支持!