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

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:探讨了开发者对 CSS 的误解,以及学习 CSS 的价值;CSS 的声明式特性使其初学时简单易用,但随着复杂度的增加,很多人难以理解其背后的机制。学习 CSS 不仅因为它有趣,更重要的是因为它直接影响用户体验,是连接开发者与用户的重要桥梁。他还强调了可访问性的重要性,以及忽视可访问性会导致技术债务的累积,最终可能导致法律诉讼。 Kevin Powell:强调了 CSS 对用户体验的重要性,它能使产品外观符合预期,并确保易用性。从一开始就考虑可访问性,能避免累积大量的技术债务,后期修改的成本很高。他还探讨了设计师和前端开发者之间沟通的重要性,以及如何避免技术债务。此外,他还详细讲解了 Flexbox 和 Grid 的使用方法和优势,以及响应式设计的历史和演变。他还谈到了移动应用的兴起对网页开发和设计的影响,以及 CSS 在移动应用开发中的作用。最后,他还分享了自己学习新技术的方法,以及如何克服教程地狱。 Kevin Powell:分享了自己 YouTube 频道的成长历程,以及如何从兼职到全职从事内容创作。他谈到了教学经验对内容创作的影响,以及如何平衡工作和生活。他还分享了自己对 CSS 的理解,以及如何帮助开发者克服对 CSS 的恐惧。他强调了学习 CSS 的重要性,以及如何利用 CSS 创建高质量的用户体验。他还探讨了 UI 框架和设计系统之间的区别,以及如何选择合适的工具。最后,他还分享了自己对 CSS 未来发展趋势的看法,以及如何保持学习的热情。

Deep Dive

Key Insights

Why should developers still learn CSS in 2025?

CSS is essential for creating a good user experience, ensuring that websites are functional, accessible, and easy to use. It plays a critical role in how users interact with a product, making it a valuable skill even as other technologies evolve.

Why is accessibility important in web development?

Accessibility ensures that all users, including those with disabilities, can use a website. Neglecting accessibility can lead to technical debt, as retrofitting accessibility issues later is more time-consuming and costly. Focusing on accessibility from the start avoids this and ensures no users are left behind.

What is technical debt in web development?

Technical debt refers to taking suboptimal approaches to development, which accumulate work that needs to be fixed later. It's like real debt, where you incur interest in the form of a website that doesn't work as well as it could, and eventually, you have to pay the principal with interest by fixing it.

How have Flexbox and Grid revolutionized CSS?

Before Flexbox and Grid, layouts were created using tables or floats, which were hacks. Flexbox and Grid introduced proper layout tools, making it easier to create responsive designs. Flexbox is great for flexible, content-based layouts, while Grid allows for more control over placement, similar to table-based layouts but more user-friendly.

What is responsive web design and why was it important?

Responsive web design allows websites to adapt to different screen sizes and devices. Before responsive design, developers had to maintain separate mobile and desktop versions of a site, which was inefficient. Responsive design, introduced by Ethan Marcotte, uses flexible layouts and media queries to make websites work on any device.

How has the rise of mobile apps impacted web development?

Mobile apps have simplified layouts due to limited screen real estate, making designs more uniform. However, they have also made web development more challenging by requiring developers to ensure websites are mobile-friendly and responsive. Progressive web apps (PWAs) have become a solution, allowing developers to create apps using HTML, CSS, and JavaScript that work across all platforms.

How did Kevin Powell become known as the 'King of CSS'?

Kevin started his YouTube channel as a hobby while working as a teacher. His channel grew slowly over time, focusing solely on CSS. He gained recognition through collaborations and engaging content, eventually becoming synonymous with CSS education on YouTube, earning him the unofficial title of 'King of CSS'.

What is 'tutorial hell' and how did skateboarding help Kevin Powell overcome it?

Tutorial hell is when learners follow tutorials step-by-step but struggle to apply the knowledge on their own. Skateboarding taught Kevin that understanding a concept isn't enough; practice is crucial. Just as skateboarding requires physical practice, coding requires hands-on experience to build the necessary skills and confidence.

How has being a classroom teacher influenced Kevin Powell's approach to teaching on YouTube?

Teaching in a classroom helped Kevin understand the beginner mindset and anticipate common questions. It also taught him to break complex topics into smaller, digestible pieces. These insights have made his YouTube tutorials more effective, as he can address common pitfalls and explain concepts clearly.

Why is it important for developers to learn CSS even if they primarily work on mobile apps?

CSS is a foundational web technology that ensures developers have control over the user experience. While frameworks and tools can speed up development, understanding CSS allows developers to make customizations and maintain their code more effectively. As web technologies evolve, CSS knowledge remains relevant for creating responsive and accessible designs.

Chapters
This chapter explores the relevance of CSS in 2025, highlighting its importance in user experience and accessibility. It emphasizes the significance of incorporating accessibility from the outset to avoid accumulating technical debt and the importance of communication between designers and developers.
  • CSS is crucial for user experience, ensuring functionality and ease of use.
  • Prioritizing accessibility from the start prevents technical debt and rework.
  • Open communication between designers and developers is essential for addressing accessibility and other design challenges.

Shownotes Transcript

Translations:
中文

CSS is a source of frustration for so many developers. What do they not get about CSS? The biggest issue though, is because CSS is a declarative language and especially because early on like background blue and it worked and then like font size, 26 pixels and your font got bigger. Like it's so easy at the beginning when you first start doing it, the simplicity of it just makes it seem like this really simple language.

until all of a sudden it gets more complex. But once you understand why those decisions were made and how the behind the scenes stuff is actually going on, it actually makes a lot of sense. You're listening to the Free Code Camp Podcast, your source for raw, unedited interviews with developers. Please take two minutes to complete the listener survey in the description.

For this week's musical intro, with yours truly, on the drums, guitar, bass, and keys, 1986 Nintendo Entertainment System classic, Bubble Bobble. Bubble Bobble.

♪♪♪ ♪♪♪

so

Welcome back to the Free Code Camp Podcast. I'm Quincy Larson, teacher and founder of FreeCodeCamp.org. Each week we're bringing you insight from developers, founders, and ambitious people getting into tech. This week we're talking with Kevin Powell. He's a designer, a software engineer, and an expert in CSS. He runs a CSS-focused YouTube channel that has nearly a million subscribers and

And it's not like some sensational cat video type channel. It's literally just him talking about CSS and teaching people how to use it. So I'm very excited to talk with Kevin. And very quickly, support for this podcast comes from a grant from Wix Studio. Wix Studio provides developers tools to rapidly build websites with everything out of the box, then extend, replace, and break barriers with code. Learn more at wixstudio.com.

And support also comes from the 11,043 kind folks who support Free Code Camp through a monthly donation. Join these kind folks and help our mission by going to freecodecamp.org slash donate. Kevin, it's a thrill to have you here, man. I'm so super excited. Thank you so much for having me. Yeah. And I'm just going to jump right into it, man. Like, why should people learn CSS in 2025?

Is it enough to say just because it's really fun? Or do we need a better reason than that? Well, I think if you enjoy it, power to you. But a lot of people are super busy and they are faced with many, many things they could be learning. They could be learning how to do machine learning. They could learn systems engineering. They could learn a lot of backend developer type stuff. They could just grab some off-the-shelf material UI, slap it in there, and just not worry about it, right? Yeah.

Why should people still learn CSS in 2025? And yeah, like what is the, I guess, value add? What is the compelling reason to still invest the time in this? What is ultimately like an extremely deep technology that can be applied so many different ways?

Yeah, it's a really good question, especially when you phrase it that way. And I think the biggest part is just like CSS is that the way we connect to the user who's using whatever it is that you're creating. So, you know, like obviously the user experience is probably one of should be one of the highest priorities, because if the user has a hard time using something, they're not going to want to use it. And so.

CSS is a really big part in that user experience, just making things look the way they need to look, making sure that everything... Or it's not so much the functionality, but just, yeah, having something that is...

It doesn't need to be pleasant to look at, but it needs to be functional and the layout needs to be there and it needs to be easy enough for the user to figure out what's going on. And most of that is done through CSS. Yeah. And on that functional and easy to use, you are a huge advocate of starting with accessibility and having that in mind from the very beginning when you're building a website or when you're building a design. Why? Mm-hmm.

Yeah. So I think it's the first of all is just making sure that all users can use whatever you're creating, I think is extremely important. And the problem if it's not front of mind from the beginning is you just build up tons of technical debt.

So, and it, it's a lot harder, like if you build something and it works, but then you realize there's accessibility issues, the amount of reworking you might have to do could actually be kind of suspect substantial. And then you're stuck there sort of like, is it worth going back and fixing it? Especially when there's stakeholders involved, there's time involved, like, you know, your boss might not want you spending all that time doing that. You have a different thing on your sprint, whatever it is, uh, that you need to be focused on instead. Whereas if it's something that you focus on from the very beginning,

And you know, there's exceptions. There's some things that can be more complex, but for a lot of things, if you're just baking it in from the very beginning,

you know, just use the right HTML element and you're might be a really far along in, in doing that. That's often like the first line of attack. And then like, you're not building in any technical debt and you can just keep on rolling from there. Um, and yeah, just leaving no users behind, I think is really important. Yeah. And, and I mean, it's, it is important. Like there are more than 40 people here in the United States. I know you're not in the United States. You're in our hat on top of the United States, Canada, but, uh,

Like there are 40 million people in the United States who have disabilities. I personally have visual and audio disabilities. They're small. I have a good eye and a good ear, but I am like partially, like basically like something's wrong with my visual cortex and I can't see out of my right eye. It's everything's like super blurry. And my left ear, I have hearing damage from just like childhood ear infections and I can't hear certain frequencies in one of my ears. And so like for me, accessibility makes a huge difference. I use giant fonts.

I use tons of keyboard shortcuts and stuff so I don't have to constantly keep track of a mouse cursor and things like that. And I think a lot of people don't think enough about accessibility. There's a very clear business case you've argued that you're going to eventually need to add it back in or your website's going to get sued like Domino's did. But accumulating technical debt. So let's talk about what technical debt is. Maybe you can describe it.

Yeah. Just basically when you're say, let's taking suboptimal approaches to something and then having, you know, there's all this work that's now accumulating that you have to go back in and fix later on. Basically. I think is how, yeah, I guess that's it. Yeah. Yeah. And essentially like the way I've heard technical debt described is it's very, so much a real debt. Like the, you're incurring interest in the fact that like your website doesn't work as well as it could.

And eventually you're going to have to pay, you know, the principal with interest, uh, when you sit down to like build out the features. And sometimes it does make sense as a small, you know, build that, uh, you know, move fast and break things type tech startup or something like that. I don't like that phrase, but I'll just use it. I'm using it in jest. That's not how I actually approached doing software development. And I don't encourage that on other people, but, uh,

There is a lot of situations where it does make sense to like not get your DevOps like 100% ironed out because the end user isn't going to care. But like there are very few things that are more in the face of the end user than the actual CSS that is rendering the page and the design decisions kind of like insinuated through that CSS. Yeah.

And that is one of those things that like just mentioning the design decisions there that can be hard to, because if you're the developer, you're probably not in charge of the design. And then sometimes you're getting told to do something that isn't accessible. Like it could be just text contrast levels. And I think that's,

designers are much more aware of stuff like that now than they used to be. But it is such a big thing and you still get designs where like, yeah, it looks nice because the text is more faded out, but you're like, give it, you need to read that text. And for a lot of users, that's going to be problematic if the contrast isn't high enough. Uh, and some people will just code what's in front of them and do it.

And the one thing I always encourage, because there's that weird overlap between design and CSS, obviously, and people don't always know what to do. You know, what if the thing is hard to create or what if it's impossible or whatever? And it's just like having conversations with the designers about potential issues, whether they're accessibility things or whatever else. I think trying to have open lines of communication is super important. Yeah. Yeah.

100%. So let's talk about that role, that dynamic between designers and the developer, like the front end developers. So of course a lot of people are unicorns. They're full stack developers. They can do backend stuff. They can do front end stuff. Like frankly, most developers are full stack developers, but,

that are working web, but they have a specialization, you know, like it's not like the backend dev, like literally never touched a CSS and has never built anything. It's like, there are people out like there that have like, like a CSS kind of aversion, but, and you, and it really comes through in the memes. But, but like in general, I would say most devs do have a pretty decent, at least passing understanding of the stack and like the tools that are used at various points. But,

But designers and most designers today are also developers if they're in web. I don't know how many specialists there truly are anymore because business necessitates doing more with less. And as such, like everybody has kind of had to become a unicorn front and back end designer type person. But let's talk about like hypothetical division of labor within an organization. Let's say it's a startup with like 50 people.

Maybe they've got like 10 developers and they've got like one or two designers. Maybe you could describe the role and the relationship between those people. Have you worked in such an organization before?

Not from the ground floor, but I've done some consulting things where... And usually it's because there is an issue with sort of... The issue comes up when there's too big of a divide between them, where they're just working in their own silos and there's no communication going on. And then it just leads to problems on both ends. Well, it's more the designers hand stuff off and then it's either not happening properly or just like...

The people that are writing the code are doing way more work than they need to be doing because of that siloed off communication that's happening. So, yeah, in those situations, I think, again, the big part is communication. I think with everything we're doing, it doesn't have to be designed to front end, front end, back end, everything. The more communication, the better. But, yeah, I think that...

The CSS, I think you see it a lot just because it is literally taking the design and making it into something that, you know, from Figma or whatever design software you're using into the browser. And so it just...

It becomes one of those things where I think the more code the designers know, the better. And the more design skills the developers have, the better. But we obviously, you know, and as you alluded to there, like a lot of people do have a little bit of crossover to a certain extent. And you also only have so much free time in your day to learn all of the skills that you need for all of these things, which is always the fun part there. But yeah, I think that the...

it can be hard when depending on like the, the organization too, and even the way on the code side of things, things are being done where if you're just handed, like here's this little isolated design, make it happen. Like I could code that up, but then looking at it also in the bigger picture. And I think that comes down more to project management and how it's being handled on the larger scale of just making sure that,

You're not recreating things that already exist and all of that because that happens a lot. Well, let's talk about what already exists. So CSS has come a long freaking way since like, you know, 1993 or whatever it was introduced. When was it introduced? Do you remember? 93 sounds right, but I could... CSS first release. It was around that time frame for sure.

1996. Okay, so close. Oh, six. Okay. Yeah. A little later. I got on the internet, I think, in 1994. So we were still... Websites were just done fancily with... Mostly with GIFs and other JPEG-type images. They didn't style text. They just had images, which was...

Super-duper inaccessible and super-duper slow to load. And the internet, you used to just, as a kid, sorry, this is like my old man talk, but basically you used to go to a webpage and then you'd get up and you'd go to the bathroom and you'd go pour a drink or something because it would take a long time for the navigation bar would load in. It would be like a rolling kind of thing. And nowadays, of course, CSS makes it so you can have elegance, you can have beauty, and

But you can also have high performance. So the tool chain has come along a lot in the nearly 30 years that CSS has been around. What have been some of the biggest improvements, not just in performance and stuff, but in making CSS a reasonable tool for humans to use?

Yeah. If we want to go far enough back, I do think... And there was so much excitement when CSS3 happened because we went from what you were just talking about where if you wanted a button with rounded corners on it, you had to go into Photoshop and slice it and get an image of the corners because there was no way to do a round corner. And the shadow effects and all these other things were images. So like...

looking at it now, I always, I laugh a little bit of like, we were so excited with these new features that were coming out and you're like, Oh, it's a rounded corner. Like, is that really exciting? But at the time it really was. And I think that was a big step in making it, you know, a much more usable language. Um,

But I think Flexbox and Grid are the easy wins there just in that like, oh, we actually it took 20 years and we have a layout tool now. Like that's it took a long time to have something that's specifically made for creating layouts. But yeah, so I think that was the biggest useful thing that we've gotten in terms of just like, yeah, we can make layouts because we have a proper layout tool. It sounds stupid, but it took a long time to get there. Yeah.

Yeah, and I mean tooling, like people who are coming from like the .NET suite, they have like tools for practically everything because they've got this giant corporation that is working very hard to make sure that people have tools for every little thing. And CSS is not like some giant corporation. As far as I know, it's like just a big open consortium.

And progress is slow, but progress is clear. I mean, when you look back at what used to be like the, when building a website back in the day and like worrying about CSS versus today, that the tools you have just natively, not even using any non, I guess, native CSS tools.

You have CSS Grid and you have CSS Flexbox. Maybe you could describe those two tools and how they have, I guess, revolutionized CSS and revolutionized the process of building a web page. Yeah, for sure. So before those, originally we used to create layouts with tables and use the table to put the images in the right places. And that was when everything was images, basically.

And then we moved on from, and it was literally, you just use tables and just plug in the images where you need them to be to create sort of a layout. I think the most famous example of that's the Space Jam website, which everyone loved because that actually like chain, it wasn't like this traditional layout. It had things in like different places instead of just in boxes. And then eventually we got, or some people figured out we could make layouts with floats, which are things that just help,

The original idea of a float is you could have an image and then wrap text around that image like you'd see in a magazine. And they're like, well, if I can put stuff next to each other with that, I can use these float things. And really it was a hack, but it enabled us to do a lot more. We could create column systems. It's, I think, why we had the rise of lots of frameworks, including Bootstrap is obviously the biggest one, because creating columns

column systems was a bit of a pain in the butt. And then here's this tool that just gives us a column system we can use and just plug the content in there and it works. So that was really good. And then eventually we got Flexbox. The rise of Flexbox was kind of slow just because it

I don't remember how many years it took to be properly implemented, but the first versions of it were very buggy. There was a lot of just cross browser incompatibilities and issues with it, but eventually we got to a safe space to use. And that just allowed us to have a proper way to create columns on like floats that were, as I said, a hacky solution that sort of got the job done. Finally allowed us to center things vertically. That was the classic meme there. It was CSS of how do you center something? And it opened up that door.

And it gave us a really powerful just layout tool that we never had before. So it completely changed how we could write our CSS basically. And I think it enabled a lot of just, it didn't necessarily enable a lot of new things, but it just made the layout side of things so much easier that then you're just, you're not wasting your time on it. Like we might've been doing before. And then eventually from that, we got grid as well.

Flexbox is more about the children of like you do display flex and then the children just become columns and the sizing of them is dependent on the content in those columns.

So if you wanted equal columns, you actually have to size the columns to make sure they're all the same size. And then it's really good. It's flexible as the name implies. It was meant to be a very flexible type of way of working. It's when responsive web design was a thing, so we could resize things. But there's limitations to it. So then we have grid, which you make a grid and then just place stuff in it. And in a way, it harks back to those table-based layouts, but in a much more usable and user-friendly way to actually create those layouts.

Yeah. And yeah. So I think some, Oh, sorry. Sorry. Go ahead. No, I was just going to say, some people wonder why we need to layout tools and they see that as like a failing of CSS of like, shouldn't we just have one layout tool? But the two of them are like, it's one of those things where like, this one's really good at this, which is more of like the flex flexible layouts with flex box. And then the grid one where the parent is in control and just plug the content in there. And I think the two of them really,

I think we can do more because we have two of them that each have their own strengths rather than one that tries to do everything. Yeah. Yeah. That makes a lot of sense. Um, so one of the things you mentioned, uh, responsive design design being a big thing when I got into web development, which was like 2010, 2011, like that is when I first started programming. I was just a teacher and a school director prior to that. And I learned to code just so I could like optimize our school and, and,

improve the lives of our teachers and our students and stuff like that. And then I went deeper and deeper and became a software engineer. And then ultimately like started teaching this stuff. But, um,

When I was getting in, responsive design was the thing. Like everybody was talking about how do we make our websites look good on mobile phones when there is this Cambrian explosion of different form factors. And now like something has to look good on a Jumbotron. Something has to look good on like an iPod Touch or something like that. You know, like how do we do that? And responsive design was the answer. Can you talk about what responsive design was and why it was such a big deal at the time?

Yeah. At first, I think, I mean, at the beginning, we never had to worry about that. It was just, you know, everybody's screen was desktop. We didn't have other devices that we had to worry about. And they were generally all the same size. And you just make your site like 640 by 480. And you knew that would be safe for everybody. So you and I think it was a lot more like print design, right? Here's the layout, I'm just going to make it and I can do it exactly like I want.

And then when all of those new form factors started becoming a thing and like, oh, people can actually connect to the internet on this small little device now, we had to find ways of making layouts work in both situations. And like the first wave wasn't responsive design. The first wave was the MDOT process.

where you'd have an m.freecodecamp.org and that would be the mobile version of it. And then you'd have a completely separate site that would be the regular one. And then you had to maintain two code bases because you had your mobile version of it and you had your big version of it. And that's kind of, I think we quickly realized having to maintain two separate sites for one site was a bad idea.

Uh, so that's where responsive web design came around. It was, um, the term was coined by Ethan Marcotte in a, a list apart article. Uh, if you want a bit of a history lesson, you can go look that up. Um, and it talks a lot about just this idea of flexible websites that can adapt to the different screen sizes. Media queries were the very big part, uh, in making those work. Uh, and yeah, just having our sites that can, whatever you throw at it, basically in terms of screen size resolution and everything else that it just works. Yeah.

Awesome. And I will be linking to that article, which I did just pull up. So be sure to check the show notes for lots of things, like the original Space Jam website. I'll try to find that on Internet Archive and include that as well. Assuming Internet Archive hasn't been sued into oblivion by the time you're listening to this. I think...

Yeah, I think that website's still live because I don't remember whatever the movie studio did Space Jam. At one point, they took it down and there was like this huge uproar and petitions that went out. And I think the original site's like still on the original URL and everything now. They put it back up. I'll try to find that. So yeah, as always, everything we talk about on the show, like I try to include relevant links. So I hope you're interactively listening to this while you're like walking the dog or, you know, doing the dishes. Oh, let's check this out. Yeah. So yeah.

One of the things you mentioned that is really interesting when you were talking about we used to take for granted everything was 600 by 480, I think is the dimensions that everybody coded for. And I distinctly remember doing some very, very basic web design type stuff in university and just like...

I think it was like, uh, what was it? It was like, uh, it got acquired dream Weaver. I would do dream Weaver. Yeah. Eat these Twizzlers. I had this internship where I worked directly for this, uh, liberal arts professor and, uh, we, I was creating this very basic website for, uh, the professors to like be able to, uh, like, it's just a very basic reference website.

but, um, I, I distinctly have that memory of just sitting there and like setting everything to that. And then, uh, having to like scale everything to that and make sure everything looked okay. And man, uh, accessibility for that website must've been a nightmare, but I can only imagine how horrific it would be to try to navigate that with the screen reader. And a lot of people do use screen readers. Like there are a lot of blind people in the world and they can get things done on computers just like, uh, sighted people can. Uh,

But the way they do it is through screen readers, and that is a cool consideration. Obviously, they're going to experience the website. They're not going to necessarily be able to appreciate the nuance in rounding corners and things like that that you're adding.

But one thing you mentioned there, mobile, uh, having mobile sites. And of course now we just have responsive websites and you go to like, I don't know, freeco camp.org. Uh, you go to freeco camps.org and it looks amazing on mobile because we intentionally like spend a lot of time and effort making it look amazing on mobile. But,

Many people don't experience websites other than like they're clicking out from like Reddit or, you know, some website, New York times app or something. And they're clicking to some external website. There is definitely like the web has kind of moved into these apps for better or for worse. Um, how has that impacted web development and web design in your mind? The fact that so many people are, are,

primarily using mobile apps, which may or may not use CSS? And to what extent is CSS relevant for mobile app developers? Yeah, that's a good question. I think that it's still something.

Well, I mean, I do think the one, not so much CSS, but just from a design perspective, just because mobile has taken over to such a large degree. In a sense, it simplifies layouts, but it also makes them a little bit more boring because you have limited screen real estate. You can only do so much. So they just tend to be regular sort of top-down layout type things. Even though I think there's new things coming along that can make things a bit more exciting just because it's becoming easier to do user interactions and other stuff, whether it's

through animation or other things and just micro animations and all of that are a very big part, especially of apps where you can see the attention of detail that goes into that. As far as CSS, when it comes to app development, obviously it depends a little bit. I think it's still relevant in terms for a lot of people. One of the huge advantages is, and we're held back for a long time because Apple didn't get on board with progressive web apps

But I do think that idea, and I think they're, are they on board with them now? Or did they get forced into being on board with them because of some of the EU changes? I don't remember. But, you know, if you can do something once and not have to create an app for every, you

different environment. I think that's always a good thing. And if you do it as progressive web app, then you just have your HTML and CSS and like, you know, JavaScript or however you're doing things, but then it is an app effectively that works across all the different operating systems, which is super cool and super useful.

And I think even, I mean, obviously if you're just working at one company and you're just on that app, whatever ecosystem it has to be on, and that's your job, then you probably aren't worried about CSS and that's fine. But I think for a lot of people, that's also not the reality that you're necessarily just so stuck in on one thing for especially your whole career. It might be something you're doing for a few years, but usually you end up bouncing around and changing and

I think at least having your eye on having an idea of how CSS and HTML, JavaScript, all of that works on the front end is probably a good idea for most people. Yeah. I mean, like practically, like I won't use apps.

that don't have like a web version because i don't actually i'm like really secure with my phone like you're not gonna find tiktok on my phone right like certainly not wechat uh not any facebook property like i just refuse to install those types of apps because i know like uber was able to like get microphone access through apple's system like uh and for a long time uh i couldn't use a lot of apps just because there wasn't a mobile app version and the mobile app version of these

apps is usually greatly diminished. I mean, if you want to build something substantial and, and like actually have a lot of smart people using it and not just people, you know, like mindlessly scrolling through your app and stuff like that, you want to have a web version. Um, and you want to make it like have an API so that people can, you know, consume it through all these different clients and all this stuff. Like,

So I'll get off my soapbox in a second, but I'll just say web app is just as relevant as it's always been. And if you're building it, like most actual apps that make money are like enterprise type apps and things like that, where people are like on a laptop or on a desktop and they're working nine hours a day and they're using your tool throughout the day.

Right. Uh, and a lot of that is going to be in a browser, like web app and stuff like that. So, uh, would you say like, have you done any multi-platform development, like built web apps that like, and reuse some of it in a mobile app or anything like that before? I haven't, I don't have much experience outside of just toying around with things. Cause I was curious, uh, when it comes to actual app development, uh,

Yeah.

Yeah, it is really cool what phones bring to the table in terms of knowing where you are. You're at a restaurant. Where's the bathroom? I use Google Maps all the time when I'm in a new city or something, and it'll paint kind of like an arrow and tell me where to go and stuff like that. So I don't want you all to think that I'm some sort of Luddite who doesn't appreciate that phones have made our lives a little bit easier, but I think that they've also...

been like a shortcut to technology that like it's, it's kind of like the, uh, I'm not sure how to describe it, but it's like an extremely watered down, like mediocre implementation that will be good enough for a lot of people, but it is just a pale imitation of the real thing is kind of how I look at it. Uh, so anyway, like the practical reality of working as a developer and working as a designer, I'm going to ask you a ton more questions about CSS specifically because I

As I said in the intro, you are literally like the CSS guy. You actually had to write an article that says, I'm not the king of CSS because people kept calling you the king of CSS. I think you won like some sort of like CSS battle. You got some great CSS battle type videos on your channel, um, where like you're trying to like design something real quick and somebody else is trying to do it. And then it's like who did it best or who got it done quickest. Um, get all the tests to pass. It's, it's a really cool thing. Um,

But you are like synonymous with CSS. Whenever I hear Kevin Powell, I think immediately it's just like, Oh, the CSS guy, right? Like,

How did you become the CSS guy? Give me the full origin story from your humble origin in Canada until today with nearly a million subscribers and your newsletter, all the different things you've done, all the conference talks. I watched a lot of conference talks from you. It's not fluff. It's hardcore CSS. If people are interested in CSS...

I view you as a canonical. There are probably some excellent CSS textbooks, but if you're looking for a living, kind of walking encyclopedia of CSS, I think you're a great paragon of that very thing. So I'll stop complimenting you, and let's dive into how did you get here, man? Yeah. First, I appreciate that very much. Thank you for the kind words there and the high praise. Yeah.

It's still weird when I think about it, looking at just where I am now. And it definitely wasn't planned. I know some people set out and they're like, "Oh, I'm going to get into content creation." And this is like, they map out how they're going to try and grow their channel or whatever, their blog and stuff. I started it as a hobby project because I was curious about YouTube and I was bored with what I was doing at work, basically.

So going back far, you know, origin stories would be, I started with web development stuff back in high school in the late nineties. Just, you know, you mentioned Dreamweaver. I would make a design in Photoshop, slice it up, bring it into Dreamweaver and make a website for, for random things that were just interesting to me. And then it just was this like slowly but surely every now and then I would do something. And yeah,

So it was like, yeah, this random hobby I had that occasionally I would touch on. I just like learning new things and playing with new things all the time. So you do it for a little while, you learn it enough, you stop doing it. Fast forward, went through school, got degrees in a bunch of stuff because I didn't know what I wanted to do with my life. And I ended up getting into design,

I was a mediocre designer that wasn't making enough money. So I started freelancing on the side. Most of the freelance work I was doing was UI web design stuff. I was like, oh, I played around and made lots of websites. Maybe they will also pay me to make these into actual websites as well, like once the design's been approved. And so I got some clients doing that.

And that got me realizing, first of all, that I like the coding side more once I figured it out, because it was a big difference going from making my random little Photoshop thing to actually having to make something that could be approved by a client. But I eventually figured it out.

And I actually got started with that. It was getting into WordPress development where I felt pretty big into there, doing a lot of child theme work based on the Genesis theme where I delete the CSS file, basically make a child theme from a starting of zero CSS and just build it up from there. And then I ended up getting hired as a teacher.

Teaching was never something that I ever envisioned myself getting into. But as I alluded to, I was not making enough money at my full-time job. It was a lot of work doing full-time job plus freelancing on the side. I just had a new child at the time. So having to, you know, with that and working nights and everything sort of sucked. And then my old school came and one of the teachers there said, oh, we're hiring. You should apply. And I was like, okay, the pay looks better than what I'm getting now. I guess I can try that out and see where it goes.

And from that, I ended up getting into teaching the introduction to HTML and CSS classes at that school. And that's sort of what led me into it all. And then I got bored with it because I did several years of teaching introduction to HTML and CSS. So there's only so much time where I would want to spend showing people where the curly brace is on their keyboard. I was like, I'm going to be falling behind here and not keeping up with everything. And so...

partially out of interest of starting a YouTube channel and partially just as an excuse for myself to do different things than I was doing in the classroom. I started making YouTube videos and then it was just a really very slow and gradual growth from there to what it is today. And it's still weird that it is what it is, but I'm happy that I can just do this all day long now. Yeah. Wow. Some observations. First of all,

There's a saying about experience that like, you know, you can have like the same, like just because you have 10 years of experience doesn't mean you're like an experienced dev or designer or teacher. Um, you can basically have the same year or two of experience over and over for 10 years. And a lot of people are content with it. There are a lot of people that just work is a means to provide for their families and, and they don't have like, they don't tie their ego to the work they do. Um, and, and there are frankly fields where it, it,

It is difficult to imagine being able to tie yourself and your self-actualization to the work you're doing. I worked as a telemarketer for a week. It was a nightmare of a job. And I just simply can't imagine that being some fulfilling job that people are like, yeah, I got a lot of calls made today. I'm sure that they feel accomplished, but after doing that for a lot of years, I can't imagine that they're looking back...

thinking like, wow, that was like a full life. You know, like, like, like probably they're looking back at like their kids and all these other aspects of their life that were really interesting and just ignoring the telemarketing work. Yeah.

Again, if anybody is a telemarketer, no shade or anything. But it was the exact opposite of what I would consider to be fulfilling work. I literally felt more fulfilled when I was mopping the grocery store floor because at least it was something like I made the floor cleaner. I didn't annoy somebody by calling them and asking a bunch of questions, trying to lead them into buying something they didn't need. So...

It's telling to me that you got bored when you were teaching after teaching the same fundamental things for a couple years and you started creating videos. Like that is...

Yeah.

I mean, obviously, if you can afford to have a tutor who just stands there like so I promise I'm not going to ramble too much about this, but like it's a big deal in education. Like student teacher ratio is incredibly important. And when you have like a giant lecture hall and you've got like some brilliant, you know, guy who, you know, wrote some paper and won some Nobel Prize like 50 years ago talking up there and like that.

That is kind of like a performative or a performance that could be captured in video because you're not going to have a one-on-one conversation with a guy. Maybe if you're lucky and you walk up, you can ask like one or two questions at the end of the lecture, but to have that in video. And I think this is where universities are heading. And I think this is where education in general is heading is toward more personalization and interactivity. And but yeah,

It is so much more useful and so much more interesting to be able to just lay down kind of like the foundations in some sort of artifact. And then the time that you do have with people, be able to customize your learning to them, kind of like the flipped classroom model. And so it sounds like once you started creating these videos, you were able to focus on the more specific like –

less frequently occurring things than like, Hey, where is the curly brace on the keyboard? Like I can't find it. How do I get that? You know, and things like that. Right. So, uh, that, that kind of freed you up to have the high. And what I was going to get back to with a student teacher ratios, uh, is like the ideal student teacher ratio is like probably one, one learner, one teacher, like,

Like the classic tutoring situation. There are arguments for like a smaller seminar type setup. And you get this if you go to like fancy pants Harvard or wherever you get like classes where you've got like some learned professor who might have tons of accomplishments. Who's just sitting there with like four or five students and they're having kind of like a seminar type class. But that is extremely expensive to have somebody of that level of renown sitting there talking to you. Like we're talking like maybe,

several hundred dollars an hour to have like five. So, so the, the cost per student per learner goes up dramatically. It's much more economical to just have the giant lecture hall of like 500 people and have, you know, Michael Sandel up on the stage talking about like justice, one of the best, uh, online courses of all time, in my opinion, uh, Harvard's justice course. So, so I'm not like singling out Harvard or anything like that, but they do, they do have excellent, uh,

free online courses, some of which you'll find on the free code camp channel. But, um, to get back to what I was saying about that, you know, what would you rather be doing? Teaching people, uh, you know, the same thing that you've taught them a whole lot or being able to enter like,

Talk about like interesting kind of like edge cases that emerge through your teaching. And I, so I just want to applaud you for not like a lot of people would say, Oh, I know how to do my job perfectly. Like I basically am just answering the same questions over and over. Cool. I'm just going to do that and check out and play a bunch of video games and relax and save up money and pay off my house and all that stuff. Right? Like that is how a lot of people approach life and they're cool getting their actualization elsewhere. Right.

They don't need to have an interesting work life. But it sounds like you're so passionate about CSS and you're so passionate about learning and sharing what you're learning that you were not content to rest on that plateau. Yeah. And it definitely... I mean, going, first of all, to that part of teaching the same thing for years straight, there is...

a huge value in that too, because I got really good at learning, like just how to teach those fundamentals. Like the first time I was doing it, like, I feel bad for that class. Like I, I, I know I made, as you're doing it, you realize you're making mistakes, but then you learn from them, you get better. And it was at one point, like you said, that was just like, okay, now I I've got this down. Uh, so I wanted to do a bit more and then the

I started it just as a hobby project. I had no ambitions for it. And luckily, cause it took so long to actually gain momentum, but it got to the point where like, if a video got a hundred views, I'm like, Oh, that's, you know, this one video is, has a bigger impact than that one time I was in the classroom, like teaching. Cause I had classes of like 30 to 40 students. So I'm like, it's kind of cool that I can have one video that's reaching more people that I'm reaching one time in the classroom. And then like obviously the potential for it. Um,

you start realizing sort of the long-term potential that could happen there as well. So I think that became a motivating factor, uh, at the same time. And it was just, you know, I, you know, selfishly as well, it was things that I wanted to sort of explore with and play with too. Yeah. Yeah.

Yeah. Well, let's take a moment. This is not an entrepreneurship podcast. We do talk to a lot of entrepreneurs and I would consider you an entrepreneur in the sense that you've managed to like carve out a source of sustenance for yourself basically as like an independent person. You don't have to necessarily answer to anybody outside of your audience and probably like the text, the text collector van, you know, but like, like, like you don't have that much accountability to other organizations and you could in theory, you know, potentially survive for a very long time just off of the momentum you've built up.

Right. Uh, so, so I, I'm not seeking to teach people how to do that. This is, you know, I just want to, you know, tell people that like my advice to people who want to make a living is go out and work for somebody else and get paid to learn. However, you have managed to do this. And I think it's worth asking, what was your career progression like as a creator on YouTube? And like, how did you gradually figure out a way to leave full-time teaching and be able to focus just on what you're doing now?

Yeah, it was, as I alluded to a little bit earlier, it was very slow at the beginning. Um, I started, but the one thing I committed to from when I started was trying to do one video a week. And for the most part, I kept up with it. Um, as I said, I had a young family and stuff. So sometimes that would obviously take priority if things were busy, but I mostly kept up with one video a week, uh, for the first several years with a couple of breaks in there.

The first six months, I think, was... I think it took six months to get 100 subscribers. Between four and six months to get 100 subscribers, videos would get 20 to 100 views. And then after that, I started seeing a bit of momentum, but it was really like nothing to write home about.

It probably took about two years of having the channel before it was like, oh, I'm getting a little bit of income from this. And it wasn't very much, but it would be like it's date night money or a little bonus on the side. But it wasn't even, I wouldn't have considered it a side gig. It was just this sort of cool bonus thing that was there on the side.

Um, and then it was between, I think year two and year three, I was like, oh, this is starting to actually gain some like real momentum, uh, in, in an exciting way. And that's when I sort of re I didn't, I wasn't like, oh, I'm going to be able to quit my job, but it was like, this could become something bigger. And I didn't know what bigger meant, but I was, it felt like there were, it had gained that momentum and it was doing something where, um,

things were, I guess, potentially on the horizon. But because I was working a full-time job and had a young family and all these other things, I was never sitting down and being like, what is that bigger thing? And I have no background in business or anything like that. I'm sure if there was people that knew more about that side of things in the same position of me, they probably would have been able to sort of sit down and figure things out on that front to plan things out and maybe have quicker success or just have a better sort of, I know where we're going with this.

Um, but I did, it was, I don't remember exactly when it was, but I did decide to build one of my first courses probably within that between year two and three phase, uh, just to see what would happen. That's so I started a newsletter cause I was told you should start a newsletter to, to get your audience. Yeah.

Um, and funnily enough, the newsletter is one of the parts that I enjoy the most now of what I do. Uh, I have like on, on Thursday mornings, I have the entire morning blocked off just to work on my newsletter. Cause I just like, it's sort of a different form of creative outlet, I guess. That's different. Um, I don't, I talk, it's related to front end development, but, um, you know, the topics range a lot more, it's a bit more personal and everything else. So I really enjoy writing that.

It took me a while to find the form, like my voice and everything. Just like with video, I think it's normal that if you do get into video creation, it can take a long time to figure out the process, your voice, all these other things. So the same thing with the newsletter. It went through a few iterations and slowly grew to what it is today.

But yeah, so from that, I sold a course. It didn't make tons of money, but I was like, "Oh, that generated more revenue than I've made off of YouTube in the last year in one course that I've created. That was kind of cool." And so then I realized at that time that in that course launch, and as I said, it made more money than I think I'd ever made off of YouTube.

it was under $10,000. It wasn't this life-changing sum that all of a sudden I got, but it was like, "Oh, wow, you can make money from this in a different way." And people want to support you as well. The people that are following me from YouTube were happy to buy it because first of all, they trusted me because they knew my content, but also because they were just happy to find a way to support me, which I thought was really interesting. And then yeah, from there,

The channel really went sort of in steps. So I think it was around 2019, early 2019, the channel took a really big step up. And it's one of those things where you have a couple of videos that do really well, and then it sort of raises the bar of where the channel's at. So if I look back in time, people think it's usually like there's this curve, ever-growing curve of more and more growth. But for me, it's really been like,

You're trucking along and then you hit like a few good videos and that raises your bar and then it goes there and it goes up again. So step changes. So yeah, exactly. And, and if you don't want me asking, we're going to unpack everything you're saying in a minute, but I'm, I'm curious, what were some of those step change videos for you?

Uh, one of them, one of the bigger ones, and there was a couple at the same time, so I don't remember what they were, but right around that time, one of them was one of those CSS battle videos that you'd mentioned. Yeah. Um, it was the first one I did with Kyle and I did one with him on his channel and then on my channel. So both of those just led to a whole bunch of growth. And I think,

That was probably one of the first times I did a video that was more, like, obviously it's related to CSS. Right. But it was also, you know, quote unquote, edutainment. Yeah. And Kyle is not yet a part of the Freecode Camp Cinematic Universe. I'm going to interview him eventually. Sorry. Who is he? Yeah. Better known as WebDevSimplified. WebDevSimplified. So he has a very big YouTube channel as well. Yeah.

uh, he has the best channel than my own. Uh, yes. Tech or tech YouTube. In my opinion, he's just like, it looks like, I agree. Like, uh, Leonardo DiCaprio almost like, yeah. Anyway, sorry, we're not going to watch flex poetically about him, but I just wanted to give people context into who he is since you mentioned his name. Yeah. Um, so yeah, I did a couple of collaborations with him that really helped. Uh, and it was that first foray, as I said, into more of an,

like entertainment style video, which makes sense. Cause like, that's always the hard thing. Like, even if my audience is all front end developers that want to learn every time they go onto YouTube, they probably don't want to look up at like how to do something with CSS. Like usually most of the time when people go into YouTube, it's either to search something specific that they want to solve or because you're just bored and you want to spend 15 minutes watching a silly video or whatever it is. And so that made me realize like, Oh, people, you know,

Of course, like, again, if I was better at this type of thing, I maybe would have realized it earlier. But like that type of video can actually do really well where you're finding that crossover of a video that a front end developer will want to watch for entertainment purposes. It's really not a big part of my channel, but I try and sneak those in every now and then. Yeah. Just to be something a bit more fun.

Low key, you know, relaxed, more fun. I think it's important, but I still have stuck with like 99% of my content is just educational without going too far because I don't want to become one of those people that's chasing views and all of that either. Like that does not everybody I know that's burnt out from YouTube has just been trying to do that.

Uh, so I, you know, I'm going to, I, at one point I hit the threshold where I'm like, this works. There's enough people interested in what I'm doing. I can just keep on doing what interests me and not try and chase things. And that was kind of nice too. Yeah. Yeah. And, uh, just to put things in context again, I mentioned earlier that your YouTube channel is like, you know, nearly a million subscribers and these are people who are interested in CSS and, and,

You know, that's like a very specific topic. Like you have not really branched out a whole lot. CSS is incredibly deep. You know, there are people that make, you know, photorealistic, you know, um, yeah,

synthesizer, like cameras, like physical objects, beautifully designed physical objects. And they make those in CSS. I talked with CSS artist. Uh, if you, if you like, after you listen to this podcast, you can search for CSS artist, free code camp. You should be able to find it. But she, she does those kinds of photo realistic. And then there are people that make fully interactive, uh,

kind of like experiences with CSS, some of which are just the interactivity is just moving your mouse around. But some of them are like you can build Minecraft in CSS. Yeah.

I'm not sure if it's like Turing complete, if that even means anything these days. But it is remarkable how deep you can go with CSS. And you have opted instead of going wide and like, okay, now we're going to talk about Photoshop as well. Or we're going to talk about other aspects of design. Or we're going to talk about like we're going to go through a JavaScript course. No, you're like just focused on CSS. And I find that extremely refreshing and admirable that you've been able to just for many years go extremely deep on this tool.

So, uh, that's not a question. That's just like an observation. I think it's really cool. Um, what, uh, let me unpack some of the things you said. So first I want to unpack like a lot. There's a lot of hype around becoming a quote unquote YouTuber, right? Or a content creator. I don't like that term, but basically, uh, just like, yeah, there are lots of things you can do. Um, YouTube is awesome. I spent a lot of time. I don't even watch Netflix except I watched one piece with my kids. The entire thing of one,

One piece is on Netflix and it's worth having Netflix just to be able to watch Netflix with my kids. Uh, or I'm sorry, one piece with my kids. Uh, by the way, there are tons of good child programming on Netflix. We're not sponsored by Netflix, but if you have kids like seriously consider getting Netflix because it's just like perfect thing to, you know, sit them down and watch. And like we, uh, we watch everything in Chinese cause we're trying to get our kids to like learn Chinese. Obviously one piece isn't dubbed in the Chinese. We watched the English dub of one piece is great. Great voice acting. Anyway,

all in my little endorsement of Netflix for, uh, for parents. But what I was going to say, uh, is that, um, I'm, I'm stunned at how you just stuck to your guns and kind of kept producing these videos that were just getting, you know, a few dozen views. And it took you several months, six months to get to a hundred subscribers. Like,

Very few people, I think, have the patience to accomplish what you've done. And I think it sounds like a huge source of that patience was just the fact that you were busy doing other stuff. And this was just like a maybe side gig. You know, you're never going to reap a big harvest if you don't sow a bunch of seeds. And so you were kind of like selling a whole bunch of seeds and like free cocaine to YouTube channel. Same thing. Like we used to publish videos to crickets.

Right? Like, we'd be like, wow, that got 1,000 views. For the first few years, we were like that. And then we just had some that, like, exploded. And now we're, like, the biggest programming channel on YouTube if you just look at the raw subscriber numbers. But the raw subscriber numbers don't really matter. What really matters is watch time. And we have, like...

uh, millions of hours of watch time each month, which I am extremely proud of. Uh, and a lot of it is thanks to, you know, people like you that like share their learning resources pretty wide. And so we, we've, uh, cross published a lot of courses from tons of creators over the years. And, and that, that's been awesome. And, uh, you know, I, I want to just kind of put that in the context though. Like,

You're not some overnight sensation. You're like the little engine that could, so to speak. I think I can. I think I can. Like chugging along. At what point did you hit that threshold? Like you created your course and you made more money on that single course. You said less than 10K, but it was more than you were making off YouTube. Yeah.

At what point did you actually think like, wow, I could actually just be a technology educator, specifically like a CSS teacher, and I could use... I could scale my efforts instead of teaching one-on-one or to a classroom through the use of technology. At what point did that really set in for you and you're like, whoa, I can actually do this? Yeah. So it was...

It was in 2019 that it started becoming... Once the channel took that jump, and at the same time I had... At that point, I'd made a couple of other courses. And so between... At that point, YouTube still doesn't pay fantastic, but it was enough combined with the courses that I was looking at it being like, oh, maybe this could be something that could be safe to do. And it was a hard decision in the sense of...

I need to be able to, you know, I have two kids at home, I have a mortgage to pay and all these other things going on. Like, is it crazy to leave my job? So I talked to my wife about it and sort of the different things as the ideas were coming up. And I decided I ended up saving up. Well, the income from all of the other things at one point was enough that I think I had about nine months of salary saved. And the income I was generating was about equivalent to my full time job.

And so I was like, okay, I think it's safe at this point that I could pull the trigger on it because...

I'm generating this income that probably won't disappear overnight, but even if it did just vanish, YouTube goes offline, all my courses vanish, everybody unsubscribes to my newsletter tomorrow, that at least I have nine-month runway that I can figure something out. So I needed that just because of the position I was in. I think if I was a bachelor living at home in my apartment that didn't cost too much, I probably would have been more risk-averse.

Um, but it took me a while to like sit there and be like, okay, this is actually something I can do. And then I did have to sit there and be like, is this something like I can do it, but do I want to do it as well? Cause obviously it's very different running your own thing and doing your own thing. But at that point I was, it wasn't a huge question, but I did ask it to myself, but I was pretty excited by that prospect of being able to, to go out on my own. Uh, partially a little bit was misguided, uh,

Because I was convinced...

Like I was doing this as a side gig and teaching full time. And as you know, teaching is a hell of a lot of work. Yeah. And so, yeah, it's a performance. So be a dull teacher. You can't have an off day and just go like you can slump behind a computer and just act busy. And maybe nobody will notice if you're just, you didn't get enough sleep because you were out partying or something. If you're a teacher and you're standing in front of a bunch of people that are paying money to be there or, you know, the tax dollars are paying for the school to be there to teach their, their, their kids.

You've got all these hardworking people and their kids are in your class and they're looking at you. You can't be a slacker, right? It's going to show. There's nowhere to hide at the front of a classroom. Yeah. So I was convinced that I'm like, okay, if I can do one video a week and put out about one course a year, that if I'm doing this on the side, if I go to this full time, I'm just going to become this content creation machine. I'll be able to do...

three videos a week, plus I'll be able to do more courses. Plus I just had the sky's the limit type of ambition of what that would entail. That didn't really work out in that sense because I did go up to two videos a week and then plus a short, which shorts are easy. So I do like that short content became a thing just in general because it's very easy to produce versus long form videos.

Um, but yeah, I got up to two videos a week and then I struggled to get out another course. My law, the one I just finished took me like two and a half years to make, I think. Wow. Uh, which is kind of embarrassing. Yeah. And, uh, so like the combination of like, and then I realized that two videos a week is actually like an insane amount of content when I was looking at how much time I was actually putting into them. Um,

Part of it was definitely, I think I raised up the quality and the amount of research and everything else I was doing compared to when I was doing it on the side. But yeah, it didn't, I didn't hit those. I didn't become that content creation machine that I thought I would in the longterm, but it's, it's still worked out and everything's going pretty good. But yeah, I was also, I mean, I obviously another benefit.

benefits, not maybe the right word, but when the pandemic did happen and everything went online, that was right around when I was making that decision too, because the channel had hit sort of that new point. And then I basically decided it and then the pandemic happened. And then being a content creator, like everything just exploded on that side because everyone was just watching YouTube videos and working from home.

So the timing of that in sense of like, okay, this is something I can actually do now. Uh, it did work out well for me. Um, obviously from a business perspective. Yeah. And I'm thrilled that it has worked out so well for you. Uh, despite like some, and I think everybody, when you're actually doing it, it's so much more complicated than in theory it's going to be right. Like we have this, there's this amazing Yogi bear quote, uh,

In theory, theory and practice are the same. In practice, they're not. Right? Like, oh, it's cool. I'm just going to create a video and I'm going to get this linear growth and all this stuff. And things still worked out. But it sounds like you bit off more than you could chew for a while and it took you a while to step back and reflect, figure out how you're going to make it all work and stay sane. Yep. Exactly. Yep. Yeah. Yeah.

So, uh, still trying to figure it out a bit now, but yeah. Uh, I want to ask you about skateboarding. You, you skateboard.

I'm not very good, but speaking of activities with your kids, my youngest, when he was about eight, decided he wanted to skateboard. And I was like, oh, I'll learn with him. That could be fun as a mid-30s person. But yeah, so I did learn enough to hurt myself occasionally. How old were you when you kind of got more serious about skateboarding? Yeah, that was like late 30s.

Late thirties. So you're like me, you're probably forties. I'm not going to like, yeah, yeah, that's it. Yeah. Yeah. Uh, cause you've got this amazing article, like how, uh, learning the skateboard helped me find a way out of tutorial hell. And I just, I always thought this was like an amazing, uh, like kind of like reflection of, first of all, if you could describe what tutorial hell is and maybe talk about how the, the act, the process, uh,

learning skateboarding kind of helped you dissolve some of that and see a through line. Yeah. So tutorial hell is when you're...

learning something new, you're watching tutorials or reading blog posts, all these things, and you understand everything that's going on. You watch that video and every line of code the person writes is exactly, yeah, you can tell, you know why they did it. You can understand line by line what they're doing. And then you sit down to do something and you're staring at a blank screen. You have no idea where to start.

Uh, and it's the most frustrating experience in the world. And, uh, the idea with the skateboarding that, or what I realized was that you can't, I think it would be with any physical activity, I guess, where you can't really get away with it because the problem when you're doing it through something where you're watching or reading and that's it. And you're, you understand what's happening. Like you feel like you should just be able to do it now.

Whereas if you're talking about skateboarding, it makes a lot of sense. Like if you just watch YouTube videos on how to skateboard, you're not even going to expect yourself to be able to do like an Ollie or it's a jump on your skateboard or like any of the tricks or anything like that. Like just standing on when people know is going to be hard and because you need your balance, you need to work on all these other things to be able to do that. So even if you understand exactly what you need to do, it doesn't mean that you're actually able to accomplish it. And skateboarding for me, I,

at home more than a lot of other things just because it's really, really hard at the beginning. Like it looks not that hard to stand on a skateboard and roll forwards. But that, that first couple of days is, is a lot of just trying to like, how many times can I push before? Like, you know, if you can stand on it for three seconds, you're really proud of yourself.

And it really hammers home that like, okay, I need to know what I'm doing. I need to understand how it's all working, but then I just need to practice doing that very simple thing over and over and over again before I actually know how to do it. And that same thing applies to any skill, but it's just more obvious in things that take like where you, you physically have to be able to do it. And so when you're coding, you're,

It's so important to go through the steps of actually writing the code yourself. So like if you're seeing somebody write it out, you know, you're following along with a demo or something and you can follow line by line. It's like, okay, hit pause, delete that code and do the last like five minutes again that you just did.

And most of the time, if it's a new thing you're learning, you can't do it. Like, you're just like, oh man, I forgot that first thing. Or, you know, the first two and then something goes off the rails and you get stuck again. And that's the exact same thing of like trying to stand on that skateboard and you're wobbling and trying to do it. You sort of understand, but like you haven't built that, the balance yet that you need. And it's the same thing with the coding. You haven't built up the knowledge yet.

to be able to accomplish these things yet. And it just takes so much repetition and going through it and learning all the nuance and understanding the connections between things that you know, but you just can't apply yet. And it, yeah, I think that's about it. But you will, if you keep at it, you will be able to make those connections. Yeah. And that is the thing. It's like, I'm just going to sermonize just very briefly. A lot of people, you

You know, can't physically skateboard. They may have an issue in terms of not being able to stand or not like some sort of motor issue or something like that. A lot of people would probably be inadvisable for them to attempt to skateboard. I wouldn't recommend somebody in their 70s or 80s do it because they might get injured, right? I probably wouldn't even try it, frankly. I applaud you for doing that. But what you're talking about, I would map that to learning drums.

Okay, so I'm not a true drummer in the sense that I don't actually have a loud drum kit. My wife won't let me give her one, so I just play on the electronic pads and use the foot pedals and stuff. It's a simulation of actual drumming. But, you know, like just having like – it's easy to watch like –

Oh, it's okay. That's a really simple drum pattern. Like you could easily watch a video and think, Oh, drumming is easy. Like how hard can this be? And then when you sit down and you actually try to get the rhythm and like the physicality of it, of like trying to time, it's just like difficult to describe against that difference between theory and practice.

On an intellectual level, you can understand. On a physical level, you can't necessarily do. And with coding, it's like the exact opposite. On a physical level, yeah, you put your hands on the keyboard. You can mechanically emulate Kevin Powell and suddenly, oh, I'm just as good at CSS as Kevin Powell. Look, my resulting art is beautiful because I just followed along with Kevin's tutorial. But on an intellectual level, you don't necessarily understand why the decisions were made that way. You don't necessarily understand all the different layers of

of what's happening and things like that. So I think it's a beautiful analogy and I'm linking to that article. I encourage you to read it. It's an oldie but a goodie. Yeah, man. Like I think that that's a really fresh...

I applaud you again for continuing to learn new things. Uh, I, my whole life goal is not to like make a bunch of money or help a lot of people though. I'm happy to do that is to die with a fully unlocked skill tree. Uh, this is like a huge thing for me is like, I love learning new things and I love the, the sense of forward momentum, uh, that like I get like, okay, you know, today my drumming is just a little bit better. Maybe, maybe you, do you still go out and skateboard very often? Yeah.

I haven't been for a little bit now, but yeah. I can definitely relate to what you're saying. Yeah. Yeah. Like, so... I'm...

I was just going to say my wife, I drive my wife nuts because I like learning new things all the time. So I'm picking up new hobbies all the time and then be like, oh yeah, I'm learning that. And like, I'm a little bit surprised in a sense that the YouTube channel worked out because I'm really good at like getting like enough knowledge of something and then being like, oh, I can go to something else. Now I get that. Like I don't, some things I want. And now I think as I'm getting older, I like going more deep into things. Whereas when I was younger, it was more just like the scattershot. Let's learn as much different stuff as possible. Yeah.

I mean, they're diminishing returns are going deeper. The activation energy, if you will, it gets, it just grows dramatically. Like the, the deeper you want to go into something like the, the fewer like breakthroughs there are going to be. Right. And, and so I can, I can totally understand why people just want to be like a jack of all trades, master of none, but why not be a jack of all trades and a master of a few?

Right. It's kind of, I think just figure out what to prioritize. Uh, like, uh, Feynman, the, uh, famous teacher and physicist, he was like into juggling. He was into doing magic tricks. He did like all kinds of different like stilts, you know, writing a unicycle, like all kinds of wonk wacky hobbies, you know, like he, he would indulge in those and he really enjoyed just learning new things and, and using his mind as kind of like, uh,

Uh, I don't know. He had like the full peacock brain of like every, every different like skill tree was kind of like at least slightly mapped out. Right. I think that's really cool. So let's talk about how you would approach learning something new. And maybe is there something that you've started learning within the last year or two? And maybe we can break down your process for learning something new. Cause I think this is like really helpful approach, especially cause you're a little bit older like I am. And this is not your first rodeo and you've probably attempted to learn a lot of skills over the years.

Yeah, that's a good question. I'm trying to think of what I've started in the last year. I guess, I mean, if we want to relate it to development, I've started doing a couple of personal projects that in, like, if I were to describe myself as a front-end developer, it's like, I'm a front of the front-end developer, like obviously CSS, like, but like, let's make things look pretty. Like I like doing that. Let's do the layout and all that. But I've, I've gotten, um,

One of, or both projects I've been doing have been a lot of backend work. And so it's been trying to learn more about databases and SQL and having fun with all of that. So it's been an interesting little journey there. And so, yeah, I think that's sort of the newest thing that I've been diving into in the sense of not just learning about it for fun. Like I'm actually trying to apply what I'm learning to the projects I'm working on.

How did you approach it?

Yeah, I definitely have changed how I've approached things because I used to be even like, even as a teacher, that whole tutorial health thing was very real for me where I would just run into like, I want to get this, especially if it was a project I'm working on. It'd be like, I need to get this working. So I'm going to follow a tutorial that can like get me there. But invariably there's differences between the tutorial and exactly what you're trying to do. So you get 95% of the way there you're following along and then you need to like make it do your thing. And then you just get stuck there because you don't have that foundational knowledge to,

Like what are, what's the thing I need to tweak or how do I need to tweak it to like make it work for me? So a big part of it for me is trying to just like a little bit like what I said, where like, I'm going to learn like the, the foundation, like I want to know more about like

not how to accomplish this one task I'm doing, but just like, okay, here's like, I'll see a tutorial that it'd be talking about. Like, here's the steps you need to do. And like, I've become really big on note-taking. And I think part of that's also been like when I'm preparing for videos and other things, like I tend to do a lot of bullet points just to remind myself of everything, even if it's a topic I know well.

And I've also learned in doing, when I talk about things I know a lot about, I still learn new things constantly because I'm just like going deeper and deeper into that topic. So it's really, for me, that's been like, if I'm trying to cover anything, I'm

I'm trying to get to the depth of knowledge on something rather than the practical use of like, obviously we need to see how things are being used. I think that's really important and a big part of learning, but just being okay, this is what I want to accomplish. And then I come across like six things that I'm just like, yeah, I don't know any of this. I need to learn about these parts of it.

and, and deep dive like these individual things and read about them. And it slows me down a ton just because I ended up like, okay, here's the project that I think I could be done or like a feature that I think I can be done in two hours. And then it'd be like two and a half days later. Um,

and I get it working and I understand what I did and why it's working and I can actually make changes to it and play with it a little bit. And it's still like very surface level despite having a lot of that. Cause like what's two days of researching something versus like someone who actually knows the topic well, but it's enough that at least I feel like I'm making, like I'm understanding what I'm doing. And I think that's like, I try and do as much as I can to make sure that it's not just like, I'm trying not to copy paste anything. And I'm trying to understand like what the code I'm actually writing is.

has to do with, with anything. Yeah. So yeah, like that, that is a huge difference between like a, a beginner programmer, uh, might be like mechanically reproducing and not really understanding as much, which frankly you shouldn't necessarily worry about that. You're trying to do too many things at one time. Just start with mechanically reproducing stuff. And then as time progresses, you're naturally going to start inquiring like, huh, that is weird. Why does, why does it work that way? And then you're going to dive in deeper and follow that curiosity. Uh,

So, so I don't want to give people the impression that like, if you attempted to do drumming and let's say you're going to use all four of your limbs at the same time, right? You're going to get the, the hi-hat with your left foot and you're going to get the kick drum with your right foot. And then you're, you're maybe you're even going to have a double bass pedal that you switch between. And then you're going to have all the toms and you're going to have all the symbols. And then you're going to do like, try to do like ghost notes on the snare. Like you're never going to get anywhere with drumming if you try to do that. Right.

What you should do is get like a drum pad and just practice rudiments and mechanically reproducing like very basic rhythms and stuff like that and just getting all the motor skills and stuff. And I think similar with development, you should get good at typing. You should get good at like all tabbing between documentation and you should get good at like looking things up and like all these different things that are going to come with being a beginner developer. And I think it's a folly to like –

criticize somebody who's learning the code, like, well, do you even actually understand how that works? They'll get there. Right. Like, yes, a hundred percent agree. Yeah. That's I'm working on like a really beginner level material right now. Cause I, my YouTube video or my, I have a YouTube playlist. It's eight years old. Cause it was one of the first things I did that was like introduction to HTML and CSS. And I'm like, it's, it's a bit, it's not outdated. Cause it's really like the foundational, like very basics, but I'm like, it could probably use a refresh. I'm like,

Trying to find that balance of like how much information an absolute beginner actually needs to know at that stage is like a hard thing to do. And I'm really like a lot of it's when I'm creating that content is like, okay, I'm putting it all down and it's like, okay, strip that away, strip that away. Like they don't need to know that they just need to like, they're changing the color. Like, you know, I'm changing the color of something. Like I don't need to know about like the cascade or specificity yet. Like we'll get there in like three lessons from now, but just like the order they're going to learn things in, but just keeping like the,

It's so easy to get the cognitive overload early on. And I think that's a big reason people struggle in the early days of anything is like,

If you're learning a new topic, you have the syntax to worry about. You have like all of these just words that you've never seen before that you're learning what they are and what they do and how they work together. And like then to talk about like the functionality of like what it's accomplishing and how these different things, like there's just an insane amount of information early on in learning anything. And so, yeah, I think for like reducing and for me, I think a little bit of what I'm doing

for myself in the steps I was saying is trying to reduce that in a sense of like, I'm isolating, like it's, I'm trying to do it myself in a way, but I'm trying to isolate those pieces that I want to learn about. So like, I'm not,

If I'm looking at the whole thing in the big picture, I want to have an idea of how this new thing I'm working about is working. But then I want to just figure out these first three things that I don't understand. I'm just taking the initiative to figure those out for myself. But again, I have this background in development. So like...

there's already a lot of background information or background knowledge there that's helping me out that when you're first getting into things if you don't have that yeah just being careful with that idea of like cognitive overload and feeling like you need to understand everything because that's impossible nobody does one

100%. And I'll also add, like, this is a common criticism of the Free Code Camp curriculum, and it's probably a common criticism of your courses. You'll have somebody, like, parachute in. Why aren't you talking about this? Why didn't you cover this? How can you have a course that doesn't discuss X, Y, Z? And they don't understand. They've lost the beginner's mindset. They don't understand what it's like to be going into something for the first time. You have to triage. You have to prioritize triage.

Certain things. Sometimes you have even have to teach anti-patterns early on to get people to where they can actually use the actual best practices.

And a lot of people, like if you're like, is free code camp any good? If you like Google that and something, you'll, you'll see some kind of cranky people on Reddit or wherever saying, yeah, they don't teach this. How can they teach this? Why are they teaching X, Y, Z? That was like, not that nobody uses that, you know, like, uh, you'll, you'll hear lots of criticism like that, but I assure you, we are aware of those design trade-offs in our instructional design. And do you get a lot of feedback like that too? Do you have to like kind of justify it?

instructional design decisions as a teacher? Yeah, definitely. It's a little bit different with CSS because there is like, once you get past that very beginning and you sort of, you get into the flow, but like, I'm so tempted sometimes to get into like the real nitty gritty, like foundational stuff that you can read in the docs. Because like, for me, it's when I discovered that, like how much more other things started making sense.

but it was also like, I always have to remind myself, like, and I even, I wrote that one, the course that I'm working on now, I shared some of the lessons with people for feedback. And it was one of the things, like one of the lessons was going into some of that. And they're just like, they don't need to know this now. And I'm like, you're right. They don't need to know that. And adding that in there as a mistake. But yeah, I,

Anything I mentioned, like someone's going to have some sort of criticism towards like, why did you do it that way? Or why didn't you do it this way instead? And I'm just like, cause that for me made the most sense. And I think it resonates with people. So I'm going to stick with that. I don't know. Yeah. Yeah. And I'll just say like, if you just go up to some random developer, Oh, what should I learn? Like that is not a good exercise. Don't, don't base your learning based off of that. Um, generally you do want to talk to an actual teacher, right?

Teaching is an expertise. Teachers have like all kinds of like pedagogy, right? They have a mental model of the learner. They have what is probabilistically likely to work as opposed to, and they also have like this broad cross section of what has historically worked. They have all the context they can, they can guide you in a way that some lay person who doesn't, who may be extremely good at building something, right? Like, like,

I'm trying to think like if you go up to an extremely experienced drummer who learned a drum when they were like 10 years old and like, okay, how should I learn to drum there? They're not necessarily going to tell you they're going to be like, Oh yeah, just put on ACDC back in black and play along and that you're good. It's not like super helpful. Right. But that is the kind of advice that an extremely experienced drummer might give you without realizing that you're just going to be like thrashing and, and you're not going to necessarily understand where to go from there. And you're not, you know, like, like,

again, I hope I'm not overstuffing my bounds. I'm not an excellent drummer. I'm a very mediocre drummer, but I am practicing to get better. But that has been advice that I have been given when I naively ask some drummer, like, how should I do it? And at

At the same time, there are excellent YouTube channels on drumming where they break everything down. And of course, keep in mind, if you're just searching around on the web, like, oh, CSS, you are going to stumble upon things that are more advanced. Or if your first exposure to CSS is watching your CSS battle with WebDev Simplified, Kyle, then you might be like, oh, it's not necessarily useful. It's useful to show you what is possible and how people with a high level of skill operate with it.

But again, don't just set out like, I'm going to be just like them and I want to be there in like two years or something like that. Like I have unrealistic timetables and stuff like that. I think the biggest thing that causes people to burn out is they don't go and learn the fundamentals and they have this like –

immediate application. Uh, and so there's, there's this tension as a, as a learner, you want to be doing practical things where you can build something that you can show to people like project oriented learning. But at the same time, you don't want to bite off more than you can chew because then the resistance hits you and you're just like, Oh, I can't do like, like something will stop you and it'll just be harder and harder. And that's how people like quit, uh,

They hit some sort of like ambiguity and they don't know how to cross that bridge. I don't understand. Why am I not playing drums like Neil Peart? I've been like practicing a whole lot, right? To tie in a famous Canadian drummer since you're from Canada. And again, like I promised I'd do things other than talk about drums, but it was just like a theme that I could grab and use as an analogy for our discussion here. Yeah, that's all good.

And I will say on that, the two things you made me think of there, I forgot one of them already, but one of them too, especially with video that I see a lot is with beginners watching it, thinking that like they're watching like this guy is a professional. That's what I'm going to like in whatever timeframe they have in their mind is like what a professional developer looks like who writes CSS. And then I'll have like either a live stream or there's a series of videos I do that are unedited.

And mistakes happen. And then I'm inspecting and I'm trying to figure out where the typo is. And all the stuff goes wrong. And the amount of comments I get on those videos where people are like, oh, it's so refreshing seeing you that you made a mistake. And how you fixed it was really insightful. And I think that is a huge thing of teaching is figuring out how to debug issues and all of that. But just like...

I do think there's that problem with YouTube tutorials specifically or video tutorials specifically that set this unrealistic expectation. Because I've already built... Any video I do, I've already built whatever it is I'm showing. And I have the code off screen that if I run into a problem, I can reference it and...

Like it's very, you know, if it's a 20 minute video, the first draft of whatever I'm going over might've taken me 40 minutes or an hour to build. And I ran into issues and I figured those out. So I don't have to run into them just because people don't necessarily want to watch me fumbling around for a long time. But just that, like that idea that like, it's not realistic for a developer to sit down and write perfect code.

when I started seeing comments on that was really enlightening to me of like, Oh, I really need to make sure I leave some mistakes in, even if it's like edited, recorded type of thing, just to show like nobody's perfect and not to give that false sense of, of what it is to be a good developer. Um,

Yeah, I feel very strongly about this. I feel like you can watch like a YouTube short of somebody. Just do this, this, this, this, this, this. Okay, you're done. And like, wow, you're a really good developer. But I didn't learn anything. You know, like I learned to respect you as a developer. But like at the same time, you know,

An actor could be reading a script. That could be like some random person from Fiverr reading a script, right? It could be that the code was just generated by GPT or something, right? It could be a stolen project for all we know, and then they just screen recorded themselves typing really fast or used some software to make it look like they were typing really fast. You don't know. And one of the things that I really feel strongly about is

you know, portraying people realistically, right? Like you and I are having a real time conversation. This is unedited. I don't edit these podcasts. I feel very strongly about this. Like if you and I wanted to sit down, we could probably figure out exactly what we want to say. We could probably take this very video. We could probably distill it into the main points and then we could be actors, right? And I'd be like, all right, well, Kevin, how do you feel about X, Y, Z? Oh, that's an excellent question. Well, I think we could just read from a script and we could pretend that

It was an actual extemporaneous conversation, right? There's like all kinds of fakery and stuff like that. You can do, it's like kind of the difference between like going to see a magic show where like they have all these props and all these tools and going to see some street magician, just doing it right in front of your eyes in the wild, right? Like,

I think that, uh, that kind of stuff, like software development is not like, it's not like watching somebody play, you know, uh, some video game, like explosions and juicing and all this stuff happening. You're literally watching somebody type and think type and think, uh,

maybe tab back and forth between like the, you know, the web view or something. Like if you're doing CSS, it's actually much better disposed to this kind of like real time teaching. And like, you could probably do like a live stream where you build designs in real time. And that would be interesting. It would not be interesting to see somebody build an API in real time. Probably. Oh, yeah. You know, we got a 200 on the API point. Right. But like, I do think it's important to,

that we be real uh and that there be at least one podcast out there that is an unedited conversation between two developers for that very reason so they like how do developers actually talk how do they actually think what do they think is important you know um those kinds of things so i'll get off my soapbox i've got a bunch of rapid fire questions i want to ask you kevin you ready yes definitely

CSS is a source of frustration for so many developers. I can't help but think that they're just doing it wrong. But you don't tell people to their face, you're just doing it wrong. That's why you're having a hard time. But how are developers who hate CSS or can't do CSS or I guess I was meant to be just a back-end dev building APIs, what are they doing wrong? What do they not get about CSS? Yeah.

Yeah. I think it's, I think there's a few parts to that. The biggest issue though, is because CSS is a declarative language and especially because early on like background blue and it worked and then like font size, 26 pixels and your font got bigger. Like it's so easy at the beginning that whether you're coming from, you know, a computer science degree or you're just somebody who's learning for HTML and CSS from YouTube videos or blog posts or whatever, like

that when you first start doing it, the simplicity of it just makes it seem like this really simple language until all of a sudden it gets more complex. But because it's that declarative nature where you tell it to do something and it works, and it's been doing that through the first few days of learning it, that when you start running into problems, the first thing a lot of people feel is like, oh, it's broken or it's not doing what I'm telling it to do. Because until now, it's just been so straightforward. So I think...

it sort of tricks us into thinking it's a much simpler language than it actually is. Because behind the scenes, especially with the layout stuff and a lot of the other, once you get past those really basic declarations,

you start running into the algorithms behind the scenes of the browser's doing to figure out all these things are insanely complex. And we're having to control these super complex algorithms with declarative language of property value pairs. And so it's these sort of simplistic controls for these really complicated things that is hiding behind the scenes. So I think a big part of it is just not being aware of how complicated it can actually be.

And then because you don't dive into the weeds of it, because it's like, oh, it's a simple declarative language. I'm not going to go into learning about how these algorithms work and what's the layout algorithm and the different formatting models and all these other things, because it never occurs to you that you need to do that. And I know for me in teaching it, that was...

the amount of confidence I gained in being able to understand, like if I have a new thing I've never touched before at this state, I mean, I've been talking about it and teaching it for over 10 years. So hopefully I understand it pretty well, but a lot of that early teaching that forced me to learn about these underlying things, um,

just made me understand the language so much more. And I think that's a big part of it. And it's something you don't hear about formatting contexts very often. It just doesn't come up. And when you do a display flex, what's actually happening? Or when you do a display grid, okay, display flex makes columns, but how is it figuring out how big those columns are? And I don't think a beginner needs to know that too, talking about that. But it's once you have a pretty good understanding of the language or you're starting to run into issues with things not working, it's like, okay, let's dive in and figure out...

this is supposed to work this way or how I think it's supposed to work. Like, why isn't it doing that? And there's actually a, like, it's a lot, there's people always say like, it's, it's a counterintuitive language, but once you understand why those decisions were made and like how the behind the scenes stuff is actually going on, it actually makes a lot of sense. And it becomes something where there's always these little things.

things with it that can be a little bit annoying but for the most part most things are actually very intuitive and make a lot of sense once you understand the context of why it's happening yeah so if i could summarize what you just said it's deceptively complicated people think like okay i got it this is easy and then they're like wait why isn't it doing what it's supposed to do it's supposed to do and that is just because they've underestimated its complexity

Um, and it's the same thing with like probably a lot of things. Like if you just take a French class and you, you know, practice your French and you're like, all right, I'm going to go to France and like, I'll just be fine. And like, it's not hard. It's easy. And then the first conversation you have, you can't understand a damn thing they said. And like, wait, why aren't they talking like they talked in my French book? Well, it's the problem is because you underestimated the complexity of learning French, right? You under, and pretty much everything in life is like this, but people forget, people forget that,

the universe is complicated and the universe does not care. It's under no obligation to be easily understood by you. So I, I do think that like people have it in their heads. The CSS is just, Oh yeah, it's like child's play. No big deal. It's not even a programming language, you know? And then they get pissed off when it doesn't do exactly what they expect because they're ignorant of how it works. So yeah, exactly. Yeah. Yeah. Awesome. Great answer.

You have been a classroom teacher, of course. And, and like, you know, I am a past classroom teacher. I highly value teaching experience. Uh, and, um, most of the free cooking staff have worked as like classroom teachers at some point too. Um,

How has being an actual classroom teacher informed your approach to teaching on YouTube? What are some of like the big takeaways that you think that people who haven't taught in the classroom might not think of, uh, things that they could pretend, like if you're teaching through tutorials, the skills that you can unlock by thinking like a teacher or perhaps volunteering or tutoring or doing something like that, that is in the teaching or, uh, area. Like, do you think it's worth pursuing if the, if people want to be, you know, teachers online, like actually spending some time teaching in person?

100%. I think the insights you gain, you're mentioning it a little bit before of getting back into that beginner mindset. If you're just teaching online, you can try and get yourself there, but you don't always realize the steps you're taking. Whereas if you're teaching in front of a classroom and you say something, maybe use a jargony term that you don't even realize because you're just so used to using it, or you talk about something that just has this implied knowledge that nobody actually has,

And the blank faces that you see across the room when you're in in-person teaching right away makes you realize it. And then the questions you get, for me, that I think was the biggest thing of just... Especially in...

some of my videos, I get comments and a lot of the beginner content I'm doing where like people will say in my videos that like I'm answering their questions as they're coming up. The only reason I was able to do that is because I already knew what their questions were because I've had them in the classroom over and over and over again. So I knew the questions that would, if I said this, people wonder about this other thing. And so then I was, I'm able to like

build that into the videos I'm making where I can answer. I know the questions that come up from it and just, yeah. And it makes it so much easier to be in that beginner mindset because if you're not, they quickly bring you there by asking all these things and making you come up with new ways of explaining things and understanding things. And, and a lot of the time it's,

you get much better at like breaking complex things down into smaller pieces because it needs to be microscopic almost when you're teaching something for the first time. Yeah. 100%. Uh, there is that, uh, saying that, um, gosh, it was, it was like a really good Yogi Berra quote that I suddenly spaced on. Uh, I might remember it later. Um, but I, I just want to observe that. Um, Oh yeah. Yeah.

Overconfidence is the disease. Feedback is the cure. And you are...

you know, teaching and maybe a few people leaving comment, like for every person who thinks something like the thought pops in their head, maybe one out of like a thousand people who think that will actually bother leaving a comment. Like, yeah, I don't know that I understand what you just said, or I disagree with you on that or something like that. Right? Like most people are just going to be like, Hmm, I don't get it. And then they're just going to move on. Maybe they leave the video or maybe they just keep watching and they just, it's just a passing thought. But when you're in person teaching somebody that doesn't fly, you can immediately see the

the befuddlement on your learners, your students face. And you're just like, huh? Okay, well let me try a different way to explain that. And so you can very rapidly iterate on your teaching style when you're teaching in person. So yeah, I think that's a really astute observation. What is the difference between a UI framework and a design system? Can you describe those two things and maybe give some examples? Yeah. So I think,

A UI framework, I think, would be something like Bootstrap, which I think most people are familiar with if they've done front-end stuff, where it's sort of the UI components are there for you. You do your class of button, and you have a button, and then there's modifier classes, and you can change those things. And so the layout is there. They have the jumbotron. They have all these different pieces that you can use. So it's all these UI pieces that are sort of existing for you. Whereas something like a design system...

would go a step deeper. Like you could even have a design system inform how you're going to style all your bootstrap stuff. So like there is a connection between the UI and the design system. Like most of the time, a design system starts at like the really basic level of like, here's all the colors that are being used. And that, you know, so you have like, say there's 60 colors and they're just, they are all there. And then you're taking those and you're sort of connecting them. Usually there's different levels to like the design system. So you have like the

like sort of abstracts, like it's, or no, I,

I forget the name that we would call them, but like just general tokens that are, you know, color red 400 and red 500, red 600. And then you'll have a semantic layer on top of that where you're taking like your warning color might be based on the red 400, but you're not worried about what red it is. You're just like, it's my color warning. So when you're using it within your system, you have that there. And then, so like the design system is just like a much more in-depth way of sort of building it out and much like it's all the layers that go into building that UI and

Um, yeah, if that makes sense. Okay. Awesome. So a question I have is the tooling around CSS has gotten a lot better. Uh, I mean, even back in 2012 or so you could just use bootstrap and you're just like, I don't really have to think that much about CSS. I'll just learn what the classes are. CSS classes are, I'll apply them to my divs and I'll be done with it. And it'll, my site will look like everybody else's site, but it will look good enough.

Right. And a lot of people are content with that today. Tools are getting even better, right? Like you can, you can have a quote unquote AI tools, a lot of which are not actually AI. They're just like, you know, templates, everything is AI now, you know, because that's what randomly picks all the different sections from a template and that's the AI. Yeah. Yeah.

Yeah, which is basically just conditional logic or some sort of random number generator logic or something like that. Maybe they actually do incorporate an LLM at some point, at some layer. But my point is the tools are getting better. How would you justify investing the amount of time and energy in actually learning front-end

design concepts and learning tools like CSS in depth. And of course learning the related CSS grid and CSS, uh, flex, which flex box, which I think I, I'm not misspeaking when I say you, you encourage people to learn both of those and to learn how they're actually working under, under the hood, uh, with the native CSS that makes those features possible. Um, and,

What would be like your big reason for still learning those things? You know, if somebody is on the fence about like, should I even bother learning this stuff or is AI just going to solve everything? I would say the first thing is like, do you ask like why you're, why you're using one of them? Like I've seen like my, my kid's,

website stuff, like if I have to log into their account to do something for their schooling is all the new one. I don't know what it's using, but their old one was definitely using Bootstrap and it was all just connecting to the back end. And you know what? For that, it worked fine. And if that's all you need, because you just need a simple interface for somebody to do and it's the back end and the functionality is more important than I think that that's the perfect use case for those types of things.

But the reason I always say that you probably want to learn enough about them is because invariably you're going to want to make a change or a tweak or do something. And that's when you start running into problems. So like when you're relying on those systems, you're,

Or these different things you have in place. And as soon as you need to freelance a little bit, things can go off the rails really quickly. And so if you understand how the core language works, when you do need to make those changes, you actually have good ways of doing it. And this could just be about building a layer that works on top of the system you already have in place. So you're using...

material UI and you just need to like come through and make changes to it or like there's custom things that you need to be able to implement because it doesn't cover every single use case you need or whatever it is or it needs to tweak from what it already is. And so you just have your layer on top of it. That layer could be really well done and work super well.

Or if you're just sort of like throwing stuff at the wall, hoping it's going to work because you just have that one use case, but then you have a second thing, a third thing and a fourth thing. And it just becomes this unmaintainable pile that's layered on top instead of something that works really well. So that's one of the reasons that I really do think there's a lot of value in just having a good understanding of CSS itself.

And the other one is now that CSS is becoming a lot more... It used to be like, okay, columns, we need to make those. But there's so many features that are coming to CSS now that are more... I don't know how they would necessarily integrate into a system like that. We have popover stuff that's on the way. We have scroll-driven animations, sublayer... Layering is a different thing, but subgrid. Subgrid's a really hard thing to build into...

these more generic situations. Cause it's really for like these one-off situations where you need something that's a little bit more unique in a given situation. And so like, as CSS is becoming more evolved and more complex, I think relying on these other things can potentially also be holding you back from what's possible or make you rely on suboptimal solutions. When like, honestly, if people haven't seen the popover stuff, if you've been using like third party JavaScript things for like tooltips,

uh, and everything, you'll be very excited by what's coming with, with pop over. Um, but there's other, other use cases as well. And I just think it's like the combination of both things of just being able to problem solve things that you need. And also just all the new things that are coming, um,

on top of that, they could just, again, either give you that extra layer or a lot of the time people are relying on these third party things when you could just come in with your own code really lightweight because you don't need anything complex and roll your own too. I'm always a fan of that, but I enjoy writing CSS. So I'm biased on that front. So what I'm getting from your answer here is just a breakdown because you said many things. Maintainability, obviously important. Mm-hmm.

Independence from dependencies. I mean, relying on a tool, especially if it's like a paid tool, that's a, that's a great way to spend a ton of money over a long period of time. And it's like a lot of the low code tools and no code tools out there. I think they're great. Uh, we use those tools too, even though we're devs who can do other stuff. Like a lot of times it's just faster and simpler to use a tool like that, but you have to accept that there is a cost associated with those things and

And actually knowing how to do it yourself and just doing it right yourself with everything under your own control and knowing exactly what's going on, it makes it a lot easier to maintain it. And things don't just miscellaneously randomly go wrong. And then you're just like, I have no idea how I would even start to address this. You're not opening some ticket with some unrelated library or something like that, hoping that they'll eventually get to fixing whatever that...

underlying issue is. So maintainability, control, and just as tools progress and stuff like that, your code base isn't necessarily, you can add stuff on top because you understand how to make use of those. My next question is related to the progress of CSS itself. How is CSS run as an organization? And what are some of the biggest things that are coming out of it that you're most excited about?

Yeah. So everything goes through the W3 or the CSS working group. So it's CSS WG. You'll often see it come up. So the CSS working group that they basically decide everything, but it's all done in public and you can weigh in on everything that's going on whenever there's a new feature or new anything that's coming up. There's a huge debate going on right now about masonry layout and

which is kind of interesting because it sort of got split into an Apple versus Google battle, even though it's not like really what it is, but just each one of the Safari team has their thoughts and the Google team has their, or the Chrome team has their own thoughts that are on opposite ends. So there's that debate that's raging now you can find on GitHub. There's the discussion going on. You can see what everyone else is saying. You can weigh in on what you think. And there in the old days, it was very much the working group was a sort of

did their own thing, and then they would implement stuff. And then that's just what would happen. And they realized that they were making... There's a page, and I never remember what it is, but if you go like... Maybe it's with the working group. It's either on the working group page or on the w3.org. I don't remember, but it's like the admitted mistakes that they've made in CSS. And it's a list of probably like 30 things.

And so it's like, there are mistakes that have been made. Some of it's just like the wording, the syntax, uh, the, the different things along the way. And it's just because they've made a decision too quickly. Uh, and so they've realized like now with, uh,

When we make a decision, it's going to be there forever now. And so they're taking a lot more time to make sure these things actually make sense and that there's no mistakes, whether it's a syntax thing that could be better or whether it's just the way it works, the functionality of it. All of these different things have a lot more consideration now, and they look for a lot more user feedback in general.

That's so refreshing and so cool, by the way, that they are just so... I want to take a moment to espouse the virtues of this process. Yes, it is kind of slow. Yes, you can just have the dictator model where somebody's just like, we're going to do this, and everybody does that, right? Or you can have the model where it's complete like kind of just like a giant community, like an overtime...

went out, right? And it takes longer to arrive at the decision, but the decision is probably a higher quality decision and it's done transparently and you can understand the motivations behind it to a higher extent because you know who's involved in all the decision. So this is kind of like an argument for that kind of consortium approach. And this is how science is generally done, right? Like,

it's the difference between science and statecraft, which is generally done by somebody making a decision, then figuring out some, you know, post facto explanation for that decision. And, and everybody's doing that, you know, like so, so I really like this approach and I'm linking to that page. There are dozens of things that are like permanent, you know, flaws in CSS that like, you can't really remove it. Right. Cause there are people that are dependent on it. You just have to accept,

and move on. And I feel like this podcast, maybe I've misspoken. I might, it's been bugging me for a while. I might've said that you can build Minecraft in CSS, but I actually meant Minesweeper. And there's a link to CSS Minesweeper.

in the video description slash podcast show notes as well. But it's less impressive than Minecraft running against CSS. But still, there are going to be mistakes, and we just need to acknowledge those mistakes instead of trying to erase history. And I just love that they're not trying to put themselves in overly flattering light. They're just...

human engineers, many of whom are volunteers who are helping push forward the state of the art and the state of the tools that we use to build the state of the art. And there are many, many other things resting on top of that. And they realize their place in that hierarchy. And they realize that as a foundation, they can't make too many sudden movements or stuff starts to shake above. And people are like,

And people start to get really antsy, right? We see this all the time in the open source world. Like some underlying tool has its license changed. And suddenly everything's up in the air and it's chaos. And it's really scary. And I love that CSS is just this open standard and that we don't have to worry about somebody owning CSS like Java got bought by Oracle. Like that's terrifying to me.

Right. Anyway, uh, very cool. Thanks for giving the context and thanks for pointing out that, that helpful, uh, resource. I encourage anybody who's working with CSS to see the mistakes made and then it's good to know about these, but then you, you can like say, Oh, this is here, but you shouldn't use it. You know? Um, yeah. Yeah. Um, so the other thing just really quickly that I'll mention, cause I know you want me to talk about the things I'm excited for, but there's one other thing that's really helped move things along as well, which is the last, um,

three years, I think, two or three years, there's been the interop that all the browsers get together along with some independent groups and user feedback. It's users who submit, but it's like, here's all the features that we have that we want to make sure are properly supported with zero bugs across every browser engine. And so they take feedback, they create this list, and then the interop group makes a suite of tests to

to put all the browsers through. And by the end of the year, the goal is for all browsers to be able to do those things with all of these things. So like the focus for 2024, they have a whole bunch of cool stuff.

And it's just to basically make sure that these new features that are coming along are actually gaining support across all the browsers, but that there's also no bugs as well. And it's really cool that the browsers are working together on this at the same time. They work together with the working group, but then also to be like, yeah, let's make sure that we're not in this weird land where different browsers are supporting different features.

Yeah. Yeah. That's a, you know, a complexity that a lot of people wouldn't even consider, but we do still live in a multi-browser world and a huge chunk of people use Safari and a lot of people are trying to use alternatives to Chrome. So we still got the Firefox folks. That's a mouthful. And then we've got like folks doing other browsers as well. And like privacy focused or security focused, things like that. So yeah, yeah.

So thanks for giving us some insight into how CSS is run as a tool. One of the things that I wanted to ask you about is how much do traditional design skills carry over from CSS? Like, let's say hypothetically, you're a graphic designer and you're used to working in print. And we've had lots of people on the free cocaine podcast who worked as graphic designers in transitioning to web dev. And they had to learn, you know, essentially web design using CSS. How much,

Where do the kind of skill sets overlap and where do the similarities start to break down? Yeah, I think there's definitely a decent amount of overlap in terms... I just did a video actually recently talking about there's one of the biggest design softwares out there is Adobe's InDesign, which is a print software. I love it. It's such a fantastic piece of software. I'm not a huge Adobe fan, but InDesign is amazing. And one of the things that...

it's really good at is the typography styling. And it actually, if you set it up in the right way where you're sort of basing styles and other things, it works a lot like how CSS works in terms of like inheritance and a bit with the cascade and stuff. So I think like, and just with the paragraph styles, character styles, that type of thing relates really well to how CSS works with the classes. And as I said, inheritance and other things. So, um,

I think some of those like concepts, like bigger picture concepts and how the relationship between things can work is definitely there.

And having that sort of idea of like organizing things in ways, whether it's, you know, it might be a different thing, but if you're doing layers and everything else in a design software, just knowing that like, okay, I need to have everything I'm doing well organized. And that helps with the maintenance of my project and the scalability of this project. Like if you have those types of skills to look at a project in the big picture, a hundred percent, it's going to pay off because CSS scalability maintenance is always one of those things that can be difficult.

And so if you're coming in with the right mindset, even if it's a new language and it works differently than what you're used to, at least you have that sort of the right mindset to approach things, I think, or ask the right questions at least and to get yourself into a good position. The biggest difference is obviously with print, you're making something that doesn't move or doesn't change. Or even if you're just coming from, it doesn't have to be print, any sort of design, you're working in static layouts generally and thinking about not only how

static to the responsive web design we were talking about, but it's, you know, you're not doing a mobile and then a tablet and then a desktop view. That's what you can do with your design software. But in the real world, it's all of those and everything else that you could ever imagine, which is a lot more difficult. And I think it takes a little bit of a mindset shift to, um,

realized the differences there. And there's actually a really good video. Speaking of Firefox, it was when Miriam Susan was still working on the Firefox team. It's called Why is CSS so weird? And

And in it, she goes into just all like compared to print. It's just all of the different things you're thinking about from the resolution, the color gamut. You know, some people, is it a screen reader that's looking at the site, like the different ways someone can interact with it? Whereas if it's a static thing that's on the screen, someone's looking at it. Whereas someone might be keyboard navigating through a page. Someone might be using their mouse. It might be a pointer or a touch device. There's all the different screen sizes. There's just

Just there's basically infinite different ways that a user could interact with your website. And we have to think about all of those or at least be aware that like that's a possibility. And we don't have the ultimate control because the user can go in their settings and change. Like there's a force in Windows anyway.

At the system level, there's a forced color mode. All your colors are gone. I think there's six base colors. There's different themes that you can choose as the user. And it just wipes out every color that's in the website for these, like the canvas color, the text color, a link color. And there's a few others. And it's like knowing that it's actually the user that has the final control over how the website's being consumed, I think is something that's very different from any other medium that we've had before. Yeah. Yeah.

And a lot of people who are working as developers, like doing mobile app development, for example, or like more realistic, a lot of people, about a third of the people who listen to this podcast are students. A third of the people listening are working devs. And a third of the people are people working in other fields that are trying to transition into working as a dev. And so, so for a lot of those people, they are thinking, Oh, I'm just going to be building mobile apps.

You know, mobile apps are the future. I don't really care that much about web. Like, is there merit in somebody who's primarily going to be building mobile apps to still invest the time and energy in learning CSS in your mind? Yeah, I think so. I think it's a little bit like what you mentioned earlier, where, like, there's a huge user base, first of all, that's still on desktop or computer or whatever. Like, they're not downloading the app necessarily. I think... And even, like, I...

I'm like you in that I prefer having just a web experience if I can have it. And I know we're not alone in that. And I think there's a large amount of people that do prefer that approach to things. I also think it's one of those things that's hard to know, but one of the advantages of HTML, CSS, and JavaScript just being these core languages that nobody owns is a really big thing. And I think

has more staying power than...

And, you know, obviously Android and Apple seem like they're here and they'll be here forever. But I think we've said that about previous things in the past. You never really know what's going to happen. I think if you're going to switch from one type of mobile development to another, you could probably, you know, if you understand enough about programming, you'll be able to figure it out. It's not like, oh my goodness, I'm starting from ground zero all over again. But I'm just, you know, open. I'm a big fan of knowing things that are built on open standards because then that I just think it has...

the potential for the most potential growth and staying power. Yeah. Yeah. 100%. Like, I mean, it's difficult to imagine the Apple Google duopoly on mobile app, mobile phones going away. And it's difficult to imagine mobile phones going away as a thing, but we're going to have smart glasses forever.

pretty soon. And that's going to be a huge breakthrough in terms of not having to look at a device, just having everything presented there or who knows, maybe we'll even have like brain computer interfaces, things like that. Uh, some of that stuff's very scary, but it may be coming in there may be demand for it where people are okay with like the privacy implications of like connecting their brain to an interface and like, you know, knowing how to do things with CSS, uh, it's such an established pattern that like,

Future, you know, interface designs are probably going to be heavily derived when CSS, because there's no, there's nothing like CSS that's ever been as well explored and mapped out. Like it is by far the most sophisticated, like kind of like templating tool that we have. Right. At least from what I understand. Yeah.

Um, so, so yeah, there's a very good reason to think that like, even if you're not directly using CSS and if you're doing react native or if you're doing, um, uh, you know, flutter development or something like that, I think you may be using CSS in some of that. And it may be better to use CSS than to use whatever like native tools that like, you know, Google's, uh, uh,

app UI libraries and stuff like that. Um, it may be better because you can use that and render it more places. And if it's getting transpiled into some other tool, there might be artifacting and stuff like that. So, so going back to basics, if you will, and working with the primordial tool that is CSS, one of the three tools of the web, right? HTML, CSS, JavaScript, uh,

Everything can be, in theory, done with those three tools, even if it's not necessarily the best way to do it. You've made a compelling argument for investing the time in that. So just two more quick questions. One of the things, you're learning all the time. You blog a lot. You encourage other people to blog and learn in public. Why do you think it's so important to share insights as you're getting them? And as a teacher, is there some sort of structural thing that helps reinforce learning by talking about it? Yeah, I think it's...

I very quickly realized when I started teaching how much better I learned the things I was trying to teach. And it wasn't just by putting together like lesson plans, because obviously like you're planning out your lesson, you need to research it, find everything out. But the amount of times I've been in the middle of a sentence explaining something and I have a light bulb go off in my head of this connection I'm making just because I'm trying to explain something. And in...

trying to verbalize it. And it's the same for writing. If you're writing blog posts or anything else, like when you go through, instead of just understanding how it works and being able to do it, when you try and explain to someone why that thing does the thing it does, it just, you in inadvertently make connections you wouldn't have had before. And you learn the topic in, in deeper ways than you,

and it sounds like, Oh yeah, I'm sure that really happens, but everybody I know who's done it, like can attest to that type of thing where you just, you just start understanding it in new ways. And again, you're just trying to do, I think you're just using a different part of your brain instead of I'm trying to do this thing. I'm trying to explain it and it just forces you to break it down a little bit more and understand it at a much deeper level. And I find it, yeah, it really changed things for me. It made me much better at everything I do. And I think it's,

it really helps on that front. And I think learning in public also, you know, is a really good way to just establish

set yourself apart a little bit. Like if you're somebody who's a student who's learning right now, just putting out everything you're learning along the way, it builds your online presence. It shows people and potential employers. You're building up this catalog of content that you can show the different things you've done instead of just being like a project that a lot of, you know, another to-do list it's you're going deep into the to-do list, how it worked, all the different pieces of it. So you're showing people,

like answers that they might ask during an interview that they have, they see that, you know, these things already. And I think it's a really good way to set yourself apart and just have this extra catalog of stuff to sort of show off. And I think that, you know, the two of them together, I think are a pretty compelling case on why people should do it. Yeah. That is a great way to put it. Like you're synthesizing, you're learning. It's not too different from like talking, like, you know,

Thinking about riding a skateboard versus actually going out and riding the skateboard, in a way, you have all this knowledge that's in there, and maybe you're thinking about it, but by actually articulating it and trying to package it for another person to understand, it forces you to really grapple with it. And I believe it was Einstein who said, if you can't explain something to a five-year-old, you yourself don't sufficiently understand it.

And so it just forces you to grapple with it and to ultimately arrive at understandings and, and maybe shave off a lot of the rough corners and realize the, uh, the limits of your own knowledge and figure out what you need to go and brush up on. So, yeah, definitely. It's, it's really good. That's a really good point too. It makes you much more aware of your knowledge gaps.

Yeah. And because you are looked to by many as the king of CSS, even though you've renounced that title, but because you're so influential in the CSS place, one of the things you've said in one of your many podcast interviews that I listened to in getting ready for this is you often said that like,

Even a throwaway comment can influence somebody like even some offhand. This is why I'm like, I try to be very careful with what I say, even though it may sound like I have diarrhea of the mouth when I'm on this podcast. Like I do put in a lot of time, like kind of thinking about like, okay, what would be a responsible thing to say here? Right. I don't want to be irresponsible. I think there's plenty of podcasts out there where people just irresponsibly talk about

about things they don't have much understanding on. And I try to like kind of stay within the constraints of my relative expertise. But how do you go about sharing opinions knowing that so many people may take them at face value? And how do you go about like talking about things that you don't necessarily have full comprehension of yourself or full confidence in your full comprehension? Yeah. I think I've become much more

letting people know when it's like, even I did a workshop recently and during the workshop, I was a lot of what I would say would be like, this is how I like doing it. This is why I like doing it.

give the full explanation on like, this is, you know, it works for me because, and show them why, but also there's alternative solutions that work and these are alternative solutions that other people work better. And if, you know, and showing that too. Uh, so I think I'm much, and this is one example, but I'm much more, I'm okay with letting people know I don't know everything or that there's, you know, my way isn't the only way, uh, and making sure people are very aware of that.

And also, it's something that's really hard I find with YouTube videos because I still get comments where I'll do something, like you said, it's a throwaway comment and there's replies to it. And I'm just like, oh yeah, I guess I could have said that a little bit different. A lot of the time it's not a big deal, but it might just be like, oh, our...

I had a video where I used sort of a more complicated way of doing something. And then there was a comment that was like, why didn't you do it this way instead? And it's just like, yeah, I probably should have done it that way. And I wish this was a blog article that I could put a little, you know, edit it and put an annotation, but I guess I can pin a comment on a YouTube video, but that's about it. But just, yeah, having to be much more aware of like people trust me as an expert. And so it was,

Making sure, first of all, that they're aware of when I'm talking about things that I'm not 100% on or that there is room for discussion. And also just trying to be careful not to show bad practice or mistakes. And that's also one of the reasons I think it's really nice to be hyper-focused on a single topic. It's because I feel confident in a lot of the things I'm talking about.

And anytime I do a video that's a little bit outside my comfort zone, it takes me like six times longer to put together because of the amount of research and everything else to make sure I'm actually doing it properly. Yeah. I mean, I admire your epistemological honesty. I feel like...

There's so much to be gained in terms of like selling out and like, Oh, we're going to be a, we're going to be a politics podcast. We're going to be a pop culture park gossip podcast. Like, like, and I'm sure you could go jump on the bandwagon with everybody else and talk about AI and talk, talk about whatever the topic du jour is, but you don't, you stay in your lane and it's,

It's often thankless to be putting out the – I don't know how many hundreds of videos you have on your channel. It's too many. It's a video about some bastard of CSS. But it's honest work, and somebody has to do it. These topics have to be covered. They have to be taught. And I just want to close with just admiration for the fact that you have kind of built this niche, and you haven't – you're not like –

walking around acting like you're like the best developer in the world. Uh, you're just saying like, Hey, I am a developer who has a lot of experience with CSS. And like, I think that's so refreshing in the age of people kind of like faking it and, and, uh, trying to, uh, overstate their expertise because a lot of naive people will flock to those people who overstate their expertise. There's this quote that I love. It's like, if you can only be good at one thing, be good at lying, then you're good at everything. Yeah.

Right? People actually fall for this stuff all the time. A lot of people are not that sophisticated. And I realize the sacrifice you're making that you could potentially become like this big... I'm not saying...

you could go the Mr. Beast route with your YouTube channel or something like that, right? Just publish crazy sensational stuff. But no, you're just like sticking to the hard engineering. So I will just close by saluting the fact that you're doing that and thanking you for spending two hours of your time hanging here, talking with me and the good people tuning in to the Free Code Camp podcast. Yeah, I really appreciate you having me. It was a really fun conversation. So thanks.

Awesome. And as always, I've included lots of links to stuff that you should check out from Kevin Powell's YouTube channel, other projects he's been working on, courses. If you want to go deep on CSS, I strongly encourage you to learn more about him and spend more time with the artifacts that he has created over his decade-long career as a teacher in public. Thanks so much for coming on the show, man. Yeah, thanks. All right, and everybody tuning in. Until next week, happy coding.