Teaching in Public w/ Kent C. Dodds (part 2)
Summary
In this second part of the interview, Kent C. Dodds delves into the technical and career lessons that have shaped his journey. He recounts the pivotal moment when he discovered React and its component model, which emphasized composition over inheritance—a concept that fundamentally changed how he structured applications. This shift from AngularJS to React wasn’t just about a new tool; it was about embracing simplicity and encapsulation in software design.
Kent also shares his personal career transformation, revealing how he turned teaching from a side hustle into a full-time, lucrative profession. He explains the importance of creating a massive amount of high-quality free content to build trust and credibility before asking for payment. His advice for aspiring teachers is to force themselves into uncomfortable teaching situations, learn by preparing to teach, and focus on building an audience through valuable, free resources.
The conversation explores the philosophy behind his Epic React course, which is designed to avoid ‘tutorial purgatory.’ Kent details his unique pedagogical approach based on the book ‘Make It Stick,’ where learners are presented with problems first, encouraged to solve them using provided resources, and then asked to elaborate on what they learned. This ‘consume, build, teach’ cycle aims to make knowledge stick far better than traditional watch-then-follow methods.
Finally, Kent discusses the importance of focus in a developer’s career, advising beginners to choose popular technologies like JavaScript and React to maximize opportunities and minimize decision fatigue. He emphasizes that being a nice person and effectively communicating your skills are just as critical as technical ability for long-term success. The episode closes with Kent sharing where listeners can find his work and join his community.
Recommendations
Books
- Make It Stick — A book on learning science that deeply influenced Kent’s teaching methodology for his workshops and Epic React course. He applied concepts like generation and elaboration to improve knowledge retention.
Courses
- Epic React — Kent’s comprehensive React course, which he describes as combining the best parts of live workshops and self-paced learning. It uses a unique ‘consume, build, teach’ pedagogy based on learning science.
- Testing JavaScript — Kent’s course that performed so well it allowed him to leave his full-time job and focus on teaching. It’s cited as a key moment in monetizing his teaching skills.
People
- Kevin Kelly — Mentioned in the context of his ‘1,000 True Fans’ theory, which Kent references when discussing building a sustainable audience for paid teaching.
Tools
- ConvertKit — Kent recommends this email marketing service for building and communicating with an audience, which he uses for his own mailing list.
- XState — A library for finite state machines that Kent mentions as something he wants to learn but hasn’t yet found the time for, listing it as an area he’s not yet an expert in.
Websites
- kentcdots.com — Kent’s personal website, which he directs listeners to for links to all his courses, blog, newsletter, and community channels like Discord.
- epicreact.dev — The website for Kent’s flagship React course, which is discussed at length as a transformative learning resource different from typical online courses.
Topic Timeline
- 00:00:00 — Prioritizing testing in a codebase — Kent explains his approach to adding tests: start with the parts of the code that would be catastrophic if they broke. He advocates for risk analysis and prioritization, just like feature development, balancing customer desires for new features against the need for stability.
- 00:03:09 — The paradigm shift from AngularJS to React — Kent describes the moment React ‘blew him away’ after working deeply with AngularJS. He contrasts the complexity and ‘leaky abstractions’ of older models with React’s simple, encapsulated component model. This shift to composition over inheritance fundamentally changed how he thought about building applications.
- 00:07:47 — Turning teaching into a full-time career — Kent shares his realization that teaching could be lucrative enough to replace his salary. He recounts the pivotal moments: his first Egghead course paying his mortgage and the success of ‘Testing JavaScript’ allowing him to go full-time. This was a major career paradigm shift.
- 00:09:51 — Advice for aspiring teachers and content creators — Kent advises putting yourself in situations where you must prepare and teach content, even on topics you’re still learning. He stresses the strategy of producing a ‘ridiculous amount’ of high-quality free content to build trust and credibility before monetizing. Building an email list is also key for communication.
- 00:17:39 — Areas of discomfort and the power of focus — Kent admits he’s not comfortable with CSS, animation, finite state machines, or DevOps, and he only teaches what he’s confident in. He discusses the strategic decision to focus exclusively on JavaScript and React, arguing that deep expertise in a popular area creates more impact and career opportunity than being a polyglot.
- 00:28:00 — The unique pedagogy behind Epic React — Kent explains how Epic React is designed to combat ‘tutorial purgatory.’ Inspired by ‘Make It Stick,’ the course uses a ‘consume, build, teach’ method: learners are given a problem first, must solve it using provided docs, and then write about what they learned. This generation and elaboration process makes knowledge more memorable.
- 00:44:48 — Final advice: communicate and be nice — Kent offers his 30-second advice to all developers: it doesn’t matter how good you are if no one knows, so learn to communicate your abilities. Conversely, it doesn’t matter if people know you’re good if you’re not a nice person to work with. Success comes from combining skill, communication, and kindness.
Episode Info
- Podcast: Developer Tea
- Author: Jonathan Cutrell
- Category: Technology Business Careers Society & Culture
- Published: 2020-12-02T10:00:00Z
- Duration: 00:48:06
References
- URL PocketCasts: https://pocketcasts.com/podcast/developer-tea/cbe9b6c0-7da4-0132-e6ef-5f4c86fd3263/teaching-in-public-w-kent-c-dodds-part-2/212d6a17-58d7-48e9-aad3-4076522d48a6
- Episode UUID: 212d6a17-58d7-48e9-aad3-4076522d48a6
Podcast Info
- Name: Developer Tea
- Type: episodic
- Site: http://www.developertea.com
- UUID: cbe9b6c0-7da4-0132-e6ef-5f4c86fd3263
Transcript
[00:00:00] That’s where I start when I’m thinking about
[00:00:02] adding tests to a code base.
[00:00:03] It’s like, what part of this code base
[00:00:04] would be really, really bad if it broke?
[00:00:07] And that’s where I’m gonna start.
[00:00:08] And if you’ve already feel really confident
[00:00:12] with your automated test suite
[00:00:13] that you’re covering those use cases,
[00:00:15] then you can move down to the next tier of like,
[00:00:17] this would be pretty inconvenienced.
[00:00:19] I would have to get up in the middle of the night
[00:00:21] if there was a problem with this,
[00:00:23] or maybe this would be the first thing
[00:00:25] I’d have to fix in the morning or whatever.
[00:00:27] You just, you really prioritize testing
[00:00:29] just like you do prioritizing writing any of your software.
[00:00:33] You say, I could either write this feature
[00:00:36] or I could write this test for an existing feature.
[00:00:39] Which one is more important right now?
[00:00:41] Well, I mean, customers want the feature,
[00:00:43] but customers also don’t want things to break.
[00:00:46] So you do a risk analysis
[00:00:48] and then you just make, you prioritize things.
[00:00:51] I actually have a blog post about that too.
[00:00:53] So, yeah.
[00:00:56] You just heard the voice of Kent Dodds.
[00:00:59] Kent C. Dodds is on our show again for the second day,
[00:01:04] for the second episode in a row.
[00:01:06] Of course, this is the second part of my interview with Kent.
[00:01:09] Kent is a lifelong teacher.
[00:01:11] He built Epic React.dev.
[00:01:14] You probably know him from a hundred different places.
[00:01:19] You’ve probably read one of his blog posts before
[00:01:21] because he’s written a book about it.
[00:01:23] I hope you enjoyed this episode,
[00:01:25] but first, if you haven’t listened to the first part,
[00:01:27] you probably should go back and listen to that.
[00:01:29] You might be a little bit confused if you don’t.
[00:01:31] My name is Jonathan Gattrall.
[00:01:33] You’re listening to Developer T.
[00:01:34] And my goal on this show
[00:01:35] is to help driven developers like you
[00:01:37] find clarity, perspective, and purpose in their careers.
[00:01:40] And on today’s episode,
[00:01:42] we are finishing up our interview with Kent C. Dodds.
[00:01:46] Let’s get straight into the interview with Kent C. Dodds.
[00:01:49] I’m going to start off by saying
[00:01:51] Let’s get straight into the interview with Kent.
[00:01:54] It’s never easy.
[00:01:55] There’s not a way to sum it up on,
[00:01:58] in your blog post, on this podcast,
[00:02:00] here’s how to make all testing decisions forever.
[00:02:03] It’s just not that easy.
[00:02:05] Even code, I’ve certainly worked in code bases
[00:02:07] that had over a hundred percent coverage.
[00:02:09] Don’t ask me how it’s possible.
[00:02:10] You just, you know.
[00:02:12] And you still have things that break, right?
[00:02:15] Even when you’re covering things completely.
[00:02:17] Well, because coverage is not really,
[00:02:21] it’s a meaningless metric if the code is wrong,
[00:02:24] or if the tests are wrong for that matter.
[00:02:26] So testing is a hard problem.
[00:02:28] And perhaps one of the reasons why it’s,
[00:02:30] you know, it’s something that we can always be refining
[00:02:33] and always be getting better at.
[00:02:35] There’s not really an end to that discussion.
[00:02:37] So I really appreciate you kind of investing
[00:02:40] in that topic discussion.
[00:02:43] I’m interested in,
[00:02:44] I’m going to kind of shift gears a little bit here.
[00:02:48] What is something that you can look back on,
[00:02:50] having learned,
[00:02:52] that shifted your way of thinking,
[00:02:55] or was it kind of a moment,
[00:02:57] a kind of a colossal, you know,
[00:02:59] change, perspective shift for you?
[00:03:02] And what was it that caused that moment to occur for you?
[00:03:06] Oh.
[00:03:09] When I started working with React,
[00:03:11] I had a moment like that.
[00:03:12] Before I was working with AngularJS,
[00:03:15] and templates, directives, controllers, all that.
[00:03:20] And I got really good at it.
[00:03:22] I spent plenty of time in the debugger
[00:03:25] within the AngularJS code base.
[00:03:27] I even contributed to AngularJS.
[00:03:29] So I was deep into that.
[00:03:31] I had a podcast, I was teaching about it.
[00:03:35] And Angular 2 was coming around,
[00:03:37] and I was teaching about Angular 2
[00:03:39] before it was released,
[00:03:42] during that like two or three years
[00:03:44] while we were waiting for that to happen.
[00:03:47] And then I tried out React,
[00:03:50] and it just blew me away.
[00:03:51] I was so, I was just floored at what I could do with React.
[00:03:56] And the level of simplicity.
[00:03:58] Now, it wasn’t easy.
[00:04:00] Simple is not easy.
[00:04:01] These are different words.
[00:04:02] Go Google it.
[00:04:04] Simple, in this context,
[00:04:07] and what it actually means is that
[00:04:09] it’s like the opposite of complex.
[00:04:11] Complex is where things are
[00:04:14] mingled together.
[00:04:14] This is like jQuery spaghetti code.
[00:04:16] You change one thing over here,
[00:04:17] and something totally different changes,
[00:04:19] or it impacts something you weren’t expecting.
[00:04:22] They’re leaky abstractions.
[00:04:24] React just nailed the component model.
[00:04:26] And that made a big impact on me.
[00:04:29] Now, it was another year before
[00:04:31] I switched from AngularJS to React,
[00:04:33] but from that day,
[00:04:34] I started writing all my Angular-like React.
[00:04:36] I would, so this is Angular 1, AngularJS,
[00:04:41] and this was before they created
[00:04:43] the Angular.component thing that you could use.
[00:04:46] But I started using directives like components
[00:04:48] because that idea of a component model
[00:04:51] just really rang true for me.
[00:04:53] Can you expand just a little bit
[00:04:56] on what that means, on the component model?
[00:04:58] How did that change what you were doing
[00:05:03] with Angular?
[00:05:04] What would be an example of a change
[00:05:07] that that would have made
[00:05:08] in the way that you were writing that code?
[00:05:10] Yeah, so with Angular,
[00:05:13] the kind of de facto standard way of doing things
[00:05:16] was if you wanted to take an element
[00:05:18] that you were rendering
[00:05:20] and enhance it with capabilities,
[00:05:22] you would create a directive
[00:05:24] that enhances that thing with capabilities,
[00:05:25] and you would apply that to the element you’re rendering.
[00:05:28] And then if you want to add another capability
[00:05:31] that is a generic sort of thing,
[00:05:34] then you would make another directive,
[00:05:35] and you’d apply it.
[00:05:36] And so this element would inherit
[00:05:38] all of these capabilities
[00:05:40] from the different directives that it was using.
[00:05:42] The component model is different.
[00:05:44] Rather than inheritance,
[00:05:45] you’re talking about composition,
[00:05:47] where you’re taking a component
[00:05:49] that is responsible for a single thing,
[00:05:52] and you just render that one component.
[00:05:54] And if you want to enhance it,
[00:05:57] then you’re going to share that logic with JavaScript.
[00:06:01] And that ends up working out really nicely.
[00:06:03] And especially now that we have hooks,
[00:06:05] that’s really easy to do
[00:06:06] because you have this logic that you want to share.
[00:06:08] You make a custom hook out of it,
[00:06:10] and now you can compose those different custom hooks
[00:06:12] together to build these larger components.
[00:06:16] But the idea is that the component
[00:06:18] is entirely encapsulated.
[00:06:20] It’s a black box to the outside world.
[00:06:23] And the nice thing about that is
[00:06:25] you can put all of the junk and terrible code
[00:06:28] that you want to inside of this black box,
[00:06:31] and the fact that that code is terrible
[00:06:33] is not going to impact the rest of your application
[00:06:36] because it all lives inside that black box.
[00:06:39] So, I mean, we could get really technical here,
[00:06:43] but I don’t know if that’s what the audience here wants.
[00:06:46] But it makes a pretty significant impact
[00:06:48] on the way that you structure your applications
[00:06:52] when you have a component model like React.
[00:06:55] Yeah, that makes total sense.
[00:06:57] And composition over inheritance
[00:06:59] is certainly something that we’ve talked about on the show.
[00:07:02] What’s interesting is that same concept
[00:07:07] can be found in other languages, right?
[00:07:09] It’s kind of a shift that you are able to apply
[00:07:15] in this particular regard,
[00:07:16] but you can imagine this in a back-end language.
[00:07:21] I say back-end, JavaScript’s back-end now.
[00:07:24] You can imagine this in Ruby,
[00:07:26] somebody using composition rather than inheritance,
[00:07:29] and it changing the way they think about code forever.
[00:07:32] Absolutely, yeah.
[00:07:33] Composition over inheritance was the mind shift change
[00:07:37] for me in this case, for sure.
[00:07:40] So, another, yeah, just another big mind shift change
[00:07:45] was more career for me,
[00:07:47] and that was when I realized how lucrative teaching can be.
[00:07:53] Because of the enormous impact that I can make
[00:07:56] with teaching and getting really good at teaching
[00:08:00] and good enough that people are willing to pay you
[00:08:04] for what you’re teaching them,
[00:08:06] I didn’t realize that could be
[00:08:09] something I could do full-time,
[00:08:11] and that it would be a replacement for my salary.
[00:08:17] So, the first part of that was the first course I made
[00:08:20] for Egghead, it was about authentication with AngularJS,
[00:08:25] and that first month, I paid for my mortgage
[00:08:29] just with that paycheck.
[00:08:31] I don’t know if that’s how that works these days.
[00:08:34] I think new Egghead instructors,
[00:08:35] I don’t think make that much on their first course now,
[00:08:38] but back then, that’s what happened,
[00:08:42] and it just blew me away that I could say,
[00:08:44] oh, I guess if I keep this up, I don’t need a mortgage.
[00:08:48] That’s just not a thing.
[00:08:49] And then the second time that I got blown away by this
[00:08:53] was when I created testing JavaScript,
[00:08:56] which did just super, super well,
[00:08:58] and I realized I didn’t need my salary anymore,
[00:09:00] and I could go full-time teaching,
[00:09:03] and I didn’t have to do all my teaching in the evenings,
[00:09:06] recording videos and stuff after the kids go to bed.
[00:09:10] And yeah, it just totally blew me away.
[00:09:12] So, that was another big paradigm shift for me
[00:09:16] was realizing that I could turn this side hustle,
[00:09:18] if I hustle really hard,
[00:09:20] I can turn this side hustle into a full-time thing.
[00:09:22] Yeah, I know that a bunch of people
[00:09:25] who are listening to this right now
[00:09:26] are probably swapping from their podcast listener
[00:09:29] over to Chrome and Googling
[00:09:31] how to start teaching on the internet.
[00:09:35] So, what advice would you have
[00:09:37] for people who just heard that
[00:09:39] and certainly are inspired by that
[00:09:43] or are interested at least in walking down that path
[00:09:47] or looking at it at least?
[00:09:49] What would you tell them to look at?
[00:09:51] Well, I do have a blog post about this.
[00:09:53] I have a post called How I Teach,
[00:09:55] and also another one about how I record screencasts.
[00:09:59] But what I would suggest, if you really want to,
[00:10:02] so there’s two things,
[00:10:03] there’s how do you teach
[00:10:05] and how do you get really good at teaching,
[00:10:07] and then there’s how do you take your ability
[00:10:10] and actually monetize it in a way that is effective
[00:10:13] and you can actually pay your mortgage
[00:10:16] or whatever you want to do,
[00:10:18] get the freedom that you’re looking for.
[00:10:20] And so, getting good at teaching,
[00:10:22] you just got to do it a lot.
[00:10:24] Just like software skills in general,
[00:10:27] there’s no shortcut to getting good at this stuff.
[00:10:29] You just have to put in the time.
[00:10:32] And so, I would force myself into situations
[00:10:35] where I had to prepare content.
[00:10:37] I’d say, okay, I’m going to do the brown bag lunch
[00:10:40] training on X thing because I want to learn that thing.
[00:10:43] I don’t know it yet, but I’m going to
[00:10:45] and I will teach you what I learn.
[00:10:47] You put yourself in those uncomfortable situations
[00:10:50] and all of a sudden, you get really good
[00:10:53] at preparing content.
[00:10:54] You schedule yourself to,
[00:10:56] I wouldn’t teach anything or volunteer to teach anything
[00:10:59] that I wasn’t sure was possible.
[00:11:01] I wouldn’t say, I’m going to teach you
[00:11:02] how to use JavaScript to get to the moon.
[00:11:04] That’s ridiculous, but I know that this is possible,
[00:11:08] I just don’t know how to do it myself,
[00:11:09] so I’ll volunteer to teach that
[00:11:11] and that will encourage me to learn it.
[00:11:13] So, I proposed several talks at conferences
[00:11:17] that were precisely motivated in that way.
[00:11:21] And so, yeah, you just do it a lot.
[00:11:23] And then, as far as making it something
[00:11:26] that you can actually sell and make money on it,
[00:11:31] a really important part of my strategy
[00:11:34] is to produce a ridiculous amount
[00:11:37] of high quality free content.
[00:11:39] And you might call it content marketing
[00:11:42] or whatever you want to call it,
[00:11:43] but I have tons of blog posts,
[00:11:47] all of my material is open source.
[00:11:49] I have my podcasts, I have my YouTube channel,
[00:11:55] just a silly amount of content.
[00:11:57] Give people a reason to trust you with their money.
[00:12:02] And so then, I just make premium content
[00:12:05] that I charge for and people are like,
[00:12:08] well, I mean, I’ve learned enough from this dude
[00:12:11] to pay him without getting anything in return.
[00:12:13] So, yeah, heck yes, I’m going to do this.
[00:12:16] And so, yeah, just a lot of free content
[00:12:20] to prove to people that you know what you’re talking about,
[00:12:22] you know your stuff.
[00:12:23] And then, also, you want to make sure
[00:12:26] that you have a mechanism
[00:12:28] for communicating with that audience.
[00:12:31] And so, collecting emails early,
[00:12:34] like start your mailing list today,
[00:12:37] it’s really easy to do.
[00:12:38] I use ConvertKit and it’s awesome.
[00:12:41] And yeah, just create value for people.
[00:12:43] Give people a reason to follow you,
[00:12:45] give people a reason to want to know more
[00:12:49] and do it for free.
[00:12:51] And then, when it’s time to ask them for money,
[00:12:53] you can do that.
[00:12:55] And I actually, I do have a blog post called,
[00:13:00] Getting Noticed and Widening Your Reach
[00:13:01] or something like that,
[00:13:03] where I talk about this a little bit there too.
[00:13:05] Of course you have a blog post.
[00:13:06] Yeah.
[00:13:09] Yeah, that is all, it all makes sense.
[00:13:13] I mean, really what you’re saying,
[00:13:15] in large part is, work hard.
[00:13:18] That’s a big component of this, right?
[00:13:21] There’s no, but also, I think,
[00:13:25] one of the most critical things
[00:13:26] that people may not realize is that
[00:13:30] the credibility that you provide
[00:13:35] is such an important part.
[00:13:36] And this is true,
[00:13:37] whether you’re trying to sell a product online
[00:13:40] or if you’re just trying to get a job, right?
[00:13:42] You’re kind of selling yourself
[00:13:44] in either scenario to some degree, right?
[00:13:47] And so, having some way of saying,
[00:13:50] hey look, here’s my body of work, right?
[00:13:52] And whether that’s valuable to you directly
[00:13:56] or valuable to you indirectly
[00:13:57] in the sense that I’m proving that I can do this thing
[00:14:01] that you’re asking me to do on behalf of your company,
[00:14:04] putting that stuff out there
[00:14:06] is almost always a useful idea, right?
[00:14:10] There’s probably a developer right now
[00:14:12] who’s trying to decide, like, should I sell this
[00:14:14] or should I give it away?
[00:14:16] You’re not going to lose, probably anything,
[00:14:21] if you choose to give it away, at least to begin with.
[00:14:24] Yes.
[00:14:25] Probably not gonna lose anything.
[00:14:27] If anything, there’s a lot to gain from that.
[00:14:30] Now, if you were to do the mental calculus of,
[00:14:32] oh, if I could sell it to 100 people at $100 each,
[00:14:34] then I make X, whatever.
[00:14:36] Yeah.
[00:14:37] But how do you quantify it over that long period of time,
[00:14:40] people getting value out of that,
[00:14:42] indefinitely as a free resource?
[00:14:45] Yeah, absolutely.
[00:14:46] It’s so easy to get trapped in the whole,
[00:14:49] like, well, the market is tens of thousands
[00:14:52] or hundreds of thousands of people.
[00:14:53] If I charge them all a dollar, then, yeah.
[00:14:56] But like, why are they going to give you a dollar?
[00:14:58] They’re not going to give you a dollar.
[00:15:00] Right, right.
[00:15:01] If they do, it’s probably the only dollar
[00:15:04] they’re ever gonna give you, right?
[00:15:05] Yeah.
[00:15:07] You’re not gonna build, you know, the Kevin Kelly,
[00:15:10] I’m sure you’ve heard of the thousand true fans,
[00:15:13] and you’re not gonna build that.
[00:15:15] But I imagine, you have people who have bought
[00:15:18] everything that you’ve put out,
[00:15:19] and they’re ready for you to put anything out next,
[00:15:22] and they’re gonna buy the next thing, too.
[00:15:24] Yeah, yeah, I do have those people, for sure.
[00:15:26] And they’re awesome, love those people.
[00:15:28] And it’s not because they’re just personal fans of you.
[00:15:30] I’m sure some of them, maybe.
[00:15:32] They’re getting value out of it, yeah.
[00:15:33] Right, exactly, exactly.
[00:15:35] It makes total sense to me.
[00:15:40] Monitoring a complex digital architecture
[00:15:42] usually takes a dozen different tools.
[00:15:45] It’s painful.
[00:15:47] Troubleshooting, just troubleshooting the simplest things
[00:15:50] might mean jumping between dozens of dashboards,
[00:15:54] trying to remember that login for that one service
[00:15:58] that you hardly ever use.
[00:15:59] But when you need it, you really need it.
[00:16:02] This is the picture of what it means
[00:16:06] to monitor a complex digital architecture,
[00:16:09] or at least it was, because New Relic wants to change that.
[00:16:13] And they’ve designed everything you need in three products.
[00:16:16] The first is a telemetry data platform,
[00:16:19] which creates a fully manageable,
[00:16:20] schemaless time series database
[00:16:22] of all of your data from any source.
[00:16:25] The second is a full stack observability system
[00:16:28] for analyzing, visualizing,
[00:16:30] and troubleshooting your whole stack.
[00:16:32] And third is applied intelligence.
[00:16:34] This is where it all goes kind of to the next level.
[00:16:39] Applied intelligence seamlessly automates anomaly detection
[00:16:42] and incident intelligence correlation using AI and ML.
[00:16:46] And best of all, you can get all of this for free.
[00:16:49] There’s no host-based pricing
[00:16:51] and no constant upsell for more functionality
[00:16:54] with 100 gigabytes a month to one full access user.
[00:16:58] Go and check it out.
[00:16:59] Head over to newrelic.com.
[00:17:01] New Relic is observability made simple.
[00:17:04] Thanks again to New Relic
[00:17:05] for sponsoring today’s episode of Developer Tea.
[00:17:09] So there’s a lot for you to be proud of in your work.
[00:17:13] Obviously, people who are listening,
[00:17:15] they would like to probably emulate a lot
[00:17:18] of what you’ve done in your career.
[00:17:20] But I’m interested because everyone has areas
[00:17:24] where they don’t feel confident,
[00:17:26] they don’t feel comfortable.
[00:17:27] What is something that you are dealing
[00:17:30] with the uncomfortability of now?
[00:17:34] What are you least confident about
[00:17:36] in the work that you’re doing on a day-to-day basis?
[00:17:39] Yeah, that’s a good question.
[00:17:41] And actually, it is related to something else
[00:17:43] I just realized I wanted to mention too about this,
[00:17:46] and that is you don’t want to try and teach something
[00:17:49] that you’re not confident in
[00:17:52] or that you don’t have some experience in.
[00:17:54] Everything that I teach,
[00:17:55] I have really solid understanding and experience
[00:17:59] using these things,
[00:18:01] and I’m teaching you how I use them to great effect.
[00:18:05] And so I know sometimes people will try to chase the money
[00:18:07] and they’ll say, oh, well,
[00:18:10] GraphQL is really hot right now,
[00:18:12] so I guess I’m going to go make a GraphQL course.
[00:18:15] I have not made a GraphQL course
[00:18:16] because I haven’t actually really used it.
[00:18:18] And I’m not as cool as I think it is.
[00:18:21] I have so many other things that I’m excited about
[00:18:24] that it’s low on the list.
[00:18:25] So I just teach the things that I’m excited about,
[00:18:28] and that ends up showing in the level of quality
[00:18:32] that I create.
[00:18:32] So the things that I’m uncomfortable with
[00:18:35] or that I’m not super great at
[00:18:37] are the sorts of things that I don’t have courses
[00:18:40] or blog posts about so far.
[00:18:43] So I’m not really super comfortable with CSS.
[00:18:47] I’m pretty bad at CSS.
[00:18:51] You give me a design, I can implement it,
[00:18:53] but it will take me a long time to make that
[00:18:57] and make it work well.
[00:18:59] Another example of something that I’m,
[00:19:03] I wouldn’t say I’m ashamed,
[00:19:04] but I really want to be good at this, but I’m not,
[00:19:07] is animation.
[00:19:09] I think that would be really awesome to be good at that,
[00:19:11] but I just am so not.
[00:19:14] Another is I really want to be good
[00:19:15] at finite state machines.
[00:19:18] Xstate is a really awesome library
[00:19:20] that a bunch of smart people tell me is amazing,
[00:19:24] and I really want to spend time learning that.
[00:19:26] But I haven’t been able to find or put in the time
[00:19:30] to learn that stuff.
[00:19:31] So yeah, there’s like a silly, DevOps, I hate DevOps.
[00:19:34] I’m not at all interested in that.
[00:19:37] I barely get by making Docker containers and stuff
[00:19:40] and images and whatever.
[00:19:42] I’m not super into that either.
[00:19:44] Yeah, there’s a lot.
[00:19:47] Backend, I’m pretty passable at backend stuff,
[00:19:50] but I’m definitely focused on UI.
[00:19:53] And this is actually something that’s played out
[00:19:54] really well for me in general,
[00:19:57] is just being really focused on one area.
[00:20:01] I know that a lot of people get a lot of value
[00:20:03] out of being polyglots,
[00:20:05] but if you want to be a really great teacher,
[00:20:07] you’ll have a lot easier time doing that
[00:20:09] if you are an expert,
[00:20:11] like the person everyone thinks about
[00:20:13] when they think about a particular technology.
[00:20:16] And it’s really difficult to do that if you’re a polyglot.
[00:20:19] So I decided early on, I’m a JavaScript engineer,
[00:20:23] that’s what I focus on.
[00:20:25] And things outside of that,
[00:20:27] I’m just going to say, I’m sure that’s cool,
[00:20:30] but it’s not a cool thing I’m gonna do.
[00:20:32] Yeah, wow, that is a huge lesson in and of itself, right?
[00:20:37] You have to choose what you’re not going to do,
[00:20:40] especially if you’re going to cultivate a sense of focus.
[00:20:43] It’s very easy, it’s tempting,
[00:20:46] because there’s a lot of cool stuff out there.
[00:20:48] And it’s stuff that you probably have full mental capacity
[00:20:51] to be able to pick up on,
[00:20:53] and go and become really quite good at.
[00:20:57] But the fact that you’ve chosen this focused path
[00:21:01] intentionally, not just because you love JavaScript,
[00:21:05] it’s not like you’re religiously dedicated to JavaScript,
[00:21:09] there’s no reason to do that necessarily
[00:21:12] other than, hey, it’s an intentional decision
[00:21:15] to cut other things out, it’s an opportunity cost.
[00:21:17] Right, exactly.
[00:21:19] That’s, I think that’s a really important lesson,
[00:21:22] and even for beginners, right?
[00:21:24] One of the most important questions I’ve gotten
[00:21:26] from beginners that is reasonably hard to answer
[00:21:31] is, you know, which language should I choose?
[00:21:34] Which one should I pick up and run with?
[00:21:36] And I’ve narrowed it down, and I’ve made the answer simple,
[00:21:39] even though it goes against every fiber in my being
[00:21:42] to make this answer simple, you know?
[00:21:44] Because it’s not, it’s not simple.
[00:21:46] But I answer, basically, I have JavaScript and Python
[00:21:50] are like my two main answers for beginner developers.
[00:21:54] And it’s not because there aren’t other good options,
[00:21:58] but because the opportunity costs that you would spend
[00:22:02] trying to decide between the hundreds of languages out there
[00:22:06] and the 20 that are even marketable
[00:22:09] is already too expensive.
[00:22:12] Yes.
[00:22:13] If you’re going to go and do something in AI,
[00:22:15] machine learning, whatever,
[00:22:16] if that’s interesting to you, then pick up Python.
[00:22:19] If you want to do basically anything else,
[00:22:21] then pick up JavaScript, right?
[00:22:23] That makes it a very simple heuristic,
[00:22:26] and now you don’t really have to think about much more.
[00:22:30] What do you think about that concept
[00:22:33] of opportunity cost trade-off
[00:22:34] and trying to make those simple heuristics
[00:22:37] and decisions in your career?
[00:22:39] Huh, yeah, I think that when you’re,
[00:22:43] especially when you’re a beginner,
[00:22:44] but even as an experienced engineer,
[00:22:46] you’ve been doing this for a while,
[00:22:48] there are so many decisions that you have to make,
[00:22:51] regardless of what you end up doing.
[00:22:52] And the more time that you spend making those decisions,
[00:22:56] the less time you have to make mistakes, I guess.
[00:23:01] And by that I mean, experience comes from having experiences.
[00:23:06] And if you spend all of your time
[00:23:07] just trying to make decisions,
[00:23:09] you’ll have very shallow experiences with many things.
[00:23:13] And so you won’t be able to provide
[00:23:17] a good enough impact or amount of value
[00:23:21] to a entity, a company, or your customers, whatever,
[00:23:25] with a shallow experience in many things.
[00:23:27] Now, I mean, there are the hustlers, the indie programmers
[00:23:31] who are just going off and doing their own thing.
[00:23:33] They’re, quote unquote, full stack engineers, whatever.
[00:23:36] And they do exist.
[00:23:37] But I think that you can make the biggest impact
[00:23:40] by zeroing in on a handful of things
[00:23:44] and getting really good at those,
[00:23:46] and then providing a huge amount of value
[00:23:49] for your company or whatever it is.
[00:23:54] That’s been my experience.
[00:23:56] I can’t speak for everybody.
[00:23:57] Maybe it’s different for others.
[00:23:59] But in my experience, I decided to zero in on JavaScript,
[00:24:04] and then I decided to zero in on React,
[00:24:06] and that paid off really, really well for me.
[00:24:10] And React is twice as popular as the next closest framework.
[00:24:16] So it is not a bad bet.
[00:24:21] There are other things out there
[00:24:22] that are probably fine to bet on,
[00:24:25] but React is just an enormously good bet for your career.
[00:24:31] And that’s what I would recommend for beginners,
[00:24:33] especially who are like, I don’t really know.
[00:24:35] Do I want to go into machine learning,
[00:24:37] or do I want to go into whatever?
[00:24:38] Just pick the popular thing.
[00:24:41] It takes a certain amount of hubris for you to think
[00:24:43] that you can just spend a ton of time
[00:24:46] analyzing all these things and deciding
[00:24:48] which one is going to be the end-all,
[00:24:52] be-all, best career decision move.
[00:24:55] Just go with what’s most popular.
[00:24:58] And then maybe after you have developed
[00:25:02] some experience and stuff, maybe you will decide
[00:25:05] that what’s popular isn’t what’s best
[00:25:07] or what you want to do.
[00:25:09] But as a beginner, especially,
[00:25:12] you’re looking to get hired and make an impact on the world,
[00:25:15] and there’s a reason that the most popular thing
[00:25:17] is the most popular thing.
[00:25:18] And maybe part of it is just marketing,
[00:25:22] but it can’t all just be marketing.
[00:25:24] So yeah, there’s value in zeroing in on something,
[00:25:28] and there’s value in deciding explicitly
[00:25:33] that I’m going to zero in on the most popular thing.
[00:25:36] There are other things, I’m sure, and they’re awesome,
[00:25:38] I’m sure, but I’m going to just really focus on this
[00:25:42] because I’m tired of making decisions
[00:25:46] and not having experience.
[00:25:48] Yeah, and I do think it’s also kind of a bit of a fallacy
[00:25:51] to believe that if you choose the wrong thing,
[00:25:54] that you’re going to doom your career,
[00:25:57] it’s an irreversible decision, you can never jump tracks.
[00:26:00] And you’re a perfect example of this.
[00:26:02] You worked with Angular before you worked with React,
[00:26:04] and in fact, you learned something from React
[00:26:06] that you brought into your Angular work.
[00:26:08] So imagining that these are one-way decisions
[00:26:12] that you can’t come back from is certainly a fallacy.
[00:26:16] And it’s scary, it can be scary as a beginner developer
[00:26:19] to say, oh, I’ve gone down this wrong road,
[00:26:22] but as an experienced developer,
[00:26:24] you and I both can tell engineers, it’s not that way.
[00:26:28] You can absolutely change in the future
[00:26:31] if you find that it’s important or necessary
[00:26:33] or even just desirable,
[00:26:35] if you feel like you’re tired of this language,
[00:26:37] you don’t want to do it anymore.
[00:26:39] There’s so many lessons you can learn in any language
[00:26:41] and carry them to the other ones.
[00:26:43] Yeah, I totally agree.
[00:26:45] And like, there’s not really,
[00:26:47] unless you’re going to pick something that’s very edge,
[00:26:50] like, you know, bleeding edge.
[00:26:52] Yeah, esoteric.
[00:26:53] Yeah, yeah, like you’re not going to make a wrong choice.
[00:26:56] It’s highly unlikely unless you will know
[00:26:59] that you’re choosing the edge thing
[00:27:02] and that might be a wrong choice.
[00:27:04] There’s not any certainty there,
[00:27:06] but just go with the established stuff
[00:27:08] and maybe eventually when you get experienced enough,
[00:27:12] you can start doing the bleeding edge stuff.
[00:27:14] Maybe you’ll build the bleeding edge thing.
[00:27:16] If you’re just getting started
[00:27:18] or if you’re just tired of making choices,
[00:27:21] then just choose the most popular thing and focus on that.
[00:27:24] Yeah, and for what it’s worth,
[00:27:25] I mean, it’s kind of hard to choose bleeding edge thing
[00:27:28] as a beginner anyway,
[00:27:28] because there’s such a lack of material out there
[00:27:33] to even frame it, right?
[00:27:34] You probably won’t even get to the problem solving portion
[00:27:38] because you’re not even able to install it
[00:27:40] on your machine or something, you know what I mean?
[00:27:41] It’s like, it’s just not going to work.
[00:27:44] And those other tooling that you’ll find
[00:27:46] is much more mature as a far larger audience.
[00:27:49] There’s a lot of reasons to go with this advice,
[00:27:51] but I certainly agree with what you’re saying there, Ken.
[00:27:56] So Ken, I want to ask you about Epic React,
[00:28:00] which I purchased a couple of weeks ago myself
[00:28:03] and excited to kind of go through,
[00:28:07] but I know it’s not just the same thing
[00:28:10] as purchasing a course on Udemy.
[00:28:13] Certainly this discussion should have hopefully
[00:28:17] convinced people that that’s not the way
[00:28:19] that you would run a course like this.
[00:28:21] So I’m interested in what makes it different
[00:28:24] from a Udemy course or even from the other
[00:28:29] JavaScript courses that I might find
[00:28:31] on the internet by other people.
[00:28:34] Yeah, so I’m glad you asked.
[00:28:36] This is something that matters a great deal to me.
[00:28:38] And as I was mentioning earlier,
[00:28:41] one of the biggest mistakes people make
[00:28:42] is getting into tutorial purgatory.
[00:28:44] And you could get into that with something like Epic React
[00:28:48] where it has like, or like a Udemy course
[00:28:51] where it has a tutorial and you follow along
[00:28:53] and whatever, you don’t end up learning
[00:28:56] a whole lot with that sort of thing.
[00:28:59] Like you’ll get exposed to ideas,
[00:29:00] but you don’t actually do the learning
[00:29:02] until you apply those ideas yourself.
[00:29:04] And by that time, you’re kind of on your own.
[00:29:06] You don’t have any reference.
[00:29:08] There’s nobody to talk to.
[00:29:09] Yeah.
[00:29:10] And that can make it pretty hard, right?
[00:29:12] Yeah, precisely.
[00:29:13] And this is a big challenge for anybody
[00:29:15] making video courses, like how do I make sure
[00:29:18] that the people who are watching this
[00:29:21] and experiencing this, whatever,
[00:29:23] they actually take this with them.
[00:29:25] And so this isn’t just like reference material
[00:29:27] when they need it in the moment,
[00:29:28] but it actually sticks with them
[00:29:30] so they can apply it when the moment comes.
[00:29:34] And so I’ve done a lot of research
[00:29:36] and given a lot of workshops
[00:29:38] and developed what I think is the winning strategy
[00:29:41] for helping people nail stuff down.
[00:29:44] So the problem for my workshops has always been
[00:29:47] that it’s like a five-hour workshop
[00:29:50] with an hour’s worth of breaks.
[00:29:52] And so there’s not a ton of time in that
[00:29:56] to cover a significant amount of material
[00:30:00] while also making sure that that material is just sticking.
[00:30:03] I used to do these at eight-hour workshops,
[00:30:06] and those last three hours were never useful.
[00:30:08] People just, their brains are dead
[00:30:10] and they’re ready to move on.
[00:30:13] And so I’ve just been really interested in figuring out
[00:30:16] how do I make sure I optimize for stickiness
[00:30:19] of this information.
[00:30:20] And so there’s a book called Make It Stick
[00:30:22] that really impacted the way that I teach,
[00:30:26] and I apply several of the concepts of that research
[00:30:31] into the workshops that I give and Epic React specifically.
[00:30:36] So a couple of-
[00:30:36] Is this the Heath Brothers book, correct?
[00:30:39] I can’t remember.
[00:30:40] I actually did have an email conversation with the authors
[00:30:43] to ask them some of their opinions and thoughts
[00:30:45] on how we could apply those concepts to a workshop,
[00:30:49] but I can’t remember the author’s names.
[00:30:52] Yeah, I believe it is the Heath Brothers
[00:30:53] because I read the same book and it was blown away
[00:30:56] by the things I had wrong about learning,
[00:30:58] and it really helped me think more thoroughly about it.
[00:31:02] Yeah, it was definitely a foundational change
[00:31:04] in the way that I approach teaching.
[00:31:07] So a couple of the things that we do
[00:31:08] that make Epic React really unique
[00:31:11] is that I don’t teach you
[00:31:15] before I expect you to do exercises.
[00:31:18] So with every exercise, and there are exercises,
[00:31:20] you spend more time at the keyboard
[00:31:21] than you do just watching the screen,
[00:31:23] like a lot more time if you’re doing it right.
[00:31:26] But I will introduce a problem to you,
[00:31:30] and then I ask you to solve it.
[00:31:32] So this resembles your regular day-to-day work a lot better
[00:31:36] than just watching somebody solve it
[00:31:39] and then following, doing them.
[00:31:40] So the more traditional approach to workshop giving
[00:31:43] is I’ll go up and I will teach you about an API
[00:31:47] and I’ll maybe do a little mini exercise
[00:31:50] and you’ll just watch me do this
[00:31:52] and I’ll teach you everything that you need to know
[00:31:54] about this thing, and then I’ll give you an exercise
[00:31:56] so you can practice what I just taught you.
[00:31:58] This is the wrong way to go about it
[00:32:00] if you want things to stick.
[00:32:02] What you’re doing is basically what we do
[00:32:05] with cramming information before a college final
[00:32:08] or something where you just throw a bunch of information
[00:32:11] into your brain and then you just regurgitate it
[00:32:13] on the final and then you forget about it.
[00:32:15] This happened to me a lot in college.
[00:32:19] So I just flip it around and I say here’s the problem
[00:32:24] and then I stop and I say you go solve it,
[00:32:27] but then I don’t just throw you into the ocean
[00:32:29] and sail away.
[00:32:32] I do provide a wealth of documentation.
[00:32:37] So the expectation when you’re on the job
[00:32:39] is you face a problem and you go Google around
[00:32:41] and you just try and find something
[00:32:43] and you’ll find different blog posts
[00:32:44] that contradict each other and documentation
[00:32:46] that’s out of date or whatever.
[00:32:48] So what I provide for you is I say here’s the problem
[00:32:51] and here are the different pieces of reference material
[00:32:55] you need to solve this problem.
[00:32:57] And then also in the exercises,
[00:32:59] I give you very handholdy comments
[00:33:02] to help you be successful at working through this problem.
[00:33:07] And the effect that has is it forces you
[00:33:11] to kind of generate in your mind like okay,
[00:33:13] so based on the information that I’ve just consumed,
[00:33:16] I now expect that I should be able to do it this way
[00:33:19] and it will work.
[00:33:20] And often it doesn’t work and for some one reason
[00:33:23] or another and then you start to dig.
[00:33:26] Now that’s not a thing that happens
[00:33:28] when I just teach you how to do it
[00:33:29] and then you just basically regurgitate what I said
[00:33:32] and I did.
[00:33:34] And so that process of generation,
[00:33:36] this is one of the things that’s talked about in that book.
[00:33:39] You’re generating the answers for yourself.
[00:33:42] That is a really important process
[00:33:44] for this information sticking.
[00:33:46] If you get it wrong, you remember it better.
[00:33:48] If you get it right, you feel really good about yourself.
[00:33:50] You also remember it better.
[00:33:52] And then on top of that, as you’re going through it,
[00:33:54] because I haven’t shown you how to do it,
[00:33:56] you’re going to experience problems
[00:33:59] that you would not have seen
[00:34:01] if you just watched me do it first.
[00:34:03] And so all of these questions start to crop up
[00:34:06] in your mind about like, okay, so what if I do this?
[00:34:10] What if I do that?
[00:34:11] Or like, why do I have to do it this way?
[00:34:13] You’re going to start coming up with these questions.
[00:34:15] If you just watched me do it,
[00:34:16] then you’re just going to take all of the,
[00:34:19] those questions just won’t come up
[00:34:20] because I will do things in a certain way
[00:34:24] and you will just not realize
[00:34:26] that they could possibly be done a different way
[00:34:28] or you won’t have tried it first
[00:34:31] and so you won’t know what questions to ask.
[00:34:33] This is brand new material for you.
[00:34:35] And so you’re working through it on your own.
[00:34:37] You come up with all these questions
[00:34:38] and then I come through
[00:34:40] and I show you how I would have done it.
[00:34:42] Now you may have done it differently.
[00:34:43] It doesn’t matter.
[00:34:45] But now you have all of these questions
[00:34:47] that as I’m working through it,
[00:34:48] they’re answered just boom, boom, boom, boom.
[00:34:50] Oh, okay, now that makes sense to me now.
[00:34:54] And these questions are answered.
[00:34:55] And if there aren’t any,
[00:34:56] like if you have some questions that aren’t answered,
[00:34:58] then in a workshop setting,
[00:35:01] you can ask me those questions.
[00:35:02] In Epic React setting,
[00:35:04] we’ve got a couple other things
[00:35:05] that I’ll talk about later
[00:35:06] to help you with those types of questions.
[00:35:09] And so then the next key thing that we do
[00:35:12] after you’ve worked through these problems on your own
[00:35:16] and you’ve really got an idea
[00:35:18] of how to solve these problems
[00:35:22] with these tools that I’ve given you,
[00:35:24] then I ask you to write down the things that you learned.
[00:35:26] And this is what’s called elaboration
[00:35:29] in that Make a Stick book,
[00:35:30] where you have to elaborate in your own words
[00:35:33] the things that you learned in this process.
[00:35:35] And this will force you to think introspectively.
[00:35:38] It kind of is that teaching portion
[00:35:42] of this consume, build, teach.
[00:35:44] So this is the entire idea behind my workshops
[00:35:49] and Epic React Dev is we do the consume step
[00:35:52] where you’re reading the documentation
[00:35:54] that I’ve written for you and any blog posts
[00:35:57] and links to docs and whatever.
[00:35:59] So that’s the consuming part.
[00:36:00] Then the build is the exercise
[00:36:02] and you work through that exercise,
[00:36:03] you’re building something.
[00:36:04] And then the teach is the elaboration part
[00:36:06] where you’re basically writing a mini blog post
[00:36:09] explaining what you learned in your own words.
[00:36:12] And that is what makes Epic React different.
[00:36:14] I don’t know of anything else in the world
[00:36:16] that teaches anything like this.
[00:36:20] And based on the people that I’ve taught in workshops
[00:36:23] as well as the people who are taking Epic React,
[00:36:27] the reviews are great.
[00:36:29] People are actually learning this stuff
[00:36:31] and being able to apply it in their applications.
[00:36:36] And so I’m just really excited
[00:36:39] about the way that we approach this.
[00:36:41] I created Epic React because I have all these workshops
[00:36:44] and I host them as remote workshops.
[00:36:47] People join, I keep it down to 40 people to make it
[00:36:50] so you can actually ask your own questions and things.
[00:36:53] And then we move on.
[00:36:55] But because it’s taking five hours of my time
[00:36:58] to deliver this workshop material, it costs a lot.
[00:37:01] The tickets are $600 a piece.
[00:37:04] And so that makes it, and I’ve got eight workshops
[00:37:09] on Epic React Dev and actually one of those is four workshops.
[00:37:11] So it’s 11 workshops that you’d have to take 600 bucks
[00:37:14] a piece, that is super inaccessible for people.
[00:37:16] And so that’s why I recorded all of this stuff
[00:37:19] is to scale myself so I don’t have to charge so much.
[00:37:22] And people still get an enormous amount of value out of it.
[00:37:25] But then you lose the ability to just ask me questions
[00:37:27] after each exercise.
[00:37:29] And so what I’ve done is two things.
[00:37:32] We have the KCD Learning Clubs, which is basically,
[00:37:36] it’s like an opportunity for you to join other people
[00:37:39] who are trying to go through the same curriculum you are
[00:37:42] and you go through that curriculum together
[00:37:44] and you set up a schedule and you follow
[00:37:46] that schedule together and you have a much better
[00:37:48] learning experience, you can talk with each other,
[00:37:50] you can answer each other questions.
[00:37:53] And that’s a really important part of the whole
[00:37:54] learning process is because as you’re asking
[00:37:56] each other questions, you’re doing this elaboration
[00:37:59] or this teaching aspect of all of this.
[00:38:01] And then I also have my office hours that I mentioned earlier
[00:38:06] where twice a week I’ll give an hour of my time
[00:38:08] to answer people’s questions.
[00:38:10] And that’s what I tell people to do is just write down
[00:38:12] the questions that weren’t answered as you were going
[00:38:15] through this and then you can come and ask me
[00:38:17] during office hours.
[00:38:19] And so basically, Epic React is all of the good parts
[00:38:22] of a live workshop with all of the good parts
[00:38:25] of a self-paced course put into one.
[00:38:28] And I don’t know of anything else in the world
[00:38:29] that’s like this and it makes me really excited
[00:38:32] about the positive impact that I’m making
[00:38:35] on people’s ability to learn React
[00:38:36] and build really awesome applications.
[00:38:38] It’s exciting and it’s interesting,
[00:38:41] you mentioned that the workshop would be $600
[00:38:47] and Epic React is worth a lot of money.
[00:38:53] And by the way, just to be clear,
[00:38:56] Kent has not paid me at all for this episode.
[00:39:01] Epic React, let’s just do some math for a second.
[00:39:06] Let’s imagine that you get 1% better, 1% faster,
[00:39:12] whatever that metric is, your hours are 1% more effective.
[00:39:18] So if we’re talking about 101% of your normal output
[00:39:23] as a result of this work, then let’s imagine
[00:39:29] that you put in 40 hour weeks like most people
[00:39:32] in the United States do and you work,
[00:39:36] what is it, something like 45 weeks a year,
[00:39:39] something like that, right?
[00:39:42] So that’s 1800 hours or so per year that you’re working.
[00:39:47] And if you were to do the math on that,
[00:39:51] I’m doing it right now as a speaker,
[00:39:53] just for fun here, let’s see.
[00:39:58] I think that’s gonna be 18 hours worth of improvement
[00:40:03] in a single year, okay?
[00:40:06] So let’s imagine that you’re like most contractors
[00:40:10] are like $100 an hour.
[00:40:11] That’s 1800 bucks just in the easiest scenario
[00:40:14] in the first year of value, right?
[00:40:17] And again, I’m doing the math because I think
[00:40:20] it’s the easiest way to kind of wrap your head
[00:40:21] around how this plays out in real life in terms of value.
[00:40:26] If you’re 1% better as a result of this,
[00:40:28] that’s $1800 worth of value just like immediately, right?
[00:40:33] Would you agree with that kind of rationale?
[00:40:35] Yeah, you could think about it that way.
[00:40:37] You could also think about it in like 0% to 100%
[00:40:41] because I mean, there are other ways to learn React.
[00:40:45] Yeah, that makes sense.
[00:40:46] But if you can’t get a job,
[00:40:48] then it doesn’t matter how many hours you spend,
[00:40:51] like you’re not gonna make any money out of it.
[00:40:54] So I think the best way to think about Epic React
[00:40:58] is a lot of people try to compare it to a Udemy course
[00:41:00] and that’s when they say,
[00:41:01] oh, I can get a Udemy course for 10,
[00:41:07] perpetually, because that’s how Udemy works.
[00:41:09] That’s how they work, yes.
[00:41:10] It’s so shady.
[00:41:10] I hate it, I don’t want to get into it,
[00:41:12] but Udemy is a shady company.
[00:41:15] But anyway, and that’s not the only reason,
[00:41:18] but if you’re comparing it to a Udemy course
[00:41:22] and you’re like, well, what the heck?
[00:41:23] This doesn’t make any sense.
[00:41:24] And if that’s what I was comparing it to,
[00:41:26] then yeah, I would agree with you.
[00:41:27] But it’s not.
[00:41:28] It is nothing like a Udemy course.
[00:41:30] It’s actually much better compared to a coding school
[00:41:35] or a semester class at a university.
[00:41:39] Where it’s gonna say like an actual
[00:41:41] hours-based class at a university.
[00:41:43] Yes, exactly.
[00:41:44] It’s like a three-credit class at a university, you’re saying,
[00:41:46] where the recommended schedule
[00:41:49] for going through Epic React is actually around 14 weeks.
[00:41:53] So I just launched this a month ago today
[00:41:58] and nobody has finished it.
[00:42:01] And anybody who says that they finished it
[00:42:03] didn’t do it right because it takes too long.
[00:42:06] There’s too much material.
[00:42:07] There’s like 350 videos or something,
[00:42:10] but then you’re spending more time working on your keyboard
[00:42:14] than you are watching the video.
[00:42:16] So I even have people who’ve been using React
[00:42:19] longer than I have who aren’t finished yet
[00:42:21] and working through it at a quick pace.
[00:42:24] Just because it is so much stuff.
[00:42:27] So it’s nothing like a Udemy course,
[00:42:30] not just in the amount of content,
[00:42:32] but also in the way the content is delivered
[00:42:34] and how memorable and impactful this will be
[00:42:37] to your ability to be effective with React.
[00:42:42] So yeah, the amount of value is unquestionable.
[00:42:48] It will definitely pay back the price for it.
[00:42:51] And the fact is people were buying it
[00:42:53] at $600 a ticket per workshop
[00:42:56] and that’s what we’re charging for all of the workshops.
[00:42:59] So like I said, it’s the best parts of live workshops
[00:43:02] without any of the worst parts,
[00:43:04] best parts of self-paced stuff like courses
[00:43:07] without any of the worst parts.
[00:43:09] So it is a killer value for sure.
[00:43:11] Yeah, I mean, break even on that
[00:43:13] is like basically half a day of work.
[00:43:16] Like it’s just not, it doesn’t make any sense to,
[00:43:19] and especially if you’re working for a company
[00:43:22] where React is like in the main line of your technology
[00:43:25] and that kind of thing, it’s kind of this kind of resource.
[00:43:28] It’s certainly to this level of quality.
[00:43:30] I mean, it’s just, like you said,
[00:43:32] there’s not anything like it available.
[00:43:35] It’s like, think of it as a promotion
[00:43:38] or if you don’t have a job, think of it as a job.
[00:43:42] Like this is how you can get your React chops up to snuff
[00:43:46] so that when you’re in the interview,
[00:43:48] you’re walking circles around the interviewer.
[00:43:50] Or if you have a job, think of this as your way
[00:43:54] to break out of junior and into senior level.
[00:43:56] That’s what this can do for people.
[00:43:59] Yeah, absolutely.
[00:44:00] Yeah, so we’ll have to do an entirely other episode
[00:44:06] about how you remain so prolific in your content creation
[00:44:10] because it’s just an amazing amount of content
[00:44:12] that you’ve been able to put together,
[00:44:14] 350 videos and a podcast,
[00:44:17] and you’re continuing to write on your blog
[00:44:19] and you’re doing an interview with me.
[00:44:20] How in the world do you have the time to do this?
[00:44:24] I do have a blog post about that too.
[00:44:26] Again, thank you so much again for spending the time
[00:44:32] with me here on Developer Tea.
[00:44:35] I do have one last question for you if you’ll allow it.
[00:44:40] If you had 30 seconds of advice to provide
[00:44:42] to developers of all backgrounds, all experience levels,
[00:44:46] what would you tell them?
[00:44:48] I think that there are a couple of things.
[00:44:51] Doesn’t matter how good of a developer you are,
[00:44:52] if nobody knows that you’re that good,
[00:44:55] you won’t get the opportunities that you want,
[00:44:58] you won’t get the jobs you want,
[00:44:59] you won’t get the tasks that you want,
[00:45:00] so you need to learn to communicate your abilities.
[00:45:03] You have to be able to do that.
[00:45:05] Also, it doesn’t matter how much people know
[00:45:07] that you’re a good developer if you’re not a nice person.
[00:45:10] People won’t want to work with you,
[00:45:12] you’ll get fired, whatever.
[00:45:14] You need to be a nice person
[00:45:16] and you want people to be on your side, in your corner,
[00:45:20] supporting you in whatever you’re doing.
[00:45:21] And so you support them, they support you,
[00:45:24] you’re a nice person, you’re happier,
[00:45:26] and people know that you’re a really good developer.
[00:45:29] So communicate and be nice.
[00:45:32] That seems so simple.
[00:45:33] It seems like probably good advice for just about anybody.
[00:45:36] Yeah.
[00:45:37] That fits well.
[00:45:39] Kent, thank you again for being on the show.
[00:45:41] Where should I send people if they want to learn more
[00:45:44] about your work and about Epic React?
[00:45:47] Go to kentcdots.com and that will have links to everything.
[00:45:50] I’ve got my courses linked there
[00:45:51] and my newsletter is at the bottom.
[00:45:55] You can sign up and get an email from me every week
[00:45:57] about one of the blog posts to level up yourself
[00:46:00] in whatever I wrote about that week.
[00:46:02] So that’s, yeah, and then I’m on Twitter
[00:46:05] and I have a Discord actually that’s really awesome
[00:46:08] and all of that can be found on my website.
[00:46:11] I’m actually in that Discord,
[00:46:12] so if you’re listening to this right now and you join it,
[00:46:15] you can send me a message as well.
[00:46:17] Thank you again, Kent, for your time.
[00:46:20] Thank you, I appreciate your time, too.
[00:46:23] Thank you again to today’s wonderful guest, Kent C. Dodds,
[00:46:26] for joining me on this episode
[00:46:29] and the last episode of Developer Tea.
[00:46:30] It was a great interview.
[00:46:32] Kent is so gracious and giving with his time
[00:46:36] and a lot of energy.
[00:46:37] He really does want to teach
[00:46:40] and to make that a lifelong pursuit.
[00:46:44] And so hopefully you can become a student of his,
[00:46:47] go and check out his incredible project, epicreact.dev.
[00:46:51] It goes beyond the normal kind of online course
[00:46:56] that you might be used to.
[00:46:58] Once again, Kent didn’t pay us for any of this
[00:47:01] and certainly he has not sponsored us in the past either.
[00:47:05] So once again, just a huge thank you to Kent
[00:47:08] for spending time with me
[00:47:09] on these episodes of Developer Tea.
[00:47:11] Thank you to today’s sponsor, New Relic.
[00:47:14] New Relic is observability made simple.
[00:47:16] Go and check it out, head over to newrelic.com
[00:47:19] and you’ll get 100 gigabytes a month.
[00:47:22] It’s all free, right?
[00:47:24] New Relic is all free.
[00:47:25] There’s no host-based pricing, no constant upsell,
[00:47:27] 100 gigabytes a month to one full access user.
[00:47:30] Go and check it out, newrelic.com.
[00:47:32] Thank you so much for listening
[00:47:33] to this episode of Developer Tea.
[00:47:35] I hope you will tune in to the next episode of Developer Tea,
[00:47:38] another guest who is totally dedicated
[00:47:42] to a lifelong pursuit of learning
[00:47:44] and specifically learning in public.
[00:47:47] If you enjoyed this episode, I guarantee you,
[00:47:49] you’re gonna enjoy those next two episodes of this show.
[00:47:52] Thank you so much for listening.
[00:47:54] This episode was produced by Sarah Jackson.
[00:47:56] My name is Jonathan Cottrell and until next time,
[00:47:58] enjoy your tea.