We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode #154 Why developers needn't fear CSS – with the King of CSS himself Kevin Powell

#154 Why developers needn't fear CSS – with the King of CSS himself Kevin Powell

2024/12/20
logo of podcast freeCodeCamp Podcast

freeCodeCamp Podcast

AI Deep Dive AI Insights AI Chapters Transcript
People
K
Kevin Powell
Q
Quincy Larson
Topics
Quincy Larson: 我很好奇,为什么开发者们在 2025 年仍然需要学习 CSS?仅仅因为它有趣吗?或者还有其他更重要的原因? Kevin Powell: 我认为学习 CSS 的最大价值在于提升用户体验。CSS 是我们连接用户的方式,良好的用户体验应该优先考虑。如果用户难以使用你的产品,他们就不会再使用了。CSS 在用户体验中扮演着重要角色,它决定了网页的外观和布局,直接影响用户的使用感受。 此外,在网站开发的初期就考虑无障碍性设计至关重要。如果在后期才发现无障碍性问题,修复起来将非常困难,并且会产生大量的技术债务。技术债务是指采用次优方案导致后期需要额外的工作来修复。从一开始就关注无障碍性,使用正确的 HTML 元素,可以避免很多问题。 在团队协作中,设计师和开发者之间的沟通至关重要。设计师需要了解代码实现的可能性,开发者需要理解设计理念,只有良好的沟通才能避免冲突,提高效率。 CSS 自诞生以来已经取得了长足的进步。CSS3 的出现带来了圆角、阴影等新特性;Flexbox 和 Grid 的出现极大地简化了网页布局的创建过程,解决了之前使用浮动(float)和表格布局的许多问题。响应式网页设计则解决了不同设备屏幕尺寸差异的问题,使网页能够在各种设备上良好显示。 移动应用的普及对网页开发和设计也产生了深远的影响。虽然许多人主要通过移动应用访问网页,但渐进式 Web 应用 (PWA) 使得开发者可以用 HTML、CSS 和 JavaScript 创建跨平台的应用程序,这使得 CSS 仍然具有很高的相关性。 学习 CSS 的方法有很多,但重要的是要注重基础知识的学习,避免信息过载。在学习过程中,要多实践,多思考,并尝试将所学知识应用到实际项目中。学习滑板的经历教会了我刻意练习的重要性,以及实践与理论之间的差距。在学习编程时,也要多动手实践,不要仅仅依赖教程。 在教学过程中,我发现通过讲解和分享,可以加深对知识的理解。学习新技术时,可以尝试将所学知识进行总结和分享,这有助于巩固知识,并发现自身的知识盲点。 Kevin Powell: 我从事 CSS 相关工作已经超过十年,我的 YouTube 频道也积累了大量的视频教程。我最初创建 YouTube 频道只是出于个人兴趣,并没有什么宏伟的目标。起初,我的视频播放量很少,但随着时间的推移,我的频道逐渐获得了关注。在 2019 年,我的 YouTube 频道和课程收入达到一个临界点,让我有信心辞去全职工作,专注于内容创作。 我的 YouTube 频道主要专注于 CSS 相关的知识,我并没有扩展到其他领域。我认为专注于一个领域,并深入学习,可以帮助我更好地理解和掌握这个领域。 在教学过程中,我发现课堂教学经验对我的在线教学方式产生了积极的影响。课堂教学可以帮助教师更好地理解学习者的知识水平和学习过程中的困惑,从而改进教学方法。 UI 框架提供预构建的 UI 组件,而设计系统则更注重设计规范和品牌一致性。学习 CSS 基础知识可以帮助开发者更好地理解和修改 UI 框架,并解决实际问题。 CSS 的发展由 W3C 的 CSS 工作组负责,并通过公开的流程进行。任何人都可以参与其中,并对 CSS 的发展提出建议。 传统的设计技能可以帮助开发者更好地理解和应用 CSS,但网页设计与传统设计相比,需要考虑更多因素,例如响应式设计、无障碍性设计等。 即使工具越来越完善,学习 CSS 相关的基础知识仍然具有重要意义。学习 CSS 基础知识可以帮助开发者更好地理解和修改 UI 框架,并解决实际问题。此外,CSS 还在不断发展,学习 CSS 基础知识可以帮助开发者更好地适应新的技术发展。 分享学习心得非常重要,这不仅可以帮助他人,也可以加深自身对知识的理解。学习新技术时,可以尝试将所学知识进行总结和分享,这有助于巩固知识,并发现自身的知识盲点。在分享观点时,要保持谨慎,避免误导他人。

Deep Dive

Key Insights

Why is CSS often a source of frustration for developers?

CSS is a declarative language that seems simple at first, but its complexity becomes apparent as developers encounter layout issues and intricate algorithms behind the scenes. Many developers underestimate its complexity, leading to frustration when CSS doesn't behave as expected.

Why should developers still learn CSS in 2025?

CSS is crucial for user experience, as it directly impacts how users interact with a website. It ensures functionality, accessibility, and aesthetics, making it essential for creating user-friendly designs. Even with tools like Material UI, understanding CSS allows for customization and better problem-solving.

Why is accessibility important in CSS from the start?

Accessibility ensures that all users, including those with disabilities, can use a website. Ignoring it early leads to technical debt, requiring significant rework later. By prioritizing accessibility, developers avoid costly fixes and ensure inclusivity from the beginning.

What are the biggest improvements in CSS over the years?

CSS Grid and Flexbox revolutionized layout design, providing tools specifically for creating responsive and flexible layouts. These tools replaced older hacks like using tables or floats, making it easier to build complex designs without unnecessary workarounds.

How did responsive design change web development?

Responsive design emerged to address the variety of screen sizes and devices. It replaced the need for separate mobile and desktop sites, allowing a single codebase to adapt to different screen sizes through media queries and flexible layouts.

Why is learning CSS still relevant for mobile app developers?

CSS remains relevant for mobile app developers because it underpins web development and progressive web apps. Understanding CSS ensures flexibility across platforms and prepares developers for future technologies, especially as open standards like HTML and CSS continue to evolve.

What is the role of the CSS Working Group in CSS development?

The CSS Working Group (CSS WG) oversees the development of CSS, making decisions through public discussions and feedback. They aim to avoid past mistakes by thoroughly considering new features and ensuring cross-browser compatibility through initiatives like the Interop project.

How does teaching CSS improve understanding of the language?

Teaching CSS forces educators to break down complex concepts and explain them clearly, leading to deeper understanding. This process often reveals knowledge gaps and helps solidify foundational concepts, benefiting both the teacher and the learner.

Chapters
This chapter explores the enduring relevance of CSS in 2025, highlighting its role in user experience and the importance of prioritizing accessibility from the outset. The discussion covers technical debt and the collaboration between designers and front-end developers.
  • CSS is crucial for user experience, ensuring functionality and ease of use.
  • Prioritizing accessibility from the start prevents accumulating substantial technical debt.
  • Open communication between designers and developers is essential for addressing accessibility and other design challenges.

Shownotes Transcript

CSS 对于许多开发者来说都是一个令人沮丧的来源。他们不明白 CSS 的什么地方?最大的问题是,因为 CSS 是一种声明式语言,尤其是在早期,比如 background blue 就起作用了,然后像 font size,26 像素,你的字体就变大了。就像你刚开始做的时候很容易,它的简单性让它看起来像是一种非常简单的语言。

直到突然变得更复杂。但是一旦你理解了为什么做出这些决定以及幕后的事情是如何发生的,它实际上就很有意义了。您正在收听 Free Code Camp Podcast,这是对开发人员进行原始、未经编辑的采访的来源。请花两分钟时间完成说明中的听众调查。

在本周的音乐介绍中,由我自己演奏鼓、吉他、贝斯和键盘,1986 年任天堂娱乐系统经典游戏 Bubble Bobble。Bubble Bobble。

♪♪♪ ♪♪♪

所以

欢迎回到 Free Code Camp Podcast。我是 Quincy Larson,FreeCodeCamp.org 的教师和创始人。每周我们都会为您带来来自开发人员、创始人以及进入科技行业的雄心勃勃的人们的见解。本周我们与 Kevin Powell 进行了交谈。他是一位设计师、软件工程师和 CSS 专家。他运营着一个以 CSS 为中心的 YouTube 频道,拥有近百万订阅者,并且

它不像一些耸人听闻的猫视频类型的频道。它实际上只是他在谈论 CSS 并教人们如何使用它。所以我很高兴能与 Kevin 谈谈。很快,本播客的支持来自 Wix Studio 的赠款。Wix Studio 为开发人员提供工具,可以快速构建具有所有开箱即用功能的网站,然后使用代码扩展、替换和突破界限。了解更多信息,请访问 wixstudio.com。

并且支持还来自 11,043 位通过每月捐款支持 Free Code Camp 的好心人。加入这些好心人,并通过访问 freecodecamp.org/donate 来帮助我们的使命。Kevin,很高兴你在这里,伙计。我非常兴奋。非常感谢你邀请我。是的。我将直接进入正题,伙计。就像,人们为什么应该在 2025 年学习 CSS?

仅仅因为它很有趣就足够了吗?或者我们需要比这更好的理由吗?好吧,我认为如果你喜欢它,那就去做吧。但是很多人非常忙碌,他们面临着许多他们可以学习的事情。他们可以学习如何进行机器学习。他们可以学习系统工程。他们可以学习很多后端开发人员类型的东西。他们可以只获取一些现成的材料 UI,将其放入其中,而无需担心它,对吧?是的。

人们为什么应该在 2025 年继续学习 CSS?是的,我想,价值在哪里?继续投入时间学习它的令人信服的理由是什么?最终它是一种可以以多种不同方式应用的极其深奥的技术。

是的,这是一个非常好的问题,特别是当你这样表达的时候。我认为最重要的一点是 CSS 是我们与使用你正在创建的任何东西的用户联系的方式。所以,你知道,用户体验可能是应该成为最高优先级之一,因为如果用户难以使用某些东西,他们就不会想使用它。所以。

CSS 在用户体验中扮演着非常重要的角色,它可以让事物看起来像它们需要的样子,确保一切……与其说是功能,不如说是,是的,拥有某些东西……

它不需要看起来令人愉快,但它需要实用,布局需要在那里,并且用户需要能够很容易地弄清楚发生了什么。大部分都是通过 CSS 完成的。是的。关于这个实用且易于使用的方面,你非常主张从一开始构建网站或设计时就考虑可访问性。为什么?嗯哼。

是的。我认为首先是确保所有用户都可以使用你正在创建的任何东西,我认为这非常重要。如果一开始没有放在首位,问题在于你只是积累了大量的技术债务。

所以,而且它,它很难,就像如果你构建了一些东西并且它可以工作,但是你意识到存在可访问性问题,你可能需要做的返工量实际上可能相当可观。然后你就卡在那里,有点像,值得回去修复它吗?尤其是在涉及利益相关者、时间的情况下,例如,你的老板可能不希望你花所有时间去做这件事。你的冲刺上有其他事情,无论是什么,你都需要专注于它。而如果这是你从一开始就关注的事情,

而且你知道,有一些例外。有些事情可能更复杂,但是对于很多事情来说,如果你从一开始就将其融入其中,

你知道,只需使用正确的 HTML 元素,你可能在做这件事方面已经走得很远了。这通常是第一道防线。然后,你没有积累任何技术债务,你可以继续前进。嗯,是的,我认为不抛弃任何用户非常重要。是的。而且,我的意思是,这很重要。在美国有超过 4000 万人。我知道你不在美国。你在美国顶部的加拿大,但是,呃,

在美国有 4000 万残疾人。我个人有视觉和听觉障碍。它们很小。我的眼睛和耳朵都很好,但我就像部分地,就像我的视觉皮层有点问题,我右眼看不见。一切都很模糊。我的左耳,由于儿童时期耳部感染导致听力受损,我无法听到我一只耳朵中的某些频率。所以对我来说,可访问性有很大的影响。我使用巨型字体。

我使用大量的键盘快捷键等等,这样我就不必不断地跟踪鼠标光标之类的东西。我认为很多人没有充分考虑可访问性。你已经论证了一个非常明确的商业案例,你最终需要重新添加它,否则你的网站就会像达美乐一样被起诉。但积累了技术债务。所以让我们谈谈什么是技术债务。也许你可以描述一下。

是的。基本上,当你比如说,采取次优的方法来处理某些事情,然后拥有,你知道,所有这些正在积累的工作,你以后必须回去修复。基本上。我认为就是这样,是的,我想就是这样。是的。而且本质上,就像我听到的技术债务的描述一样,它非常像真正的债务。就像,你正在产生利息,因为你的网站没有发挥它本可以发挥的最佳作用。

最终你将不得不支付本金加利息,呃,当你坐下来构建这些功能时。有时对于小型、你知道,构建那个,呃,你知道,快速行动并打破事物类型的科技初创公司来说,这样做是有意义的。我不喜欢这个说法,但我只会用它。我开玩笑地使用它。这不是我实际处理软件开发的方式。我不鼓励其他人这样做,但是,呃,

有很多情况确实有意义,比如不要让你的 DevOps 达到 100% 的完善状态,因为最终用户不会在意。但是,很少有事情比实际呈现页面的 CSS 和通过该 CSS 暗示的设计决策更能直面最终用户了。是的。

这就是那些难以处理的事情之一,因为如果你是开发者,你可能不负责设计。然后有时你会被告知要做一些不可访问的事情。这可能是文本对比度级别。我认为这是,

现在设计师比以前更了解这些事情了。但这确实是一件大事,你仍然会看到一些设计,就像,是的,它看起来不错,因为文本更淡了,但你就像,给它,你需要阅读该文本。对于许多用户来说,如果对比度不够高,这将是一个问题。呃,有些人只会编写他们面前的东西并执行它。

我总是鼓励的一件事,因为设计和 CSS 之间存在这种奇怪的重叠,显然,人们并不总是知道该怎么做。你知道,如果这件事很难创建,或者如果它不可能,或者其他什么?这就像与设计师就潜在问题进行对话,无论是可访问性问题还是其他任何问题。我认为尝试保持开放的沟通渠道非常重要。是的。是的。

100%。所以让我们谈谈这个角色,设计师和开发人员(前端开发人员)之间的动态。当然,很多人都是独角兽。他们是全栈开发人员。他们可以做后端的事情。他们可以做前端的事情。坦率地说,大多数开发人员都是全栈开发人员,但是,

从事网络工作,但他们有专长,你知道,这不像后端开发人员,从字面上从未接触过 CSS 并且从未构建过任何东西。就像,那里有一些人,就像,就像对 CSS 有某种反感一样,但是,而且你,而且它在模因中确实体现了出来。但是,总的来说,我会说大多数开发人员对堆栈以及在各个点使用的工具至少都有相当不错的了解。但是,

但是设计师,而且今天大多数设计师如果从事网络工作,也是开发人员。我不知道现在还有多少真正的专家,因为业务需要用更少的东西做更多的事情。因此,每个人都必须成为一种独角兽前端后端设计师类型的人。但是让我们谈谈假设的组织内部劳动分工。假设这是一家拥有大约 50 名员工的初创公司。

也许他们有大约 10 名开发人员,并且有 1 或 2 名设计师。也许你可以描述一下这些人的角色和关系。你以前在这样的组织工作过吗?

不是从一开始,但我做了一些咨询工作,其中……通常是因为存在某种……当他们之间存在太大差距时,问题就出现了,他们只是在自己的筒仓中工作,没有任何沟通。然后它会导致双方都出现问题。好吧,更多的是设计师移交东西,然后要么没有正确进行,要么就是……

编写代码的人正在做比他们需要做的更多的工作,因为发生了这种筒仓式隔离的沟通。所以,是的,在这些情况下,我认为,同样,最重要的部分是沟通。我认为在我们所做的一切中,它不必设计成前端、前端、后端,所有的一切。沟通越多越好。但是,是的,我认为……

CSS,我认为你经常看到它,因为它实际上是将设计转换成某种东西,你知道,从 Figma 或你使用的任何设计软件到浏览器。所以它只是……

它变成了这样一件事情,我认为设计师知道的代码越多越好。开发人员拥有的设计技能越多越好。但是我们显然,你知道,正如你提到的那样,很多人确实在某种程度上有一些交叉。而且你显然,你知道,你每天只有那么多空闲时间来学习所有这些事情所需的所有技能,这总是很有趣的部分。但是是的,我认为……

这取决于组织,甚至取决于代码方面的事情,如果只是给你,比如这里有一个孤立的设计,让它实现。就像我可以编写那个代码,但是从更大的角度来看它。我认为这更多地取决于项目管理以及如何在更大范围内进行处理,以确保,

你没有重新创建已经存在的东西,所有这些,因为这种情况经常发生。好吧,让我们谈谈已经存在的东西。所以,自 1993 年或它被引入的时候以来,CSS 已经走了很长一段路。它是什么时候被引入的?你还记得吗?93 年听起来是对的,但我可以……CSS 首次发布。它肯定是在那个时间段。

1996 年。好的,很接近。哦,6。好的。是的。晚一点。我认为我在 1994 年上网。所以我们仍然……网站只是用……主要是 GIF 和其他 JPEG 类型图像精美地完成的。他们没有设置文本样式。他们只有图像,这……

超级不可访问,而且加载速度非常慢。互联网,你小时候,对不起,这就像我的老话,但基本上你过去会访问一个网页,然后你会站起来,你会去洗手间,你会去倒一杯饮料或其他什么东西,因为它需要很长时间导航栏才会加载。它就像一种滚动的东西。现在,当然,CSS 使您可以拥有优雅、美丽,并且

但您也可以拥有高性能。因此,在 CSS 存在的近 30 年里,工具链已经发展了很多。除了性能和功能之外,在使 CSS 成为人类可以使用的一种合理工具方面,有哪些最大的改进?

是的。如果我们要追溯到更远的地方,我认为……当 CSS3 出现时,确实有很多兴奋,因为我们从你刚才谈到的情况转变过来,如果你想要一个带有圆角的按钮,你必须进入 Photoshop 并将其切片并获取角的图像,因为没有办法创建圆角。阴影效果和所有其他东西都是图像。所以像……

现在看来,我总是,我有点笑,我们对这些新功能感到非常兴奋,你就像,哦,这是一个圆角。这真的令人兴奋吗?但在当时它确实如此。我认为这是使其成为一种更易于使用的语言的一大步。嗯,

但我认为 Flexbox 和 Grid 是很容易获得的成果,就像,哦,我们实际上花了 20 年时间才有了布局工具。就像,获得专门用于创建布局的东西花了很长时间。但是是的,所以我认为这是我们在获得方面最有用的东西,就像,是的,我们可以创建布局,因为我们有一个合适的布局工具。这听起来很愚蠢,但花了很长时间才做到这一点。是的。

是的,我的意思是工具,比如来自 .NET 套件的人,他们几乎拥有所有工具的工具,因为他们有一个大型公司正在努力确保人们拥有每个小工具的工具。CSS 不像某个大型公司。据我所知,它就像一个大型开放联盟。

进展缓慢,但进展明显。我的意思是,当你回顾过去构建网站的方式以及担心 CSS 与今天的区别时,你拥有的工具本身就是原生的,甚至没有使用任何非,我认为,原生 CSS 工具。

你拥有 CSS Grid 和 CSS Flexbox。也许你可以描述这两个工具以及它们如何,我认为,彻底改变了 CSS 并彻底改变了构建网页的过程。是的,当然。在此之前,我们最初使用表格创建布局,并使用表格将图像放置在正确的位置。那时一切都是图像,基本上。

然后我们从……开始,它实际上是,你只需使用表格并将图像插入你需要的位置即可创建某种布局。我认为最著名的例子是 Space Jam 网站,每个人都喜欢它,因为它实际上像链条一样,它不像这种传统的布局。它将事物放在不同的位置,而不是仅仅放在框中。然后最终我们得到了,或者有些人发现我们可以使用浮动来创建布局,浮动只是帮助,

浮动的最初想法是你可以有一个图像,然后将文本环绕该图像,就像你在杂志中看到的那样。他们就像,好吧,如果我可以使用它将东西并排放置,我可以使用这些浮动的东西。它实际上是一个技巧,但它使我们能够做更多的事情。我们可以创建列系统。我认为这就是为什么我们出现了许多框架,包括 Bootstrap,这显然是最大的一个,因为创建列

列系统有点痛苦。然后这里有一个工具,它只是给我们一个我们可以使用的列系统,只需将内容插入其中即可,它就可以工作了。所以这真的很好。然后最终我们得到了 Flexbox。Flexbox 的兴起有点缓慢,因为它

我不记得它花了多少年才得到正确实现,但它的早期版本有很多错误。存在许多跨浏览器不兼容性和问题,但最终我们到达了一个安全的空间可以使用它。这只是让我们有了一种合适的方法来创建列,就像浮动一样,正如我所说,这是一个技巧性的解决方案,它可以完成工作。最终让我们能够垂直居中对齐。那是那里的经典模因。它是 CSS 如何居中对齐某些东西?它打开了那扇门。

它给了我们一个以前从未有过的非常强大的布局工具。所以它彻底改变了我们编写 CSS 的方式。我认为它使许多事情成为可能,它并没有一定使许多新事物成为可能,但它只是使布局方面变得如此容易,以至于你只是,你没有浪费时间。就像我们以前可能做过的那样。然后最终我们也得到了网格。

Flexbox 更多的是关于子元素的,就像你使用 display flex,然后子元素就变成了列,它们的大小取决于这些列中的内容。

所以如果你想要相等的列,你实际上必须调整列的大小以确保它们都相同大小。然后它真的很好。正如其名称所示,它非常灵活。它是响应式网页设计出现时的一种东西,所以我们可以调整事物的大小。但它有局限性。所以然后我们有了网格,你可以创建一个网格,然后将东西放在其中。在某种程度上,它让人想起那些基于表格的布局,但它是一种更易于使用和用户友好的方式来创建这些布局。

是的。是的。所以我认为一些,哦,对不起。对不起。请继续。不,我只是想说,有些人想知道为什么我们需要布局工具,他们认为这是 CSS 的失败,就像,我们不应该只有一种布局工具吗?但是这两个工具就像,这是一件这样的事情,就像,这个工具在这个方面真的很好,这更像是使用 Flexbox 进行灵活的布局。然后是网格,其中父元素处于控制状态,只需将内容插入其中即可。我认为这两个工具,

我认为我们可以做得更多,因为我们有两个工具,每个工具都有自己的优势,而不是一个试图做所有事情的工具。是的。是的。这很有道理。嗯,你提到的一件事,呃,响应式设计设计在我进入 Web 开发时是一件大事,那是 2010 年、2011 年,那是我第一次开始编程的时候。在此之前,我只是一个老师和学校主任。我学习编程只是为了优化我们的学校,并且,

改善我们的老师和学生的生活等等。然后我越来越深入,成为了一名软件工程师。然后最终开始教授这些东西。但是,嗯,

当我进入时,响应式设计是重点。每个人都在谈论如何使我们的网站在移动电话上看起来不错,因为存在这种寒武纪大爆发式的不同外形尺寸。现在,某些东西必须在大屏幕上看起来不错。某些东西必须在 iPod Touch 等设备上看起来不错。你知道,我们该如何做到这一点?响应式设计是答案。你能谈谈什么是响应式设计以及为什么它在当时如此重要吗?

是的。起初,我认为,我的意思是,一开始,我们不必担心这个问题。它只是,你知道,每个人的屏幕都是台式机。我们没有其他需要担心的设备。它们通常大小相同。你只需将你的网站设置为 640 x 480。你知道这对每个人来说都是安全的。所以你和我想它更像是印刷设计,对吧?这是布局,我只需要制作它,我可以按照我想要的方式制作它。

然后当所有这些新的外形尺寸开始成为一件事情时,就像,哦,人们现在实际上可以在这个小设备上连接互联网了,我们必须找到一种方法让布局在这两种情况下都能工作。而且第一波不是响应式设计。第一波是 MDOT 过程。

你会拥有 m.freecodecamp.org,这将是它的移动版本。然后你会有一个完全独立的网站,那就是常规的网站。然后你必须维护两个代码库,因为你有它的移动版本,你也有它的大型版本。我认为我们很快意识到,为一个网站维护两个独立的网站是一个坏主意。

呃,这就是响应式网页设计出现的原因。它是,嗯,这个术语是由 Ethan Marcotte 在一篇 alistapart 文章中创造的。呃,如果你想要一些历史课,你可以去查一下。呃,它谈论了很多关于可以适应不同屏幕尺寸的灵活网站的想法。媒体查询是使它们发挥作用的非常重要的一部分,呃,是的,只是拥有我们的网站,无论你扔给它什么,基本上就屏幕尺寸分辨率和其他一切而言,它都能正常工作。是的。

太棒了。我将链接到那篇文章,我刚刚调了出来。因此,请务必查看节目说明,了解许多内容,例如原始的 Space Jam 网站。我会尝试在互联网档案中找到它并将其包含在内。假设在你收听本节目时,互联网档案还没有被起诉到破产的地步。我认为……

我认为该网站仍然在线,因为我不记得制作 Space Jam 的电影公司做了什么。在某个时候,他们将其关闭,并且出现了巨大的抗议和请愿书。我认为原始网站现在仍然位于原始 URL 上。他们把它放回去了。我会尝试找到它。所以是的,正如我们节目中总是谈论的那样,就像我试图包含相关的链接一样。所以我希望你在像遛狗或洗碗的时候正在互动地收听这个节目。哦,让我们看看这个。是的。所以是的。

你提到的一件事非常有趣,当你谈到我们过去认为一切都是 600 x 480 时,我认为这是每个人都为其编写代码的尺寸。我清楚地记得在大学里做了一些非常非常基本的网页设计类型的工作,就像……

我认为那是,呃,是什么?它就像,呃,它被收购了 Dream Weaver。我会使用 Dream Weaver。吃这些 Twizzlers。我有一个实习机会,我直接为这位,呃,文科教授工作,呃,我正在为,呃,教授创建这个非常基本的网站,就像,呃,它只是一个非常基本的参考网站。

但是,嗯,我清楚地记得坐在那里并将所有内容设置为那样。然后,呃,必须将其缩放成那样并确保一切看起来都正常。而且,呃,该网站的可访问性一定是一场噩梦,但我只能想象使用屏幕阅读器导航它会多么可怕。而且很多人确实使用屏幕阅读器。世界上有很多盲人,他们可以在电脑上完成事情,就像,呃,视力正常的人一样。呃,

但他们这样做是通过屏幕阅读器,这是一个很酷的考虑因素。显然,他们将体验该网站。他们不一定能够欣赏你添加的圆角等细微之处。

但是你提到的一件事,移动,呃,拥有移动网站。当然,现在我们只有响应式网站,你访问,我不知道,freeco camp.org。呃,你访问 freeco camps.org,它在移动设备上看起来很棒,因为我们故意花费大量时间和精力使其在移动设备上看起来很棒。但是,

许多人体验网站的方式并非像他们从 Reddit 或某个网站、纽约时报应用程序等点击出来一样。他们正在点击到某个外部网站。网络确实已经进入这些应用程序,无论好坏。嗯,在你看来,这如何影响了 Web 开发和 Web 设计?事实上,很多人都在,都在,

主要使用移动应用程序,这些应用程序可能使用也可能不使用 CSS?CSS 与移动应用程序开发人员的相关性有多大?是的,这是一个好问题。我认为它仍然是某种东西。

好吧,我的意思是,我认为一个,与其说是 CSS,不如说是从设计的角度来看,仅仅是因为移动设备已经占据了如此大的程度。从某种意义上说,它简化了布局,但也使它们变得有点无聊,因为屏幕空间有限。你只能做这么多。所以它们往往只是常规的从上到下的布局类型的东西。尽管我认为有一些新事物即将出现,可以使事情变得更令人兴奋,仅仅是因为进行用户交互和其他事情变得更容易了,无论是

通过动画还是其他东西,以及微动画等等都是非常重要的一部分,尤其是在应用程序中,您可以看到其中包含的细节关注度。至于 CSS,在应用程序开发方面,显然这取决于一点。我认为它对于很多人来说仍然是相关的。一个巨大的优势是,我们被长期阻碍,因为 Apple 没有加入渐进式 Web 应用程序

但我确实认为这个想法,而且我认为它们是,它们现在加入了吗?还是因为欧盟的一些变化而被迫加入?我不记得了。但是,你知道,如果你可以做一次,而不用为每一个都创建一个应用程序,你

不同的环境。我认为这始终是一件好事。如果你将其作为渐进式 Web 应用程序来做,那么你只需要你的 HTML 和 CSS,就像,你知道,JavaScript 或你正在做的事情,但它实际上是一个可以在所有不同操作系统上运行的应用程序,这超级酷而且超级有用。

而且我认为即使,我的意思是,显然如果你只在一个公司工作,并且只使用该应用程序,无论它必须位于哪个生态系统中,那就是你的工作,那么你可能不会担心 CSS,这很好。但我认为对于很多人来说,这也不是现实,你并不一定只在一个事情上如此坚持,尤其是在你的整个职业生涯中。它可能是你做几年的事情,但通常你最终会四处跳动并改变,

我认为至少关注了解 CSS 和 HTML、JavaScript,所有这些如何在前端工作,对大多数人来说可能是一个好主意。是的。我的意思是,实际上,我不使用应用程序。

那些没有网络版本,因为我实际上不,我对我的手机非常安全,例如,你不会在我的手机上找到 TikTok,当然不会是微信,也不是任何 Facebook 属性,我只是拒绝安装这些类型的应用程序,因为我知道像 Uber 能够通过 Apple 的系统获得麦克风访问权限,例如,而且很长时间以来,我无法使用许多应用程序,仅仅是因为没有移动应用程序版本,而这些应用程序的移动应用程序版本通常会大大减少。我的意思是,如果你想构建一些重要的东西,并且,并且像让许多聪明的人使用它,而不仅仅是人们,你知道,像漫无目的地滚动浏览你的应用程序之类的东西,你想要一个网络版本。嗯,你想让它像有一个 API,这样人们就可以,你知道,通过所有这些不同的客户端和所有这些东西来使用它。像,

所以我会很快离开我的讲台,但我只想说 Web 应用程序与以往一样相关。如果你正在构建它,就像大多数赚钱的实际应用程序一样,例如企业类型的应用程序和类似的东西,人们在笔记本电脑或台式机上,他们每天工作九个小时,并且他们整天都在使用你的工具。

对。嗯,很多都会在浏览器中,像 Web 应用程序之类的东西。所以,嗯,你会说,你做过任何多平台开发吗,比如构建 Web 应用程序,并在移动应用程序中重用其中的一些内容吗?我没有,除了摆弄一些东西之外,我没有太多经验。因为我很好奇,关于实际的应用程序开发,嗯,

是的。

是的,手机在了解你的位置方面确实带来了很酷的东西。你在一家餐馆。洗手间在哪里?当我身处新城市时,我经常使用 Google 地图,它会绘制一个箭头,告诉我该去哪里等等。所以我不希望你们认为我是一个不欣赏手机使我们的生活更轻松的卢德分子,但我认为它们也……

就像一种捷径技术,就像,它,它就像,呃,我不确定如何描述它,但这就像一个极其淡化的,像平庸的实现,这对很多人来说已经足够好了,但这只是真实事物的苍白模仿,这正是我看待它的方式。嗯,无论如何,像作为开发人员和设计师工作的实际情况,我将问你更多关于 CSS 的具体问题,因为我

正如我在介绍中所说,你简直就是 CSS 大神。你实际上必须写一篇文章说,我不是 CSS 之王,因为人们一直称你为 CSS 之王。我认为你在某种 CSS 战斗中获胜了。你的频道上有一些很棒的 CSS 战斗类型的视频,嗯,你试图快速设计一些东西,而其他人则试图这样做。然后就像谁做得最好或谁做得最快。嗯,让所有测试都通过。这是一件非常酷的事情。嗯,

但你就像与 CSS 同义。每当我听到 Kevin Powell 的名字时,我都会立即想到,哦,CSS 大神,对吧?像,

你如何成为 CSS 大神?从你在加拿大的卑微起源到今天,拥有近百万订阅者和你的时事通讯,你所做的一切,所有会议演讲,给我完整的起源故事。我看过很多你的会议演讲。它不是废话。它是硬核 CSS。如果人们对 CSS 感兴趣……

我认为你是规范的。可能有一些优秀的 CSS 教材,但如果你正在寻找一个活生生的、行走的 CSS 百科全书,我认为你是一个很好的典范。所以我会停止赞美你,让我们深入探讨你是如何到达这里的,伙计?是的。首先,我非常感谢你。感谢你的好意和高度赞扬。是的。

当我想到它时,它仍然很奇怪,看看我现在的位置。这绝对不是计划好的。我知道有些人会出发,他们会说,“哦,我要开始内容创作。”这就像,他们规划了他们将如何尝试发展他们的频道或任何东西,他们的博客等等。我把它作为一个业余项目开始,因为我对 YouTube 感到好奇,而且我对我在工作中所做的事情感到厌倦,基本上就是这样。

所以回到很久以前,你知道,起源故事是,我在 90 年代后期高中时就开始接触 Web 开发方面的东西。只是,你知道,你提到了 Dreamweaver。我会在 Photoshop 中制作设计,将其切片,然后将其带入 Dreamweaver 并为对我来说只是有趣的一些随机事物制作网站。然后它就像慢慢地但肯定地,我不时会做一些事情。是的,

所以它就像,是的,我偶尔会接触到的这个随机爱好。我只是喜欢不断学习新事物和玩弄新事物。所以你会做一段时间,你学得足够了,你停止做它。快进,上学,获得一堆东西的学位,因为我不知道我想用我的生活做什么。我最终从事了设计工作,

我是一个平庸的设计师,赚的钱不够多。所以我开始兼职。我做的许多自由职业工作都是 UI 网页设计方面的工作。我想,哦,我玩过并制作了很多网站。也许他们也会付钱让我把这些变成实际的网站,就像设计被批准后一样。所以我得到了一些客户这样做。

这让我意识到,首先,一旦我弄清楚了,我更喜欢编码方面,因为从制作我的随机小 Photoshop 东西到实际制作可以被客户批准的东西,这是一个很大的区别。但我最终还是弄明白了。

而我实际上是从那里开始的。这是进入 WordPress 开发,在那里我感觉非常深入,做了很多基于 Genesis 主题的子主题工作,我基本上删除了 CSS 文件,从零 CSS 开始创建一个子主题,然后从那里构建它。然后我最终被聘为老师。

教书从来不是我曾经设想过自己会从事的事情。但正如我暗示的那样,我的全职工作收入不足。全职工作加上兼职非常辛苦。我当时刚生了一个孩子。所以不得不,你知道,有了这个和晚上工作等等,有点糟糕。然后我的老学校来了,那里的一个老师说,哦,我们正在招聘。你应该申请。我说,好吧,薪水比我现在得到的要好。我想我可以试试看,看看会发生什么。

从那以后,我最终开始在该学校教授 HTML 和 CSS 入门课程。这就是让我进入这一切的原因。然后我对此感到厌倦,因为我教了几年的 HTML 和 CSS 入门课程。所以只有那么多时间我想花在向人们展示他们的键盘上的花括号在哪里。我想,我将落后于此,无法跟上一切。所以……

部分出于对启动 YouTube 频道的兴趣,部分只是作为我为自己做与课堂上不同的事情的借口。我开始制作 YouTube 视频,然后从那里到今天的样子,这是一个非常缓慢而逐渐的增长。它仍然很奇怪,但我很高兴我现在可以整天做这件事。是的。哇。一些观察。首先,

有一句关于经验的谚语,就像,你知道,你可以有像,仅仅因为你有 10 年的经验并不意味着你是一个经验丰富的开发人员或设计师或老师。嗯,你基本上可以一遍又一遍地拥有相同的一两年经验长达 10 年。很多人对此感到满意。很多人只是工作是为了养家糊口,而且他们没有,他们没有将他们的自尊与他们所做的工作联系起来。嗯,而且坦率地说,在一些领域,

很难想象能够将自己和自我实现与你正在做的工作联系起来。我做过一周的电话推销员。这是一份噩梦般的工作。我根本无法想象这会是一些令人满意的工作,人们会说,是的,我今天打了许多电话。我相信他们会感到成就感,但在做了很多年之后,我无法想象他们会回顾……

认为,哇,那就像一个完整的人生。你知道,就像,就像,他们可能正在回顾他们的孩子和他们生活中所有其他真正有趣的面向,而忽略了电话推销工作。是的。

再说一次,如果有人是电话推销员,没有阴影或任何东西。但这正是我认为令人满意工作的完全相反。当我擦洗杂货店地板时,我实际上感觉更充实了,因为至少我让地板更干净了。我没有通过打电话给他们并问他们一堆问题来惹恼某人,试图引导他们购买他们不需要的东西。所以……

对我来说,当你教了几年同样的基本知识后,你感到厌倦并开始制作视频,这说明了一切。就像……

是的。

我的意思是,显然,如果你能负担得起一个只是站在那里的导师,所以我保证我不会过多地谈论这个,但这在教育中是一件大事。学生与教师的比例非常重要。当你有一个巨大的演讲厅,你有一些才华横溢的人,你知道,写了一些论文并在 50 年前获得诺贝尔奖,在那里演讲,就像那样。

这有点像一种表演或表演,可以捕捉到视频中,因为你不会与一个人进行一对一的对话。也许如果你幸运的话,你可以走到前面,在演讲结束时问一两个问题,但要在视频中拥有它。我认为这就是大学的发展方向。我认为这通常是教育的发展方向,即走向更多个性化和互动性。但是是的,

能够以某种人工制品的形式奠定基础,这要实用得多,也更有趣得多。然后,你与人们相处的时间,能够根据他们的情况定制学习,有点像翻转课堂模式。所以听起来一旦你开始制作这些视频,你就可以专注于更具体的——

不太常见的事情,例如,嘿,键盘上的花括号在哪里?就像我找不到它。我该如何获得它?你知道,诸如此类的事情。对。所以,呃,这,这让你能够拥有高。而我要回到学生与教师的比例,呃,是理想的学生与教师的比例可能是 1:1,学习者:教师,就像,

就像经典的辅导情况一样。有一些论点是关于较小的研讨会类型设置。如果你去像哈佛这样的花哨裤子或任何地方,你都会得到这样的课程,在那里你有一些著名的教授,他们可能有大量的成就。他只是坐在那里与四五个学生一起,他们正在进行一种研讨会类型的课程。但这对于让那个级别声望的人坐在那里和你说话来说非常昂贵。我们谈论的可能是,

每小时几百美元才能拥有五个。所以,所以每个学生每位学习者的成本急剧上升。拥有像 500 人这样的大型演讲厅,并让,你知道,迈克尔·桑德尔在舞台上谈论正义,在我看来,这是有史以来最好的在线课程之一,哈佛的正义课程,这要经济得多。所以,所以我不像是在挑剔哈佛或任何类似的东西,但他们确实,他们确实有优秀的,

免费在线课程,其中一些你可以在 freeCodeCamp 频道上找到。但是,嗯,回到我要说的关于那一点,你知道,你宁愿做什么?教人们,呃,你知道,你已经教过他们很多次的东西,还是能够进入像,

谈论一些有趣的边缘情况,这些情况是通过你的教学出现的。我,所以我只想赞扬你,因为很多人会说,哦,我知道如何完美地完成我的工作。就像我基本上只是在一遍又一遍地回答同样的问题。酷。我只是要这样做,然后退房,玩一堆电子游戏,放松一下,存钱,还清我的房子等等。对吧?就像很多人对待生活的方式,他们很酷,在其他地方获得实际的实现。对。

他们不需要有一个有趣的工作生活。但听起来你对 CSS 充满热情,你对学习和分享你正在学习的东西充满热情,以至于你并不满足于停留在那个高原上。是的。而且绝对……我的意思是,首先,要教几年同样的东西,那里有……

巨大的价值,因为我非常擅长学习,就像如何教授这些基础知识一样。就像我第一次做的时候,就像,我为那个班级感到难过。就像我,我,我知道我犯了错误,但你从中学习,你变得更好。在某一点上,就像你说的那样,就像,好吧,我现在已经掌握了。呃,所以我想做更多,然后

我把它作为一个业余项目开始的。我对它没有任何野心。而且幸运的是,因为它花了这么长时间才真正获得动力,但它达到了这样的程度,如果一个视频获得了 100 次观看,我会说,哦,你知道,这个视频比我一次在课堂上教学的影响更大,就像,因为我的班级有 30 到 40 名学生。所以我想,能够有一个视频接触到比我一次在课堂上接触到更多的人,这很酷。然后显然它的潜力。嗯,

你开始意识到那里可能发生的长期潜力。所以我认为这成为一个激励因素,呃,同时。而且只是,你知道,我,你知道,自私地,这也是我想探索和玩弄的东西。是的。是的。

是的。好吧,让我们花点时间。这不是一个创业播客。我们确实与许多企业家交谈,我认为你是一个企业家,因为你已经设法为自己创造了一种生存来源,基本上就像一个独立的人。你不必一定对你的观众之外的任何人负责,可能就像文本,文本收集车,你知道,但就像,就像,你对其他组织没有那么多的责任,理论上你可以,你知道,可能只靠你积累的动力就能生存很长时间。

对。呃,所以,所以,我没有试图教人们如何做到这一点。这是,你知道,我只是想,你知道,告诉人们,我对想谋生的人的建议是出去为别人工作,并获得报酬来学习。但是,你已经设法做到了这一点。我认为值得一问的是,作为 YouTube 上的创作者,你的职业发展如何?你如何逐渐找到一种方法离开全职教学,并能够专注于你目前正在做的事情?

是的,正如我之前稍微暗示的那样,一开始非常缓慢。嗯,我开始了,但我从开始时就承诺的一件事是尝试每周制作一个视频。而且在大多数情况下,我一直坚持下去。嗯,正如我所说,我有一个年轻的家庭等等。所以如果事情很忙,有时这显然会优先考虑,但我大部分时间都坚持每周一个视频,呃,在最初的几年里,中间有一些休息时间。

我认为前六个月是……我认为需要六个月才能获得 100 个订阅者。在获得 100 个订阅者之间需要四到六个月的时间,视频的观看次数为 20 到 100 次。之后,我开始看到一些势头,但这真的没什么好写的。

在我拥有该频道大约两年后,我才意识到,哦,我开始从这里获得一些真正的收入了。而且不多,但这就像约会之夜的钱或额外的小费。但它甚至不是,我不会认为它是一个兼职工作。这只是一个在旁边出现的很酷的额外奖励。

嗯,然后我认为是在第二年和第三年之间,我想,哦,这开始真正获得一些令人兴奋的势头了,呃,在,在一种令人兴奋的方式中。那时我开始重新,我没有,我不像,哦,我将能够辞掉我的工作,但这就像,这可能会变得更大。我不知道更大意味着什么,但我,感觉好像有,它已经获得了这种势头,并且正在做一些事情,嗯,

事情是,我认为在地平线上。但因为我做着一份全职工作,并且有一个年轻的家庭以及所有其他事情,所以我从未坐下来思考,那更大的事情是什么?而且我没有商业背景或任何类似的东西。我相信如果在与我相同的位置上,有一些更了解这些方面的人,他们可能能够坐下来解决这些方面的问题,以规划事情,并可能获得更快的成功,或者只是拥有更好的,我知道我们正在讨论这个。

嗯,但我确实,我不记得确切是什么时候了,但我确实决定在我的第二年和第三年阶段之间构建我的第一门课程之一,呃,只是为了看看会发生什么。所以我开始了一个时事通讯,因为有人告诉我你应该开始一个时事通讯来,来获得你的观众。是的。

嗯,有趣的是,时事通讯是我现在最喜欢做的事情之一。呃,我在,在星期四早上,我整个早上都空出来只是为了处理我的时事通讯。因为我只是喜欢,这是一种不同的创造性表达方式,我想。这不同。嗯,我不,我谈论的是,它与前端开发有关,但是,嗯,你知道,主题范围更广,它更个人化等等。所以我真的很喜欢写这个。

我花了一段时间才找到这种形式,就像我的声音等等。就像视频一样,我认为如果你开始进行视频创作,那么花很长时间来弄清楚这个过程、你的声音以及所有其他事情是很正常的。所以时事通讯也是如此。它经历了几次迭代,并逐渐发展成为今天的样子。

但是是的,所以从那时起,我卖了一门课程。它没有赚很多钱,但我心想,“哦,这比我去年在 YouTube 上赚的钱还要多,我创建的一门课程。”这很酷。然后我意识到在那次课程发布时,正如我所说,它赚的钱比我认为我在 YouTube 上赚的钱还要多。

不到 10,000 美元。这不是突然间我得到的改变人生的总和,但这就像,“哦,哇,你可以通过不同的方式从这里赚钱。”人们也愿意支持你。那些从 YouTube 关注我的人很乐意购买它,因为首先,他们信任我,因为他们了解我的内容,而且因为他们只是很高兴找到一种支持我的方式,我认为这非常有趣。然后是的,从那里,

该频道确实逐步发展。所以我认为大约在 2019 年初,该频道取得了非常大的进步。这是你制作的几个视频做得非常好的事情之一,然后它会提高频道的标准。所以如果我回顾过去,人们通常认为这是一条曲线,一条不断增长的曲线,越来越多的增长。但对我来说,它实际上就像,

你正在努力,然后你制作了一些不错的视频,这提高了你的标准,然后它又上升了。所以逐步变化。所以是的,没错。而且,如果你不希望我问,我们将在稍后详细解释你所说的一切,但我很好奇,你的一些那些逐步变化的视频对你来说是什么?

呃,其中一个,其中一个更大的,而且同时还有几个,所以我记不清它们是什么了,但在那个时候,其中一个就是你提到的那些 CSS 战斗视频之一。是的。嗯,这是我与 Kyle 合作的第一个,我在他的频道上和他合作了一个,然后在我的频道上合作了一个。所以这两个都导致了大量的增长。而且我认为,

那可能是我第一次制作一个更像的视频,显然它与 CSS 相关。对。但它也是,你知道,所谓的寓教于乐。是的。Kyle 尚未成为 FreecodeCamp 电影宇宙的一部分。我最终会采访他。对不起。他是谁?是的。更广为人知的是 WebDevSimplified。WebDevSimplified。所以他也有一个非常大的 YouTube 频道。是的。

呃,他拥有比我自己的更好的频道。呃,是的。科技或科技 YouTube。在我看来,他就像,我同意。像,呃,莱昂纳多·迪卡普里奥几乎像,是的。无论如何,对不起,我们不会诗意地谈论他,但我只想让人们了解他是谁,因为你提到了他的名字。是的。嗯,所以是的,我与他进行了一些合作,这确实有所帮助。而且正如我所说,这是我第一次涉足更多的东西,

就像娱乐风格的视频一样,这很有道理。因为,这总是最难的事情。就像,即使我的观众都是想要学习前端开发的,每次他们上YouTube时,他们可能都不想查找如何用CSS做某事。通常情况下,人们上YouTube要么是为了搜索他们想要解决的特定问题,要么是因为他们很无聊,想花15分钟看一个傻乎乎的视频,或者其他什么。这让我意识到,哦,人们,你知道,

当然,就像,再说一次,如果我更擅长这种事情,我可能早就意识到了。但是,这种类型的视频实际上可以做得非常好,你可以找到一个交叉点,前端开发人员会为了娱乐目的而观看。这并不是我频道的主要内容,但我尽量每隔一段时间就加入一些。是的,只是为了让事情更有趣一些。

低调,你知道,轻松,更有趣。我认为这很重要,但我仍然坚持99%的内容只是教育性的,不会走得太远,因为我不想成为那些追逐点击量的人之一。我知道很多人因为一直在做这件事而精疲力尽。

呃,所以,你知道,我,在某个时候,我达到了一个阈值,我想,这有效。有足够多的人对我在做的事情感兴趣。我可以继续做我感兴趣的事情,而不用去追逐那些东西。这也很不错。是的,是的。而且,呃,为了再次说明情况,我前面提到过你的YouTube频道,你知道,有近百万订阅者,这些人对CSS感兴趣,而且,

你知道,这是一个非常具体的主题。你并没有真正扩展很多。CSS非常深奥。你知道,有些人会制作,你知道,逼真的,嗯,

合成器,就像相机,就像物理物体,设计精美的物理物体。他们用CSS制作这些。我和CSS艺术家谈过。呃,如果你,如果你喜欢,在你听完这个播客之后,你可以搜索CSS艺术家,free code camp。你应该能够找到它。但是她,她制作了那些逼真的东西。然后有些人制作了完全互动的,呃,

有点像用CSS的体验,其中一些只是互动性是移动你的鼠标。但有些则像你可以在CSS中构建Minecraft一样。是的。

我不确定它是否像图灵完备一样,如果这在今天还有意义的话。但它确实令人惊叹,你可以用CSS深入到什么程度。你选择不广泛地发展,比如,好吧,现在我们也要谈谈Photoshop。或者我们要谈论设计的其他方面。或者我们要谈论的是我们要学习JavaScript课程。不,你就像只专注于CSS一样。我发现这非常令人耳目一新,并且钦佩你多年来一直能够深入研究这个工具。

所以,呃,这不是一个问题。这只是像一个观察。我认为这真的很酷。嗯,让我来解释一下你所说的一些事情。首先,我想解释很多。有很多炒作围绕着成为一个所谓的YouTuber,对吧?或者内容创作者。我不喜欢这个词,但基本上,呃,是的,你可以做很多事情。YouTube很棒。我花了很多时间。我甚至不看Netflix,除了我和我的孩子们一起看海贼王。整个海贼王,

海贼王在Netflix上,拥有Netflix仅仅是为了能够和我的孩子们一起看Netflix是值得的。呃,对不起,我和我的孩子们一起看海贼王。顺便说一句,Netflix上有大量的优秀儿童节目。我们没有得到Netflix的赞助,但如果你有孩子,认真考虑一下Netflix,因为它就像完美的,你知道,让他们坐下来观看的东西。而且,呃,我们用中文观看所有内容,因为我们试图让我们的孩子学习中文。显然,海贼王没有中文配音。我们看了海贼王的英文配音,很棒。配音很棒。无论如何,

我对我对Netflix的少量推荐给家长们。但我想说的是,呃,我,我惊叹于你如何坚持自己的立场,并继续制作这些视频,这些视频只有几十个观看次数。你花了几个月,六个月的时间才获得一百个订阅者。就像,

我认为很少有人有耐心去完成你所做的事情。我认为耐心的一大来源是你一直在做其他事情。这可能只是一个兼职。如果你不播种很多种子,你永远不会收获丰收。所以你有点像在向YouTube频道播种很多种子,就像免费的可卡因一样。同样的事情。就像我们过去发布视频给蟋蟀一样。

对吧?就像,我们会说,哇,那获得了1000次观看。在最初的几年里,我们就是这样。然后我们有一些视频爆炸了。现在,如果只看原始订阅者数量,我们就像最大的编程频道一样。但是原始订阅者数量并不重要。真正重要的是观看时间。我们每月有,比如……

呃,数百万小时的观看时间,我对此非常自豪。呃,这很大程度上要感谢像你这样的人,他们广泛分享他们的学习资源。所以我们,我们已经,呃,多年来跨平台发布了许多来自众多创作者的课程。而且,而且这,这太棒了。而且,呃,你知道,我,我只是想把它放在这个背景下。就像,

你不是一夜成名。你就像那台小小的能干的引擎,可以这么说。我认为我可以。我认为我可以。就像一直前进一样。你在什么时候达到那个阈值?就像你创建了你的课程,并且在那门课程上赚的钱比你从YouTube上赚的钱还多。你说不到1万,但比你从YouTube上赚的多。是的。

你在什么时候真正想到,哇,我实际上可以成为一名技术教育家,特别是像CSS老师一样,我可以使用……我可以扩展我的努力,而不是通过技术一对一或课堂教学。你在什么时候真正意识到这一点,并且想,哇,我实际上可以做到这一点?是的。所以这是……

在2019年,它开始变得……一旦频道有了那样的飞跃,与此同时,我有……在那时,我已经制作了几门其他的课程。所以在这两者之间……在那时,YouTube的收入仍然不算太高,但它与我的课程结合起来已经足够了,我看着它就像,哦,也许这可以成为一件安全的事情。这是一个艰难的决定,因为……

我需要能够,你知道,我在家有两个孩子,我需要偿还抵押贷款,还有所有其他事情。像,离开我的工作是不是很疯狂?所以我和我妻子谈论了这件事,以及随着想法的出现而出现的一些不同的东西。我决定我最终存了一些钱。好吧,所有其他东西的收入在某个时候足够了,我认为我大约存了九个月的工资。我产生的收入大约相当于我的全职工作。

所以我当时想,好吧,我认为现在是安全的,我可以触发它,因为……

我正在产生这种收入,它可能不会在一夜之间消失,但即使它真的消失了,YouTube下线了,我的所有课程都消失了,每个人明天都取消订阅我的时事通讯,至少我有九个月的缓冲期,我可以想出办法。我需要这个,仅仅是因为我的处境。我认为如果我是一个单身汉,住在我的公寓里,花费不多,我可能会更厌恶风险。

嗯,但我花了一段时间才坐下来想,好吧,这实际上是我可以做的事情。然后我确实不得不坐下来想,这是否像我可以做的事情一样,我也想做吗?因为显然,经营你自己的事情和做你自己的事情是非常不同的。但在那时,这不是一个很大的问题,但我确实问过自己,但我对能够独立创业的前景感到非常兴奋。部分原因有点被误导了,呃,

因为我相信……

就像我把它作为一个兼职来做,并全职教学一样。而且,正如你所知,教学是一件非常辛苦的工作。是的。所以,是的,这是一场表演。所以做一个沉闷的老师。你不能有一天休息,然后就说你可以懒散地坐在电脑后面,假装很忙。也许如果你是因为出去玩而没有睡够觉,没有人会注意到。如果你是老师,你站在一群付钱来这里的人面前,或者,你知道,税款支付学校来教他们的,他们的,他们的孩子。

你有一群勤奋的人,他们的孩子都在你的课堂上,他们看着你。你不能懒惰,对吧?它会表现出来。在教室前面无处可藏。是的。所以我相信,我想,好吧,如果我每周可以做一个视频,并且每年发布一门课程,如果我把它作为兼职来做,如果我全职做这件事,我只会成为这个内容创作机器。我将能够……

每周三个视频,另外我还可以做更多的课程。另外,我只是对这将带来的事情有着无限的野心。这并没有真正实现,因为我确实做到了每周两个视频,然后再加上一个短视频,短视频很容易。所以我喜欢短视频内容成为一件普遍的事情,因为它比长视频更容易制作。

嗯,是的,我每周做到了两个视频,然后我很难再做一门课程。我的法律,我刚完成的那门课程,我想花了大约两年半的时间才制作出来。哇。呃,这有点令人尴尬。是的。而且,呃,所以就像,然后我意识到,当我查看我实际投入的时间时,每周两个视频实际上是大量的视频。嗯,

一部分肯定是因为,我认为我提高了质量和研究的数量以及我与兼职时相比所做的一切。但是,是的,我没有,我没有成为我认为自己会在长期内成为的内容创作机器,但它仍然有效,一切进展都很好。但是,是的,我也,我的意思是,我显然还有另一个好处。

好处,也许不是正确的词,但是当疫情发生并且一切都转移到网上时,那正是我做出这个决定的时候,因为频道已经达到了一个新的点。然后我基本上决定了,然后疫情发生了。然后作为一名内容创作者,就像一切都在那一方面爆炸了一样,因为每个人都在观看YouTube视频并在家工作。

所以,从某种意义上说,时机很好,好吧,我现在实际上可以做到这一点。呃,它确实对我有好处。嗯,显然是从商业角度来看。是的。我很高兴它对你如此有效。呃,尽管有一些,我认为每个人,当你真正去做的时候,它比理论上要复杂得多,对吧?就像我们有这个,有一个很棒的优吉熊语录,呃,

理论上,理论和实践是一样的。在实践中,它们不一样。对吧?就像,哦,这很酷。我只需要制作一个视频,我就会得到这种线性增长以及所有这些东西。事情仍然有效。但这听起来你一时之间承担了超过你能力范围的事情,并且你花了一段时间才退后一步反思,弄清楚你将如何让这一切都运作起来并保持理智。是的。完全正确。是的。是的。

所以,呃,现在仍然试图弄清楚一点,但是是的。呃,我想问你关于滑板的事情。你,你玩滑板。

我不太擅长,但说到和你的孩子一起活动,我的小儿子,当他大约八岁的时候,决定他想玩滑板。我当时想,哦,我会和他一起学习。这作为一名30多岁的人来说可能很有趣。但是是的,所以我确实学习了足够多的东西来让自己偶尔受伤。你几岁的时候开始认真对待滑板?是的,那是30多岁后期。

30多岁后期。所以你像我一样,你可能40多岁了。我不会像,是的,是的,就是这样。是的。是的。呃,因为你有一篇很棒的文章,比如,呃,学习滑板帮助我找到了摆脱教程地狱的方法。我只是,我一直认为这是一个很棒的,呃,就像一种反思,首先,如果你能描述一下什么是教程地狱,也许谈谈如何,这个行为,这个过程,呃,

学习滑板如何帮助你消除了一些障碍,并看到一条主线。是的。所以教程地狱就是当你……

学习新东西时,你正在观看教程或阅读博客文章,所有这些东西,你理解正在发生的一切。你观看那个视频,并且这个人编写的每一行代码都是完全正确的,是的,你可以告诉,你知道他们为什么这样做。你可以逐行理解他们在做什么。然后你坐下来做一些事情,你盯着一个空白屏幕。你不知道从哪里开始。

呃,这是世界上最令人沮丧的经历。而且,呃,滑板的想法,或者我意识到的是,你不能,我认为这可能是任何体育活动,我想,你不能真正逃避它,因为当你通过观看或阅读来做这件事时,问题就出现了,就是这样。而且你,你理解正在发生的事情。就像你感觉你应该现在就能做到一样。

然而,如果你谈论的是滑板,那就很有道理了。就像如果你只是观看YouTube上关于如何玩滑板的视频,你甚至不会期望自己能够做到像Ollie一样,或者是在你的滑板上跳跃,或者像任何技巧一样。就像仅仅站在上面,人们就知道会很难,因为你需要平衡,你需要努力做所有这些其他事情才能做到这一点。所以即使你完全理解你需要做什么,并不意味着你实际上能够做到。而滑板对我来说,我,

在家比很多其他事情都多,因为它一开始真的,真的很困难。就像看起来站在滑板上向前滚动并不难。但是,那最初的几天只是在努力尝试,比如,我可以推多少次?就像,你知道,如果你能站在上面三秒钟,你就会非常自豪。

它确实强调了这一点,好吧,我需要知道我在做什么。我需要理解它是如何运作的,但是然后我只需要一遍又一遍地练习做那件非常简单的事情,然后我才能真正知道如何去做。同样的事情也适用于任何技能,但它在那些需要你,你必须能够做到的事情中更明显。所以当你编码时,你,

亲自编写代码的步骤非常重要。所以,如果你看到有人写出来,你知道,你正在跟随演示或其他什么,你可以逐行跟随。就像,好吧,暂停,删除该代码,然后再次执行你刚才做的最后五分钟。

大多数情况下,如果这是你正在学习的新事物,你做不到。就像,哦,天哪,我忘了第一件事。或者,你知道,前两件事,然后某些事情偏离了轨道,你又卡住了。这与试图站在滑板上并摇晃着试图做到这一点完全相同。你有点理解,但就像你还没有建立起你需要的平衡一样。编码也是如此。你还没有建立起足够的知识,

还无法完成这些事情。它只需要大量的重复和经历,学习所有细微之处,理解你所知道的那些事物之间的联系,但你却无法应用。而且它,是的,我认为就是这样。但是如果你坚持下去,你将能够建立这些联系。是的。这就是重点。就像,我只会简短地布道一下。很多人,你

你知道,不能身体上玩滑板。他们可能在无法站立或某种运动问题等方面存在问题。对于很多人来说,尝试滑板可能是不明智的。我不建议70岁或80岁的人这样做,因为他们可能会受伤,对吧?坦率地说,我可能甚至不会尝试。我赞扬你这样做。但是你谈论的事情,我会把它映射到学习鼓上。

好吧,我不是一个真正的鼓手,因为我没有真正的响亮的鼓组。我妻子不允许我给她买一个,所以我只是在电子打击垫上演奏,并使用脚踏板等。这是对实际击鼓的模拟。但是,你知道,就像拥有……很容易观看……

哦,没关系。这是一个非常简单的鼓点。就像你可以很容易地观看视频并认为,哦,打鼓很容易。这有多难?然后当你坐下来,你实际上试图获得节奏和它的物理性时,试图计时,这很难描述理论和实践之间的差异。

在智力层面上,你可以理解。在身体层面上,你未必能做到。而对于编码来说,这恰恰相反。在身体层面上,是的,你把手放在键盘上。你可以机械地模仿Kevin Powell,突然间,哦,我和Kevin Powell一样擅长CSS。看,我的作品很漂亮,因为我只是跟着Kevin的教程做的。但在智力层面上,你未必理解为什么做出这样的决定。你未必理解所有不同层次的

正在发生的事情等等。所以我认为这是一个很好的类比,我正在链接到那篇文章。我鼓励你阅读它。这是一篇老文章,但很好。是的,伙计。就像我认为这真的很新鲜……

我再次赞扬你继续学习新事物。呃,我,我的人生目标不是赚很多钱或帮助很多人,虽然我很乐意这样做,而是带着完全解锁的技能树死去。呃,这对我来说是一件大事,就像,我喜欢学习新事物,我喜欢,前进的动力,呃,就像我得到的一样,好吧,你知道,今天我的鼓技稍微好了一点。也许,也许你,你仍然经常出去玩滑板吗?是的。

我现在有一段时间没去了,但是是的。我绝对可以理解你所说的。是的。是的。就像,所以……我……

我刚要说的是,我妻子,我让我妻子很生气,因为我喜欢一直学习新事物。所以我一直在学习新的爱好,然后说,哦,是的,我正在学习这个。而且,从某种意义上说,我有点惊讶YouTube频道成功了,因为我真的很擅长获得足够的知识,然后说,哦,我现在可以学习其他东西了。我明白了。就像我不,有些事情我想要。现在我认为随着年龄的增长,我喜欢更深入地研究事物。而当我年轻的时候,更多的是像散弹枪一样。让我们学习尽可能多的不同东西。是的。

我的意思是,它们收益递减会更深入。如果可以的话,激活能会,它只会急剧增长。就像,你想要深入研究某些事情,比如,突破的次数会越来越少。对。所以我可以,我可以完全理解为什么人们只想成为一个样样通,样样松的人,但为什么不成为一个样样通,样样精通的人呢?

对。这有点像,我认为只是弄清楚要优先考虑什么。呃,比如,呃,费曼,呃,著名的老师和物理学家,他喜欢玩杂耍。他喜欢变魔术。他做了各种各样的,比如高跷,你知道,骑独轮车,各种古怪的爱好,你知道,就像他,他沉迷于这些,他真的很享受学习新事物,并使用他的思维作为一种,呃,

呃,我不知道。他拥有像孔雀一样的完整大脑,就像每一个不同的技能树都至少略微绘制出来一样。对。我认为这真的很酷。那么,让我们谈谈你将如何学习新事物。也许你在过去一两年里开始学习什么?也许我们可以分解一下你学习新事物的过程。因为我认为这是一个非常有帮助的方法,尤其因为你和我一样年纪大了。这不是你的第一次尝试,你可能多年来尝试学习了很多技能。

是的,这是一个好问题。我正在努力思考我在去年开始学习什么。我想,如果我们要把它与开发联系起来,我已经开始做一些个人项目,比如,如果我要把自己描述为一个前端开发人员,就像,我是一个前端的前端开发人员,显然是CSS,比如,但是像,让我们让事情看起来漂亮。我喜欢这样做。让我们来做布局等等。但是我已经,我已经得到了,嗯,

我一直在做的一个或两个项目都做了很多后端工作。所以它一直在努力学习更多关于数据库和SQL的知识,并从中获得乐趣。所以这是一个有趣的旅程。所以,是的,我认为这是我一直在深入研究的最新事物,因为它不仅仅是为了娱乐而学习。就像我实际上正在尝试将我正在学习的东西应用到我正在进行的项目中一样。

你是如何处理它的?

是的,我确实改变了我处理事情的方式,因为我过去甚至像,即使作为一名老师,整个教程地狱对我来说也是非常真实的,在那里我会遇到像,我想要得到这个,特别是如果它是我正在进行的项目。它会像,我需要让它工作。所以我将遵循一个可以让我到达那里的教程。但总会有教程和你想要做的东西之间的差异。所以你完成了95%,你正在跟随,然后你需要让它做你的事情。然后你就卡在那里了,因为你没有那种基础知识来,

就像是什么,我需要调整什么东西,或者我需要如何调整它才能让它为我工作?所以对我来说,很大一部分是尝试像我所说的那样,就像,我将学习像,基础一样,就像我想了解更多关于像

不是如何完成我正在做的这项任务,而是像,好吧,这里就像,我会看到一个教程,它会谈论。就像,这是你需要做的步骤。而且,我已经非常重视做笔记了。我认为这部分也是因为,当我准备视频和其他东西时,我倾向于做很多要点,只是为了提醒自己所有事情,即使它是一个我很了解的主题。

而且我也在做的时候学到了,当我谈论我非常了解的事情时,我仍然不断学习新事物,因为我只是越来越深入地研究那个主题。所以对我来说,这就像,如果我试图涵盖任何东西,我正在

我试图深入了解某事,而不是像,显然我们需要了解事物是如何使用的。我认为这非常重要,也是学习的重要组成部分,但只是好吧,这是我想完成的事情。然后我遇到像六件事,我只是像,是的,我不知道这些。我需要学习这些部分。

而且,深入研究这些个别的东西并阅读它们。这让我慢了很多,因为我最终会想,“好吧,这是我认为我可以在两小时内完成的项目,或者是我认为我可以在两小时内完成的功能。”然后过了两天半。嗯,

我让它工作,我理解我做了什么以及为什么它能工作,我实际上可以更改它并玩弄它一点。尽管有很多这样的东西,它仍然处于非常表面的水平。因为就像研究某事两天与真正了解该主题的人相比,但这足以让我感觉我正在取得进展,就像我理解我正在做什么一样。我认为这就像,我尽量做到尽可能多的事情,以确保它不仅仅是,我试图不复制粘贴任何东西。我试图理解我实际编写的代码。

与任何事情有关。是的。所以是的,这就像一个初级程序员与一个初级程序员之间的一个巨大区别,他可能只是机械地复制而没有真正理解那么多,坦率地说,你不应该为此担心。你一次试图做太多事情。从机械地复制东西开始。然后随着时间的推移,你自然会开始询问,嗯,这很奇怪。为什么,为什么它那样工作?然后你将深入研究并追随你的好奇心。呃,

所以我不想让人们觉得,如果你尝试打鼓,假设你要同时使用你的所有四肢,对吧?你将用你的左脚踩高音钹,用你的右脚踩低音鼓。然后,你也许甚至会使用一个双踏板来切换。然后你将拥有所有打击乐器,你将拥有所有镲片。然后你会做一些类似的事情,尝试在军鼓上做一些幽灵音符。如果你试图这样做,你永远不会在打鼓方面取得任何进展,对吧。

你应该做的是拿一个鼓垫,练习一些基本节奏之类的东西,并机械地复制非常基本的节奏之类的东西,只是掌握所有这些运动技能等等。我认为开发也是类似的,你应该擅长打字。你应该擅长在文档之间进行制表,你应该擅长查找东西,以及所有这些作为初级开发人员将会遇到的不同事情。我认为这是一种愚蠢的行为——

批评正在学习代码的人,比如,“你甚至真的理解它是如何工作的吗?”他们会到达那里的。对。是的,我百分之百同意。是的,我现在正在处理非常初级的材料。因为我,我的 YouTube 视频或我的,我有一个 YouTube 播放列表。它已经有八年历史了。因为这是我做的第一批事情之一,就像 HTML 和 CSS 入门一样。我就像,它有点,它并没有过时。因为它真的是基础的,非常基础的,但我就像,它可能需要刷新一下。我就像,

试图找到绝对初学者在这个阶段实际需要知道多少信息的平衡是一件很难的事情。而我真正做到的很多事情是在创建内容时,就像,“好吧,我把所有内容都写下来,就像,“好吧,去掉它,去掉它。”他们不需要知道这一点,他们只需要像,他们正在改变颜色。就像,你知道,我正在改变某事物的颜色。就像我不需要了解级联或特异性一样。我们会在接下来的三节课中到达那里,但就像他们学习事物的顺序一样,但只是保持像,

在早期很容易出现认知超载。我认为这是人们在任何事情的早期阶段都感到挣扎的一个重要原因,就像,

如果你正在学习一个新主题,你需要担心语法。你有很多你从未见过的词,你正在学习它们的含义、作用以及它们如何协同工作。然后谈论它的功能以及它实现了什么以及这些不同的东西,就像在学习任何东西的早期阶段都有大量的信息一样。所以,是的,我认为对于减少,对我来说,我认为我正在做的一些事情

我自己在所说的步骤中,试图在某种程度上减少它,就像我正在隔离一样,就像我试图自己做一样,但我试图隔离我想学习的那些部分。所以就像,我不是,

如果我从大局来看待整个事情,我想了解我正在研究的这个新事物是如何工作的。但是然后我只想弄清楚我不理解的前三件事。我只是主动自己弄清楚这些。但同样,我在开发方面有背景。所以就像……

那里已经有许多背景信息或背景知识可以帮助我,当你第一次接触这些东西时,如果你没有这些,是的,要小心认知超载的想法,并感觉你需要理解一切,因为这是不可能的,没有人能做到这一点

百分之百。我还想补充一点,这是对 freeCodeCamp 课程的常见批评,这可能是对你的课程的常见批评。你会有人,比如,空降进来。你为什么不谈论这个?你为什么不介绍这个?你如何才能开设一门不讨论 X、Y、Z 的课程?他们不明白。他们失去了初学者的思维方式。他们不明白第一次接触某事是什么感觉。你必须进行分类。你必须优先进行分类。

某些事情。有时你甚至必须在早期教授反模式,才能让人们能够实际使用最佳实践。

很多人,如果你说,“freeCodeCamp 好吗?”如果你在 Google 上搜索它,你会看到 Reddit 或其他地方的一些脾气暴躁的人说,是的,他们没有教这个。他们怎么能教这个?他们为什么要教 X、Y、Z?那就像,不是没有人使用那个,你知道,就像,呃,你会听到很多这样的批评,但我向你保证,我们意识到我们的教学设计中的这些设计权衡。你也会收到很多这样的反馈吗?你必须像那样证明它吗?

作为一名教师的教学设计决策?是的,绝对的。CSS 有点不同,因为一旦你过了那个开始阶段,你就会进入状态,但是,我有时很想深入研究那些你可以在文档中阅读到的真正细致的基础知识。因为对我来说,当我发现这一点时,很多其他事情开始变得有意义了。

但它也像,我总是不得不提醒自己,我甚至,我写了现在正在进行的课程,我与一些人分享了一些课程以获得反馈。这是一件事,比如其中一课是深入研究其中的一些内容。他们只是说,他们现在不需要知道这个。我说,你说得对。他们不需要知道这一点。把这个加进去是一个错误。但是是的,我,

我提到的任何事情,人们都会对它提出某种批评,比如,你为什么那样做?或者为什么你不那样做呢?我只是说,因为对我来说,这是最有意义的。我认为它能引起人们的共鸣。所以我将坚持下去。我不知道。是的。是的。我只会说,如果你只是走到某个随机的开发人员面前,哦,我应该学习什么?这并不是一个好的练习。不要,不要根据此来决定你的学习。嗯,通常你确实想和一位真正的老师交谈,对吧?

教学是一门专业。老师们有各种各样的教学法,对吧?他们对学习者有一个心理模型。他们知道什么在概率上可能有效,而不是,他们还拥有历史上有效的广泛横截面。他们拥有所有可以指导你的背景,他们可以以某些门外汉无法做到的一种方式来指导你,而这些门外汉可能非常擅长构建某些东西,对吧?就像,就像,

我想想,如果你走到一位经验丰富的鼓手面前,他们在 10 岁时就开始学习打鼓,然后说,“好吧,我应该如何学习打鼓?”他们不一定会告诉你,他们会说,“哦,是的,只要播放 ACDC 的《Back in Black》并一起演奏,你就好了。”这并不是很有帮助,对吧?但这正是经验丰富的鼓手可能会给你的建议,而没有意识到你只会像乱敲乱打一样,而且你不会一定知道从哪里开始。你不是,你知道,就像,就像,

再说一次,我希望我没有越界。我不是一个优秀的鼓手。我是一个非常普通的鼓手,但我正在练习以变得更好。但当我天真地问一些鼓手,我应该怎么做时,这就是我得到的建议,并且在

与此同时,有一些关于打鼓的优秀的 YouTube 频道,它们会把所有东西都分解开来。当然,请记住,如果你只是在网上搜索,“哦,CSS”,你将会遇到更高级的东西。或者如果你第一次接触 CSS 是观看 WebDev Simplified 的 Kyle 的 CSS 战斗,那么你可能会想,哦,它不一定是很有用的。它可以向你展示什么是可能的以及高技能的人如何使用它。

但同样,不要只是设定目标,就像,“我将变得和他们一样,我想在两年内到达那里”之类的。就像我有不切实际的时间表之类的东西。我认为导致人们倦怠的最大原因是他们不去学习基础知识,他们有这种……

直接应用。呃,所以作为一名学习者,你想要做一些实际的事情,你可以构建一些可以向人们展示的东西,比如项目导向的学习。但与此同时,你也不想贪多嚼不烂,因为那样阻力就会击中你,你就会想,“哦,我做不到”,就像某些东西会阻止你,它会越来越难。这就是人们放弃的方式,呃,

他们遇到某种模糊不清的情况,他们不知道如何跨越这座桥梁。我不明白。为什么我打鼓不像尼尔·皮特那样?我一直都在练习很多,对吧?因为你是加拿大人,所以要联系一位著名的加拿大鼓手。再说一次,就像我承诺我会做一些除了谈论鼓以外的事情,但这只是一个我可以抓住并用作我们此处讨论的比喻的主题。是的,一切都很好。

我会说,关于这一点,你让我想到的两件事,我已经忘记了一件,但其中一件,尤其是在我经常看到的视频中,初学者观看它,认为他们正在观看,这个人是一位专业人士。这就是我将在他们心中拥有的任何时间范围内喜欢的样子,就像一位编写 CSS 的专业开发人员的样子。然后我会进行直播,或者我做的一系列视频是未经编辑的。

错误发生了。然后我正在检查,我试图找出错字在哪里。所有这些事情都出错了,我在这些视频上收到的评论数量,人们说,“哦,看到你犯了一个错误真是令人耳目一新。你如何解决它非常有见地。”我认为教学的一件大事就是弄清楚如何调试问题等等。但就像……

我认为 YouTube 教程或视频教程特别存在这个问题,它设定了这种不切实际的期望。因为我已经构建了……我做的任何视频,我已经构建了我正在展示的任何东西。如果我遇到问题,我可以在屏幕外使用代码来参考它,并且……

就像它非常,你知道,如果这是一个 20 分钟的视频,我正在回顾的任何东西的第一个草稿可能需要我 40 分钟或一个小时来构建。我遇到了问题,我解决了这些问题。所以我不用遇到它们,只是因为人们不一定会想看我长时间摸索。但只是那个,就像那个想法一样,对于开发人员来说,坐下来编写完美的代码是不现实的。

当我开始看到关于这方面的评论时,这对我来说真是大开眼界,就像,“哦,我真的很需要确保留下一些错误,即使它像编辑、录制类型的东西一样,只是为了表明没有人是完美的,并且不要给那种虚假的印象,成为一名优秀的开发人员的印象。嗯,

是的,我对此感觉非常强烈。我觉得你可以观看某人的 YouTube 短视频。就这样做,就这样做,就这样做,就这样做,就这样做。好了,你完成了。就像,“哇,你是一位非常优秀的开发人员。”但我什么也没学到。你知道,我学会了尊重你作为一名开发人员。但与此同时,你知道,

演员可以朗读剧本。这可能是来自 Fiverr 的某个随机人在朗读剧本,对吧?可能是代码是由 GPT 生成的,对吧?它可能是被盗的项目,我们都知道,然后他们只是屏幕录制了他们快速打字的过程,或者使用了一些软件来使其看起来像他们快速打字一样。你不知道。而我真正强烈认同的一件事是

你知道,真实地描绘人们,对吧?就像你和我正在进行实时对话一样。这是未经编辑的。我不编辑这些播客。我对此感觉非常强烈。就像如果你和我想要坐下来,我们可能可以准确地找出我们想说的话。我们可能可以拍摄这段视频。我们可能可以将其提炼成要点,然后我们可以成为演员,对吧?我会说,“好吧,凯文,你对 X、Y、Z 有何感想?”哦,这是一个很好的问题。好吧,我认为我们可以从剧本中朗读,我们可以假装

这是一次即兴对话,对吧?有很多虚假的东西等等。你可以做,这就像去看魔术表演与去看街头魔术师之间的区别,他们有所有这些道具和所有这些工具,就在你眼前在野外表演,对吧?就像,

我认为,呃,那种东西,就像软件开发不像,不像看某人玩,你知道,呃,一些电子游戏,像爆炸和果汁以及所有这些事情发生。你实际上是在观看某人打字和思考打字和思考,呃,

也许在像,你知道,网页视图或其他东西之间来回切换。如果你正在使用 CSS,它实际上更适合这种实时教学。就像,你可能可以进行直播,在那里你可以实时构建设计。那将是有趣的。实时构建 API 不会很有趣。可能。哦,是的。你知道,我们在 API 点得到了 200。对吧。但我确实认为重要的是,

我们必须真实,并且至少有一个播客是两个开发人员之间未经编辑的对话,正是出于这个原因,所以他们喜欢开发人员如何交谈,他们如何思考,他们认为什么是重要的,你知道,嗯,那些事情,所以我将离开我的讲台,我有一些快速的问题想问你,凯文,你准备好了吗?是的,绝对的。

CSS 是许多开发人员感到沮丧的根源。我不禁认为他们只是做错了。但你不会当面告诉人们,你只是做错了。这就是你为什么很难过。但是那些讨厌 CSS 或不会使用 CSS 的开发人员,或者我想说只是构建 API 的后端开发人员,他们在做什么错?他们对 CSS 不了解什么?是的。

是的。我认为这方面有几个部分。然而,最大的问题是,因为 CSS 是一种声明式语言,尤其是在早期,比如 background blue,它起作用了,然后像 font size 26 pixels,你的字体变大了。就像一开始很容易,无论你来自哪里,你知道,计算机科学学位,或者你只是从 YouTube 视频、博客文章或其他任何地方学习 HTML 和 CSS 的人,就像

当你第一次开始做的时候,它的简单性让它看起来像是一种非常简单的语言,直到突然变得更复杂。但由于它的声明性本质,你告诉它做某事,它就起作用了,在学习它的最初几天里它一直在这样做,所以当你开始遇到问题时,许多人首先会感到,哦,它坏了,或者它没有按照我告诉它做的去做。因为到目前为止,它一直非常简单。所以我想……

它有点让我们误以为它是一种比实际更简单的语言。因为在幕后,特别是关于布局的东西以及许多其他东西,一旦你过了那些非常基本的声明,

你开始遇到浏览器在幕后使用的算法来计算所有这些东西,这些算法非常复杂。我们必须使用属性值对的声明式语言来控制这些超级复杂的算法。因此,正是这些对这些真正复杂事物的简单控制隐藏在幕后。所以我认为很大一部分原因只是没有意识到它实际上可以有多复杂。

然后,因为你没有深入研究它,因为它就像,“哦,这是一种简单的声明式语言。我不会去学习这些算法是如何工作的,什么是布局算法以及不同的格式模型以及所有其他东西,因为你从未想到你需要这样做。我知道对我来说,在教授它的时候,那是……

我获得的能够理解的信心数量,就像如果我现在有一个我从未接触过的新事物,我的意思是,我已经谈论它并教授它超过 10 年了。所以希望我理解得相当好,但是很多早期的教学迫使我学习这些底层的东西,嗯,

让我对这种语言有了更深入的了解。我认为这是很大一部分原因。这是你很少听到关于格式化上下文的事情。它根本不会出现。当你使用 display flex 时,实际上发生了什么?或者当你使用 display grid 时,好吧,display flex 创建列,但它是如何计算这些列的大小呢?我认为初学者也不需要知道这一点,谈论这一点。但一旦你对这种语言有了相当好的理解,或者你开始遇到一些无法工作的问题,它就像,“好吧,让我们深入研究一下……

这应该这样工作,或者我认为它应该这样工作。就像,为什么它没有这样做?实际上有一个,就像,有很多,人们总是说,它是一种反直觉的语言,但是一旦你理解了为什么做出这些决定以及幕后的事情实际上是如何发生的,它实际上就很有意义了。它变成了这样一种东西,总是有这些小事情。

它的一些东西可能会有点烦人,但在大多数情况下,大多数事情实际上都非常直观,一旦你理解了它发生的原因,就会很有意义,是的,所以如果我可以总结你刚才所说的,它具有欺骗性地复杂,人们认为,“好吧,我明白了,这很容易”,然后他们说,“等等,为什么它没有按照它应该做的去做?”那是因为他们低估了它的复杂性

嗯,这与很多事情都一样。就像如果你只是上法语课,你知道,练习你的法语,然后你说,“好吧,我要去法国,就像,我会没事的。就像,这并不难。这很容易。然后你进行的第一次对话,你根本听不懂他们说的话。就像,“等等,为什么他们说话不像我的法语书里说的那样?”好吧,问题是,你低估了学习法语的复杂性,对吧?你低估了,生活中几乎所有的事情都是这样的,但是人们忘记了,人们忘记了,

宇宙是复杂的,宇宙并不关心。它没有义务让你容易理解。所以我认为人们脑子里有这样的想法。CSS 就像,“哦,是的,这就像儿戏。没什么大不了的。它甚至不是一种编程语言,你知道吗?”然后当它没有完全按照他们的预期那样做时,他们就会生气,因为他们不知道它是如何工作的。所以是的,完全正确。是的。是的。很棒的答案。

你当然是一位课堂老师。而且,而且,你知道,我过去也是一位课堂老师。我非常重视教学经验。呃,而且,嗯,大多数 freeCodeCamp 的员工在某个时候也做过课堂老师。嗯,

作为一名真正的课堂老师是如何影响你对 YouTube 教学的态度的?你认为那些没有在课堂上教过书的人可能不会想到的一些重要的收获是什么,呃,如果你是通过教程教学,你可以通过像老师一样思考来解锁的技能,或者可能是志愿服务或辅导或做一些类似的事情,这在教学或,呃,领域。如果你想成为在线教师,你认为追求这一点是否值得,实际上花一些时间亲自教学?

百分之百。我认为你获得的见解,你之前提到过要回到初学者的思维方式。如果你只是在线教学,你可以尝试让自己到达那里,但你并不总是意识到你正在采取的步骤。而如果你在课堂上教学,你说了一些话,也许使用了你甚至没有意识到的专业术语,因为你已经习惯了使用它,或者你谈论了一些具有隐含知识但实际上没有人拥有的东西,

当你进行面对面的教学时,你立即看到的房间里那些茫然的脸会让你意识到这一点。然后你得到的问题,对我来说,我认为这是最重要的事情……尤其是在……

我的一些视频中,我收到了评论,我正在做的许多初级内容,人们在我的视频中说,就像我正在回答他们提出的问题一样。我能够做到这一点的唯一原因是我已经知道他们的问题是什么,因为我已经在课堂上反复地遇到过它们了。所以我了解会提出的问题,如果我说这个,人们会想知道其他事情。所以我能够像

把它融入我正在制作的视频中,我可以回答。我知道由此产生的问题,是的。它让保持初学者的思维方式变得容易得多,因为如果你没有,他们会通过询问所有这些事情并让你想出解释和理解事物的新方法来迅速让你到达那里。而且,很多时候是,

你变得更擅长将复杂的事情分解成更小的部分,因为当你第一次教某事时,它几乎需要是微观的。是的。百分之百。呃,有句谚语,嗯,它就像一句非常好的尤吉·贝拉的名言,我突然忘记了。呃,我以后可能会记住它。嗯,我只是想观察一下。嗯,是的。是的。

过度自信是一种疾病。反馈是治愈方法。而你……

你知道,教学,也许有一些人留下评论,就像对于每一个想到类似想法的人来说,也许每千个人中只有一个会费心留下评论。就像,“是的,我不知道我是否理解你刚才所说的内容”,或者“我不同意你的观点”之类的,对吧?就像大多数人只会说,“嗯,我不明白。”然后他们就会继续前进。也许他们会离开视频,也许他们只是继续观看,这只是一个一闪而过的想法。但是当你亲自教导某人时,这行不通,你可以立即看到

你学习者、学生脸上的困惑。你就像,“嗯?好吧,让我尝试另一种解释方法。”因此,当你亲自教学时,你可以非常快速地迭代你的教学风格。所以是的,我认为这是一个非常敏锐的观察。UI 框架和设计系统之间有什么区别?你能描述这两件事,并可能举一些例子吗?是的。所以我想,

UI 框架,我认为,应该是像 Bootstrap 这样的东西,我认为如果他们做过前端工作,大多数人都很熟悉,它是一种 UI 组件为你准备好的东西。你使用你的 button 类,你有一个按钮,然后有一些修饰符类,你可以更改这些东西。因此布局就在那里。他们有 jumbotron。他们拥有你可以使用的所有这些不同的部分。所以所有这些 UI 部分都是为你准备好的。而像设计系统这样的东西……

更深入一步。例如,你甚至可以有一个设计系统来指导你如何设置所有 Bootstrap 样式。所以 UI 和设计系统之间是有联系的。大多数情况下,设计系统从非常基础的层面开始,例如,这里列出了所有正在使用的颜色。然后,你知道,假设有 60 种颜色,它们都在那里。然后你将这些颜色连接起来。通常设计系统有不同的层次。所以你会有像

某种抽象的东西,或者说,不,我,

我忘了我们称它们为什么了,但就像是一些通用的标记,比如颜色 red 400、red 500、red 600。然后你可以在其之上添加语义层,你的警告颜色可能基于 red 400,但你不用担心它是哪种红色。你只需要知道它是我的警告颜色。所以在系统中使用它时,你就可以使用它。然后,设计系统就是一种更深入的方式来构建它,就像构建 UI 的所有层次一样,并且

嗯,如果这说得通的话。好的,太棒了。所以我的一个问题是,围绕 CSS 的工具已经得到了很大的改进。即使在 2012 年左右,你也可以使用 Bootstrap,你只需要说,我不需要考虑太多 CSS。我只需要学习一下类是什么。CSS 类是什么,我将它们应用到我的 div 中,然后就完成了。我的网站看起来会像其他人的网站一样,但它看起来足够好。

对。今天很多人对此感到满意。工具正在变得更好,对吧?例如,你可以使用所谓的 AI 工具,其中很多实际上并不是 AI。它们只是,你知道,模板,现在一切都是 AI,因为这就是随机从模板中挑选不同部分的东西,这就是 AI。是的。是的。

是的,这基本上只是条件逻辑或某种随机数生成器逻辑之类的东西。也许他们确实在某个阶段、某个层面上整合了大型语言模型。但我的意思是,工具正在变得更好。你会如何证明在实际学习前端

设计概念和学习像 CSS 这样的工具方面投入大量时间和精力是合理的。当然,还要学习相关的 CSS 网格和 CSS flexbox,我认为我说你鼓励人们学习这两者以及学习它们在底层是如何工作的,这并没有错,使用使这些功能成为可能的原生 CSS。嗯,

你学习这些东西的最大理由是什么?如果你对是否应该费心学习这些东西犹豫不决,或者 AI 是否会解决所有问题,我会说首先要问的是,你为什么要使用其中一种?例如,我看到我孩子的

网站内容,如果我必须登录他们的帐户才能为他们的学习做一些事情,那就是新的。我不知道它使用了什么,但他们旧的肯定使用了 Bootstrap,它只是连接到后端。你知道吗?为此,它运行良好。如果这就是你需要的,因为你只需要一个简单的界面供某人使用,并且后端和功能比我认为这更重要,那么这对于这类事情来说是完美的用例。

但我总是说你可能需要学习足够多的原因是,你总是想要进行更改、调整或做一些事情。这时你就会开始遇到问题。所以当你依赖这些系统时,你

或者你已经设置的不同内容。一旦你需要做一些兼职工作,事情就会很快失控。因此,如果你了解核心语言的工作原理,当你需要进行这些更改时,你实际上会有很好的方法来做到这一点。这可能只是关于构建一个在现有系统之上工作的层。所以你正在使用……

Material UI,你只需要进行更改,或者你需要实现自定义内容,因为它没有涵盖你需要的每一个用例,或者它需要从现有内容中进行调整。因此,你只需在其上添加一层。这一层可以做得非常好,并且运行良好。

或者如果你只是将东西扔到墙上,希望它能起作用,因为你只有一个用例,但随后你又有了第二个、第三个和第四个。它只会变成一个难以维护的堆叠层,而不是一个运行良好的东西。所以这就是我真正认为深入了解 CSS 本身有很多价值的原因之一。

另一个原因是,CSS 现在变得越来越……过去是,好吧,列,我们需要创建它们。但是现在 CSS 中出现了许多功能,它们更……我不知道它们如何整合到这样的系统中。我们即将推出弹出式内容。我们有滚动驱动的动画、子层……分层是不同的东西,但子网格。子网格很难构建到……

这些更通用的情况下。因为它实际上是针对那些需要在特定情况下稍微独特一些内容的一次性情况。因此,随着 CSS 变得越来越复杂,我认为依赖这些其他内容可能会阻碍你实现可能性,或者让你依赖次优的解决方案。如果人们没有看到弹出式内容,如果你一直在使用像第三方 JavaScript 这样的工具提示,

呃,以及所有内容,你将会对即将推出的弹出式内容感到非常兴奋。但是还有其他用例。我只是认为这是两件事的结合:能够解决你需要的难题。以及所有即将推出的新内容,嗯,

除此之外,它们可以再次为你提供额外的层,或者很多时候人们依赖这些第三方内容,而你可以使用你自己的代码,因为它不需要任何复杂的东西,并且可以自己编写。我一直很喜欢这样做,但我喜欢编写 CSS。所以我在这方面有偏见。所以我从你的回答中得到的是一个细分,因为你说过很多事情。可维护性,显然很重要。嗯哼。

独立于依赖项。我的意思是,依赖于一个工具,特别是如果它是一个付费工具,这是一种在很长一段时间内花费大量金钱的好方法。这就是许多低代码工具和无代码工具。我认为它们很棒。我们也使用这些工具,即使我们是能够做其他事情的开发人员。很多时候,使用这样的工具更快更简单,但你必须接受这些事情是有成本的,并且

实际上知道如何自己动手,并使用你自己的控制来正确地完成它,并确切地知道发生了什么,这使得维护它变得容易得多。事情不会杂乱无章地随机出错。然后你就会说,我不知道我该如何开始解决这个问题。你不会向某个不相关的库提交一些工单,希望他们最终能够修复……

底层问题。因此,可维护性、控制,以及随着工具的进步等等,你的代码库不一定是,你可以添加内容,因为你了解如何使用它们。我的下一个问题与 CSS 本身的进展有关。CSS 作为一个组织是如何运作的?你最期待从其中获得的一些最重要的东西是什么?

是的。所以一切都是通过 W3C 或 CSS 工作组进行的。所以它是 CSS WG。你经常会看到它出现。CSS 工作组基本上决定一切,但所有这些都是公开进行的,无论何时出现新功能或任何新内容,你都可以参与其中。现在关于砌体布局的争论非常激烈,

这很有趣,因为它有点像苹果与谷歌之间的斗争,即使它实际上并非如此,但 Safari 团队都有自己的想法,谷歌团队或 Chrome 团队也有自己的想法,这些想法是完全相反的。所以现在在 GitHub 上有一场激烈的辩论。讨论正在进行中。你可以看到其他人的说法。你可以说说你的想法。在过去,工作组非常

做他们自己的事情,然后他们会实现一些东西。然后就是这样。他们意识到他们正在犯……有一个页面,我总是记不住它是什么,但是如果你去……也许是工作组的页面。它要么在工作组页面上,要么在 w3.org 上。我不记得了,但它就像他们承认在 CSS 中犯下的错误一样。它可能列出了大约 30 件事情。

所以,就像,已经犯了一些错误。其中一些只是措辞、语法、呃,不同的东西。这仅仅是因为他们做出决定的速度太快了。呃,所以他们意识到现在有了……

当我们做出决定时,它现在将永远存在。因此,他们花费更多时间来确保这些事情确实有意义,并且没有错误,无论是可以改进的语法问题,还是它的工作方式、功能。所有这些不同的方面现在都得到了更多的考虑,他们通常会寻求更多用户的反馈。

顺便说一句,这太令人耳目一新了,太棒了,他们只是……我想花点时间来阐述这个过程的优点。是的,它有点慢。是的,你可以采用独裁模式,有人会说,我们将这样做,然后每个人都这样做,对吧?或者你可以采用这种模式,它完全像一个巨大的社区,就像一个加班……

出去了,对吧?做出决定需要更长的时间,但这个决定可能是一个更高质量的决定,并且它是透明地完成的,你可以更好地理解其背后的动机,因为你知道谁参与了所有决定。这有点像对这种联盟方法的论证。这就是科学通常的做法,对吧?例如,

它与政治之间的区别在于,政治通常是由某人做出决定,然后找出一些事后解释来解释这个决定。而且每个人都在这样做,你知道,所以,所以我很喜欢这种方法,我正在链接到那个页面。有几十件事情是永久性的,你知道,CSS 中的缺陷,你不能真正删除它。对。因为有些人依赖它。你只需要接受,

然后继续前进。我觉得这个播客,也许我说错了。我可能,这已经困扰我一段时间了。我可能说过你可以在 CSS 中构建 Minecraft,但我实际上指的是扫雷游戏。还有一个链接到 CSS 扫雷游戏。

在视频描述/播客节目说明中。但这不如在 CSS 中运行 Minecraft 那么令人印象深刻。但是,仍然会有一些错误,我们只需要承认这些错误,而不是试图抹去历史。我喜欢他们没有试图让自己显得过于光鲜亮丽。他们只是……

工程师,其中许多是志愿者,他们正在帮助推动我们使用的工具的最新技术水平和状态,以及我们用来构建最新技术水平的状态。还有许多其他事情依赖于此。他们意识到自己在等级制度中的位置。他们意识到,作为一个基础,他们不能做出太多突然的举动,否则上面的东西就会开始动摇。人们会说,

人们开始变得非常焦虑,对吧?我们在开源世界中经常看到这种情况。例如,某个底层工具的许可证发生了更改。突然之间,一切都悬而未决,一片混乱。这真的很可怕。我喜欢 CSS 只是一个开放标准,我们不必担心有人拥有 CSS,就像 Java 被 Oracle 收购一样。这让我感到恐惧。

对。无论如何,呃,非常好。感谢你提供背景信息,并指出那个有用的资源。我鼓励任何使用 CSS 的人都去看一下所犯的错误,然后了解这些错误是很好的,但是你可以说,哦,这是这里,但你不应该使用它。你知道吗?嗯,是的。嗯,所以另一件事我很快就会提到,因为我知道你想让我谈谈我期待的事情,但还有一件事确实有助于推动事情发展,那就是最近的……

三年,我认为是两三年,所有浏览器都与一些独立组织和用户反馈一起进行了互操作性测试。提交用户,但它就像,这里是我们想要确保在每个浏览器引擎中都得到正确支持且没有错误的所有功能。因此,他们收集反馈,创建此列表,然后互操作性组创建一组测试来

对所有浏览器进行测试。到年底,目标是所有浏览器都能使用所有这些东西来完成这些事情。所以 2024 年的目标是,他们有很多很酷的东西。

这只是为了确保这些即将推出的新功能实际上正在所有浏览器中获得支持,而且也没有错误。浏览器同时在这方面合作真的很酷。他们与工作组一起工作,但也要说,是的,让我们确保我们不会处于浏览器支持不同功能的奇怪境地。

是的。是的。这是一个……你知道,很多人甚至不会考虑的复杂性,但我们仍然生活在一个多浏览器世界中,很大一部分人使用 Safari,很多人试图使用 Chrome 的替代品。所以我们仍然有 Firefox 用户。这很难说。然后我们还有使用其他浏览器的人,以及关注隐私或安全的事情。所以,是的,是的。

感谢你让我们了解 CSS 作为工具是如何运行的。我想问你的其中一件事是,传统设计技能在多大程度上可以从 CSS 中转移过来?例如,假设你是一位平面设计师,习惯于进行印刷工作。我们在 freeCodeCamp 播客上有很多做过平面设计师并转向 Web 开发的人。他们必须学习,你知道,基本上使用 CSS 进行 Web 设计。有多少,

技能集在哪里重叠,相似之处在哪里开始分解?是的,我认为在以下方面肯定有相当多的重叠……我最近实际上做了一个视频,谈论了其中一个最大的设计软件是 Adobe 的 InDesign,这是一个印刷软件。我喜欢它。它是一款非常棒的软件。我不是 Adobe 的忠实粉丝,但 InDesign 非常棒。其中一件事……

它非常擅长排版样式。实际上,如果你以正确的方式设置它,你是在基于样式和其他内容,它的工作方式与 CSS 在继承和级联方面的工作方式非常相似。所以我认为,而且只是使用段落样式、字符样式,这类东西与 CSS 如何使用类相关联。正如我所说,继承和其他内容。所以,嗯,

我认为一些像概念、大图概念以及事物之间如何运作的关系肯定存在。

拥有这种想法,例如以某种方式组织事物,无论是,你知道,它可能是一件不同的事情,但如果你在设计软件中使用图层和其他内容,只需知道,好吧,我需要将我正在做的一切都组织好。这有助于维护我的项目和项目的可扩展性。如果你拥有这些类型的技能来从大图的角度看待项目,百分之百,它会得到回报,因为 CSS 的可扩展性和维护性始终是那些可能很困难的事情。

因此,如果你以正确的思维方式进入,即使它是一种新的语言,并且它的工作方式与你习惯的不同,至少你拥有这种正确的思维方式来处理事情,我认为,或者至少提出正确的问题,并使自己处于良好的位置。最大的区别显然在于印刷,你制作的东西不会移动或不会改变。或者即使你只是来自,它不必是印刷,任何类型的设计,你通常都在处理静态布局,并且不仅考虑如何

静态到我们谈到的响应式 Web 设计,但它是,你知道,你不会做移动版,然后是平板电脑版,然后是桌面版。这是你可以在设计软件中做到的。但在现实世界中,所有这些以及你能想象到的所有其他内容,这要困难得多。我认为这需要一点思维方式的转变,嗯,

意识到那里的差异。实际上有一个非常好的视频。说到 Firefox,那是 Miriam Suzanne 还在 Firefox 团队工作的时候。它被称为“为什么 CSS 如此奇怪?”并且

在其中,她只是将所有内容与印刷进行了比较。从分辨率、色域来看,你考虑的所有不同的事情。你知道,有些人,它是一个查看网站的屏幕阅读器吗?用户与之交互的不同方式?而如果它是一个屏幕上的静态内容,有人正在查看它。而某人可能正在使用键盘浏览页面。某人可能正在使用鼠标。它可能是一个指针或触摸设备。有各种不同的屏幕尺寸。只是

只是基本上有无限多种用户可以与你的网站交互的方式。我们必须考虑所有这些,或者至少意识到这是一种可能性。我们没有最终的控制权,因为用户可以进入他们的设置并更改。无论如何,在 Windows 中都有一个强制功能。

在系统级别,有一个强制颜色模式。你所有的颜色都不见了。我认为有六种基本颜色。用户可以选择不同的主题。它只是删除了网站中所有这些颜色,例如画布颜色、文本颜色、链接颜色。还有一些其他的。知道实际上是用户最终控制着网站的消费方式,我认为这与我们以前使用的任何其他媒介都不同。是的。是的。

许多从事开发工作的人,例如从事移动应用程序开发的人,例如更现实的是,许多人,大约三分之一听这个播客的人是学生。三分之一的听众是正在工作的开发人员。三分之一的人是其他领域的人,他们试图转向成为开发人员。因此,对于许多这些人来说,他们正在考虑,哦,我将要构建移动应用程序。

你知道,移动应用程序是未来。我不太关心网络。在我看来,主要从事移动应用程序构建的人是否有理由仍然投入时间和精力来学习 CSS?是的,我认为是的。我认为这有点像你前面提到的那样,例如,首先,仍然有大量的用户群在使用台式机或计算机或其他东西。例如,他们不一定下载应用程序。我认为……甚至,像我……

我像你一样,如果可以的话,我更喜欢只拥有网络体验。我知道我们并非孤例。我认为很多人确实更喜欢这种方法。我还认为这是一件很难知道的事情,但 HTML、CSS 和 JavaScript 只是这些没有人拥有的核心语言的优势之一是一件非常重要的事情。我认为

比……更有持久力。

而且,你知道,Android 和 Apple 看起来好像永远都在这里。但我认为我们过去也对以前的事情说过同样的话。你永远不知道会发生什么。我认为如果你要从一种类型的移动开发切换到另一种类型的移动开发,你可能可以,你知道,如果你对编程有足够的了解,你就能弄明白。这不像,哦,我的天哪,我从头开始重新开始。但我只是,你知道,开放。我很喜欢了解基于开放标准构建的内容,因为我认为它只是……

具有最大的增长潜力和持久力。是的。是的,百分之百。例如,很难想象苹果和谷歌在移动应用程序、移动电话上的双头垄断会消失。很难想象移动电话会消失,但我们很快就会拥有智能眼镜。

这将是一个巨大的突破,因为不必查看设备,只需将所有内容都显示在那里,或者谁知道,也许我们甚至会有脑机接口之类的东西。其中一些东西非常可怕,但它可能会出现,人们可能会对像将他们的大脑连接到接口这样的隐私影响感到满意,并且,你知道,知道如何使用 CSS,呃,这是一个如此成熟的模式,以至于

未来,你知道,界面设计可能会很大程度上源于 CSS,因为没有,没有像 CSS 那样被充分探索和规划的东西。至少据我所知,它是迄今为止最复杂的模板工具。对。

嗯,所以,所以是的,有一个很好的理由可以认为,即使你没有直接使用 CSS,如果你正在使用 React Native,或者如果你正在使用,嗯,Flutter 开发或类似的东西,我认为你可能在其中一些内容中使用了 CSS。使用 CSS 可能比使用……更好,例如,你知道,谷歌的应用程序 UI 库之类的东西。嗯,它可能更好,因为你可以使用它并在更多地方渲染它。如果它被转换成其他工具,则可能会有伪影之类的东西。所以,如果可以的话,回到基础,使用原始工具 CSS,Web 的三个工具之一,对吧?HTML、CSS、JavaScript,呃,

理论上,所有事情都可以使用这三个工具完成,即使它不一定是最好的方法。你已经为投资时间做出了令人信服的论证。所以还有两个快速的问题。其中一件事,你一直在学习。你写了很多博客。你鼓励其他人写博客并在公共场合学习。你为什么认为分享你的见解如此重要?作为一名教师,是否存在某种结构性因素可以通过谈论它来加强学习?是的,我认为……

当我开始教学时,我很快意识到我学习我试图教授的内容要好得多。这不仅仅是制定教学计划,因为显然你必须规划你的课程,你需要研究它,找出所有内容。但是,我很多次都在解释某事的中途,我的脑海中突然出现了一个灯泡,我正在建立这种联系,仅仅是因为我试图解释某事。在……

试图用语言表达它。写作也是如此。如果你正在撰写博客文章或其他任何内容,例如当你浏览时,而不是仅仅理解它是如何工作的以及能够做到这一点,当你试图向某人解释为什么那件事会做它所做的事情时,你就会无意中建立你以前没有建立的联系。你以比你更深入的方式学习主题,

这听起来像,哦,是的,我确定确实会发生这种情况,但我认识的所有做过这件事的人都证明了这种事情,你只是,你只是开始以新的方式理解它。再次,你只是试图做,我认为你只是使用了大脑的不同部分,而不是我试图做这件事。我试图解释它,它只是迫使你更深入地分解它,并以更深入的层次理解它。我发现,是的,它确实改变了我的生活。它使我擅长我所做的一切。我认为,

它在这方面确实有帮助。我认为在公共场合学习也是一种非常好的方式来建立

让自己与众不同一点。例如,如果你是一位正在学习的学生,只需将你一路学习到的所有东西都发布出来,这就能建立你的网络形象。它向人们和潜在的雇主展示了你的能力。你正在建立一个内容目录,你可以展示你所做过的不同事情,而不仅仅是一个项目,你知道,另一个待办事项清单,你正在深入研究待办事项清单,它是如何工作的,它的所有不同部分。所以你向人们展示了,

比如他们在面试中可能会问到的答案,他们看到了,你知道,这些事情已经存在了。我认为这是一种非常好的让自己与众不同的方法,并且拥有这个额外的资料目录来炫耀。我认为,你知道,两者结合起来,我认为这是一个相当有说服力的理由,说明人们为什么应该这样做。是的。这是一个很好的说法。就像你在综合,你在学习。这与说话没有什么不同,就像,你知道,

想想骑滑板和实际出去骑滑板,在某种程度上,你拥有所有这些知识,也许你在思考它,但通过实际表达它并试图将其打包以便另一个人理解,它迫使你真正地掌握它。我相信爱因斯坦说过,如果你不能向一个五岁的孩子解释某事,那么你自己就不够理解它。

所以它迫使你努力掌握它,最终获得理解,也许去掉很多粗糙的棱角,意识到你自己的知识的局限性,并弄清楚你需要去学习什么。所以,是的,绝对的。这,这真的很好。这也是一个非常好的观点。它让你更清楚地认识到自己的知识差距。

是的。因为很多人把你视为 CSS 之王,即使你已经放弃了这个称号,但因为你在 CSS 领域如此有影响力,你在我听过的许多播客采访中说过的一件事是,你经常说,

即使是一句随意的评论也会影响某人,即使是一些随意的评论。这就是为什么我喜欢,我尽量小心我说的话,即使在我参加这个播客时,我听起来好像得了口语腹泻一样。我喜欢花很多时间,就像思考,好吧,在这里说什么才是负责任的?对。我不想不负责任。我认为有很多播客,人们只是不负责任地谈论

关于他们不太了解的事情。我试图在我的相对专业知识的范围内活动。但是,你如何在知道很多人可能会把你的话当真时分享你的观点呢?你如何谈论那些你并不完全理解或对自己的完全理解没有完全把握的事情呢?是的,我认为我已经变得更加

让人们知道什么时候是,即使我最近做了一个研讨会,在研讨会期间,我所说的很多话都是像,这就是我喜欢这样做的方法。这就是我喜欢这样做的原因。

对像,这是,你知道,它对我有用,因为,并向他们展示原因,但也有一些替代方案有效,而这些是其他人的替代方案更好。如果,你知道,也展示了这一点。呃,所以我认为我更多的是,我很乐意让人们知道我并非无所不知,或者说,你知道,我的方法不是唯一的方法,并确保人们非常清楚这一点。

而且,我发现 YouTube 视频很难做到这一点,因为我仍然会收到评论,我会做一些事情,就像你说的那样,这是一个随意的评论,并且有回复。我只是想,哦,是的,我想我本可以这么说得更好一点。很多时候这没什么大不了的,但这可能只是像,哦,我们的……

我有一个视频,我使用了比较复杂的方法来做某事。然后有一条评论说,你为什么不这样做呢?这就像,是的,我可能应该那样做。我希望这是一篇博客文章,我可以稍微编辑一下,添加一个注释,但我猜我可以在 YouTube 视频上固定一条评论,但仅此而已。但是,是的,必须更加注意人们是否信任我作为专家。所以,

首先,确保他们知道我什么时候谈论我不完全确定的事情,或者存在讨论的空间。还要尽量避免展示不好的做法或错误。这也是我认为专注于单个主题非常好的原因之一。因为我对很多我谈论的事情都很有信心。

每当我做一个稍微超出我舒适区的视频时,由于需要进行大量的研究和其他工作以确保我真正做对了,所以需要花费六倍的时间来制作。是的。我的意思是,我钦佩你的认识论上的诚实。我觉得……

在卖出和说,“哦,我们将成为一个,我们将成为一个政治播客。我们将成为一个流行文化公园八卦播客。”方面有很多收获。就像,就像,我相信你可以和其他人一起加入潮流,谈论人工智能,谈论任何当天的热门话题,但你没有,你坚持自己的领域,而且,

发布——我不知道你的频道上有多少百个视频。太多了。这是一个关于 CSS 某个混蛋的视频。但这是一项诚实的工作,而且必须有人去做。这些主题必须被涵盖。它们必须被教授。我只想最后表达我对这样一个事实的钦佩,你已经建立了这个利基市场,而且你没有——你不是像——

四处走动,表现得像你是世界上最好的开发者一样。呃,你只是说,嘿,我是一个对 CSS 很有经验的开发者。我认为这在人们伪装自己和夸大自己专业知识的时代是如此令人耳目一新,因为许多天真的人会追随那些夸大自己专业知识的人。我非常喜欢这样一句话:如果你只能擅长一件事,那就是擅长说谎,那么你就能擅长所有事情。是的。

对吧?人们实际上总是会相信这些东西。很多人并不那么老练。我意识到你正在做出牺牲,你可能会成为这个大人物……我不是说……

你可以走 Mr. Beast 的路线,用你的 YouTube 频道做一些疯狂的耸人听闻的事情,对吧?只是发布疯狂的耸人听闻的东西。但是不,你只是坚持艰苦的工程。所以,我将以向你致敬来结束,感谢你花两个小时的时间在这里和我以及收听 Free Code Camp 播客的好人们聊天。是的,我真的很感谢你邀请我。这是一次非常有趣的谈话。谢谢。

太棒了。和往常一样,我已经包含了很多你应该查看的链接,包括 Kevin Powell 的 YouTube 频道、他参与的其他项目、课程。如果你想深入学习 CSS,我强烈建议你了解更多关于他的信息,并花更多时间在他的十年教学生涯中所创造的成果上。非常感谢你来到节目,伙计。是的,谢谢。好的,还有所有收听节目的观众。下周再见,编码愉快。