« All Episodes

Teaching in Public w/ Kent C. Dodds (part 2)

Published 12/2/2020

Over the next couple of episodes of this show, we're talking about learning and teaching in public. Today, we sit down with Kent C. Dodds. Kent has created some of the most important teaching materials for React developers at epicreact.dev

In this part 2 with Kent, we talk about building a teaching platform and the importance of giving away most of your knowledge for free.

🌎 Kent on the Web

 

✨ Sponsor: New Relic

Thank you to  New Relic for sponsoring today's episode!

Make managing and analysis of complex digital architectures work for you. Check them out at  NewRelic.com to become a full access user with 100GB per month totally free.

 

📮 Ask a Question 

If you enjoyed this episode and would like me to discuss a question that you have on the show, drop it over at: developertea.com. 

 

🧡 Leave a Review

If you're enjoying the show and want to support the content head over to iTunes and leave a review! It helps other developers discover the show and keep us focused on what matters to you.

Transcript (Generated by OpenAI Whisper)
That's where I start when I'm thinking about adding test to a code base. It's like, what part of this code base would be really, really bad if it broke? And that's where I'm going to start. And if you've already feel really confident with your automated test suite that you're covering those use cases, then you can move down to the next year of like, this would be pretty inconvenience. I would have to get up in the middle of the night if there was a problem with this or or maybe this would be the first thing I'd have to fix in the morning or whatever. And you just, you really prioritize testing just like you do prioritizing writing any of your software. You say, I could either write this feature or I could write this test for an existing feature, which one is more important right now. Well, I mean, customers want the feature, but customers also don't want things to break. So you do a risk analysis and then you just make your, you prioritize things. I actually have a blog post about that too. So yeah. You just heard the voice of Kent Dodds. Kent C Dodds is on our show again for the second day, for the second episode in a row. Of course, this is the second part of my interview with Kent. Kent is a lifelong teacher. He built epicreact.dev. You probably know him from a hundred different places. And you've probably read one of his blog posts before because he's written a blog post about seemingly everything. I hope you enjoyed this episode. But first, if you haven't listened to the first part, you probably should go back and listen to that. You might be a little bit confused if you don't. My name is Jonathan Cutrell. You're listening to Developer Tea and my goal on this show is to help driven developers like you find clarity, perspective and purpose in their careers. And on today's episode, we are finishing up our interview with Kent C Dodds. Let's get straight into the interview with Kent. It's never easy. There's not a way to sum it up on, in your blog post, on this podcast, here's how to make all testing decisions forever. It's just not that easy. Even code, I've certainly worked in code bases that had over a hundred percent coverage. Don't ask me how it's possible. And you still have things at break, right? And when you're covering things completely, well, because coverage is not really, it's a meaningless metric if the code is wrong, or if the test is wrong for that matter. So testing is a hard problem. And perhaps one of the reasons why it's something that we can always be refining and always be getting better at. There's not really an end to that discussion. So I really appreciate you kind of investing in that topic discussion. I'm interested in, I'm going to kind of shift gears a little bit here. What is something that you can look back on having learned that shifted your way of thinking or was it kind of a moment, kind of a colossal change perspective shift for you? And what was it that caused that moment to occur for you? When I started working with React, I had a moment like that before I was working with Angular JS and templates, directives, controllers, all that. And I got really good at it. I spent plenty of time in the debugger within the Angular JS code base. I even contributed to Angular JS. So I was deep into that. I had a podcast. I was teaching about it. And Angular 2 was coming around and I was teaching about Angular 2 before it was released during that two or three years while we were waiting for that to happen. And then I tried out React and it just blew me away. I was so, I was just floored at what I could do with React and the level of simplicity. Now it wasn't easy. Simple is not easy. These are different words. Go Google it. Go Google in this context and what it actually means is that it's like the opposite of complex. Complex is where things are mingled together. This is like jQuery, spiggedy code. You change one thing over here and something totally different changes or it impacts something you weren't expecting. They're leaky abstractions. React just nailed the component model. And that made a big impact on me. Now it was another year before I switched from Angular JS to React. But from that day I started writing all my Angular like React. So this is Angular 1, Angular JS. This was before they created the Angular.component thing that you could use. But I started using directives like components because that idea of component model just really rang true for me. Can you expand just a little bit on what that means? And the component model, how did that change what you were doing with Angular? What would be an example of a change that that would have made in the way that you were writing that code? Yeah. So with Angular, the kind of de facto standard way of doing things was if you wanted to take an element that you were rendering and enhance it with capabilities, you would create a directive that enhances that thing with capabilities. You would apply that to the element you're rendering. And then if you want to add another capability that is a generic sort of thing, then you would make another directive and you'd apply it. And so this element would inherit all of these capabilities from the different directives that it was using. The component model is different. Rather than inheritance, you're talking about composition where you're taking a component that is responsible for a single thing. And you just render that one component. And if you want to enhance it, then you're going to share that logic with JavaScript. And that ends up working out really nicely. And especially now that we have hooks, that's really easy to do because you have this logic that you want to share. You make a custom hook out of it. And now you can compose those different custom hooks together to build these larger components. But the idea is that the component is entirely encapsulated. The black box to the outside world. And the nice thing about that is you can put all of the junk in and terrible code that you want to inside of this black box. And the fact that that code is terrible is not going to impact the rest of your application because it all lives within inside that black box. So I mean, we could get really technical here, but I don't know if that's what the audience here wants. But it makes a pretty significant impact on the way that you structure your applications when you have a component model like React. Yeah, that makes total sense. And composition over inheritance is certainly something that we've talked about on the show. And what's interesting is that same concept can be found in other languages, right? It's kind of a shift that you were able to apply in this particular regard, but you can imagine this in like a backend link. I said backend, JavaScript's backend now. You can imagine this in like Ruby. You know, somebody using composition rather than inheritance and it changing the way they think about code forever. Absolutely. Yeah. Composition over inheritance was the mind shift change for me in this case for sure. So, another, yeah, just another big mind shift change was more career for me. And that was when I realized how lucrative teaching can be because of the enormous impact that I can make with teaching and like getting really good at teaching and good enough that people are willing to pay you for what you're teaching them. I didn't realize that could be like something I could do full time and that it would be like a replacement for my salary. So like the first part of that was the first course I made for A-CAD. It was about authentication with AngularJS. And that first month I paid for my mortgage just with that paycheck. I don't know if that's how that works these days. I think new A-CAD instructors, I don't think make that much on their first course now. But back then, that's what happened. And it just like blew me away that I could say, oh, I guess if I keep this up, I don't need a mortgage. That's just not a thing. And then the second time that I got blown away by this was when I created testing JavaScript, which did just super, super well. And I realized I didn't need my salary anymore. And I could go full time teaching and I didn't have to do all my teaching in the evenings recording videos and stuff after the kids go to bed. And yeah, it just totally blew me away. So that was another big paradigm shift for me was realizing that I could turn this side hustle. If I hustle really hard, I can turn this side hustle into a full time thing. Yeah. I know a bunch of people who are listening to this right now are probably swapping from their podcast listener over to Chrome and Googling how to start teaching on the internet. So what advice would you have for people who just heard that and certainly are inspired by that or are interested at least in kind of walking down that path or looking at it at least? What would you tell them to look at? Well, I do have a blog post about this. I have a post called How I Teach and also another one about how I record screencast. But what I would suggest if you really want to like so there's two things like there's how do you teach and how do you get really good at teaching. And then there's how do you take your ability and actually monetize it in a way that is effective and you can actually pay your mortgage or whatever you want to do. Get the freedom that you're looking for. So getting good at teaching, you just got to do it a lot. Like there's just like software skills in general, there's no shortcut to getting good at this stuff. You just have to put in the time. And so I would force myself into situations where I had to prepare content. I'd say, okay, I'm going to do the brown bag lunch training on X thing because I want to learn that thing. I don't know it yet, but I'm going to and I will teach you what I learned. You put yourself in those uncomfortable situations and all of a sudden you get really good at preparing content. You schedule yourself to, you know, I wouldn't teach anything or volunteer to teach anything that I wasn't sure was possible. Like, I wouldn't say, I'm going to teach you how to use JavaScript to get to the moon. Like that, you know, I know that this is possible. I just don't know how to do it myself. So I'll volunteer to teach that and that will encourage me to learn it. So I proposed several talks at conferences that were precisely motivated in that way. And so yeah, you just do it a lot. And then as far as like making it something that you can actually sell and you know, make money on it, a really important part of my strategy is to produce a ridiculous amount of high quality free content. And this is, you know, you might call it content marketing or whatever you want to call it, but I have tons of blog posts. All of my material is open source. I have my podcasts. I have my YouTube channel, just a silly amount of content. Give people a reason to trust you with their money. And so then I just make premium content that I charge for and people are like, well, I mean, I've learned enough from this dude to pay them without getting anything in return. So I'm, yeah, heck yes, I'm going to do this. And so yeah, just a lot of free content to prove to people that you know what you're talking about, you know your stuff. And then also you want to make sure that you have a mechanism for communicating with that audience. And so collecting emails early, like start, start your mailing list today. It's really easy to do. I use convert kit and it's awesome. And yeah, just create value for people. Give people a reason to follow you. Give people a reason to want to know more and do it for free. And then when it's time to ask them for money, you can do that. And actually I do have a blog post called, you know, getting noticed and widening your reach or something like that where I talked about this a little bit there too. Of course you have a blog post. Yeah. Yeah, that's, that's, that's, that is all, it all makes sense. I mean, really what you're saying in large part is work hard. That's, that's, that's a, that's a big component of this, right? There's no, but also I think that, you know, one of the most critical things that people may not realize is that the credibility that you provide is such an important part. And this is true, whether you're trying to sell a product online or if you're just trying to get a job, right? And you're, you're kind of selling yourself in, in either scenario to some degree, right? And so having some way of saying, hey, look, here's my body of work, right? And whether that's valuable to you directly or valuable to you indirectly in the sense that I'm proving that I can do this thing that you're asking me to do on behalf of your company, putting that stuff out there is almost always a useful idea, right? So if you, there's probably a developer right now who's trying to decide like, should I sell this or should I give it away? You're not going to lose probably anything if you choose to give it away at least to begin with. Yes, right? Probably not going to lose anything if anything, there's a lot to gain from that. Now, if you were to do the mental calculus of, oh, if I could sell it to 100 people at a hundred dollars each, then I make X, whatever. Yeah. But how do you quantify it over time, a long period of time, people getting value out of that indefinitely as a free resource? Yeah. Absolutely. It's so easy to get trapped in the whole like, well, the market is tens of thousands or hundreds of thousands of people. If I charge them all a dollar then, yeah, but like, are they going to give you a dollar? They're not going to give you a dollar. Right. Right. What they do, it's probably the only dollar they're ever going to give you, right? Like, yes. You're not going to build, you know, the Kevin Kelly, I'm sure you've heard of the thousand true fans and you're not going to build that. But I imagine can you have people who have bought everything that you've put out and they're like ready for you to put anything out next and they're going to buy the next thing too. Yeah. I do have those people for sure and they're awesome. Love those people. And it's not because they're just like personal fans of you. I'm sure some of them maybe. Right. Exactly. It makes total sense to me. Monitoring a complex digital architecture usually takes a dozen different tools. It's painful. Troubleshooting, just troubleshooting the simplest things might mean jumping between dozens of dashboards, trying to remember that log in for that one service that you hardly ever use. But when you need it, you really need it. This is the picture of what it means to monitor a complex digital architecture or at least it was because New Relic wants to change that. And they've designed everything you need in three products. The first is a telemetry data platform, which creates a fully manageable, schemalist, time series database of all of your data from any source. The second is a full stack observability system for analyzing, visualizing, and troubleshooting your whole stack. And third is applied intelligence. This is where it all goes kind of to the next level. Applied intelligence seamlessly automates anomaly detection and incident intelligence correlation using AI and ML. And best of all, you can get all of this for free. There's no host space pricing and no constant upsell for more functionality, with 100 gigabytes a month to one full access user. Go and check it out head over to newrelic.com. New Relic is observability made simple. Thanks again to New Relic for sponsoring today's episode of Developerty. So there's a lot for you to be proud of in your work. Obviously people who are listening, they would like to probably emulate a lot of what you've done in your career. But I'm interested because everyone has areas where they don't feel confident, they don't feel comfortable. What is something that you are dealing with the uncomfortability of now? What are you least confident about in the work that you're doing on a day to day basis? Yeah, that's a good question. And actually it is related to something outside I just realized I wanted to mention to about this. That is you don't want to try and teach something that you're not confident in or that you don't have some experience in it. Everything that I teach, I have really solid understanding and experience using these things. And I'm teaching you how I use them to great effect. And so I know that sometimes people will try to chase the money and they'll say, oh, well, GraphQL is really hot right now. So I guess I'm going to go make a GraphQL course. I have not made a GraphQL course because I haven't actually really used it. And as cool as I think it is, I have so many other things that I'm excited about that it's low on the list. So I just teach the things that I'm excited about and that ends up showing in the level of quality that I create. So the things that I'm uncomfortable with or that I'm not super great at are the sorts of things that I don't have courses or blog posts so far. So I'm not really super comfortable with CSS. I'm pretty bad at CSS. You give me a design I can implement it, but it will take me a long time to make that and make it work well. Another example of something that I'm, I wouldn't say I'm ashamed, but I really want to be good at this, but I'm not. As animation, I think that would be really awesome to be good at that, but I just am so not. Another is I really want to be good at finite state machines. X state is a really awesome library that a bunch of smart people tell me it's amazing and I really want to spend time learning that, but I haven't been able to find or put in the time to learn that stuff. So yeah, there's like a silly dev ops. I hate dev ops. I'm not at all injured. I barely get by making Docker containers and stuff and images and whatever. I'm not super into that either. Yeah, there's a lot. Back end, I'm pretty passable at back end stuff, but I'm definitely focused on UI. And this is actually something that's played out really well for me in general is just being really focused on one area. I know that a lot of people get a lot of value out of being polyglots, but if you want to be a really great teacher, you'll have a lot easier time doing that if you are an expert like the person everyone thinks about when they think about a particular technology. And it's really difficult to do that if you're a polyglot. So I decided early on, I'm a JavaScript engineer. That's what I focus on. And things outside of that, I'm just going to say I'm sure that's cool, but it's not a cool thing I'm going to do. Yeah, wow, that is a huge lesson in and of itself, right? You have to choose what you're not going to do, especially if you're going to cultivate a sense of focus. It's very easy. It's tempting because there's a lot of cool stuff out there. And it's stuff that you probably have full mental capacity to be able to pick up on and go and become really quite good at. But the fact that you've chosen this focused path intentionally, not just because you love JavaScript, it's not like you're religiously dedicated to JavaScript. There's no reason to do that necessarily other than, hey, it's an intentional decision to cut other things out. It's an opportunity cost. Right, exactly. That's, I think that's a really important lesson even for beginners, right? One of the most important questions I've gotten from beginners that is reasonably hard to answer is which language should I choose, which one should I pick up and run with? And I've narrowed it down and I've made the answer simple even though it goes against every fiber in my being to make this simple, because it's not. It's not simple. But I answer, basically, I have JavaScript and Python are like my two main answers for beginner developers. It's not because there aren't other good options, but because the opportunity cost that you would spend trying to decide between the hundreds of languages out there and the 20 that are even marketable is already too expensive. Yes. If you're going to go and do something in AI, machine learning, whatever, if that's interesting to you, then pick up Python. If you want to do basically anything else, then pick up JavaScript, right? That makes it a very simple heuristic and now it's, you don't really have to think about much more. But what do you think about that concept of opportunity cost trade off and trying to make those simple heuristics and decisions in your career? Yeah. I think that when you're, especially when you're a beginner, but even as an experienced engineer, you've been doing this for a while, there are so many decisions that you have to make, regardless of what you end up doing. And the more time that you spend making those decisions, the less time you have to make mistakes, I guess. And by that, I mean experience comes from having experiences. And if you spend all of your time just like trying to make decisions, you'll have very shallow experiences with many things. And so you won't be able to provide a good enough impact or amount of value to a entity or company or your customers, whatever, with a shallow experience in many things. Now I mean, there are the hustlers, the indie programmers who are just going off and doing their own thing, their quote unquote, full stack engineers, whatever. And they do exist. But I think that you can make the biggest impact by zeroing in on a handful of things and getting really good at those and then providing a huge amount of value for your company or whatever it is. That's been my experience. I can't speak for everybody, maybe it's different for others. But in my experience, I decided to zero in on JavaScript and then I decided to zero in on React. And that paid off really, really well for me. And React is twice as popular as the next closest framework. So it is not a bad bet. There are other things out there that are probably fine to bet on. But React is just an enormously good bet for your career. And that's what I would recommend for beginners, especially who are like, I don't really know. Do I want to go into machine learning or do I want to go into whatever? Just pick the popular thing. It takes a certain amount of hubris for you to think that you can just spend a ton of time analyzing all these things and deciding which one is going to be the end all be all best career decision move. Just go with what's most popular. And then maybe after you have developed some experience and stuff, maybe you will decide that what's popular isn't what's best or what you want to do. But as a beginner, especially you're looking to get hired and make an impact on the world and there's a reason that the most popular thing is the most popular thing. And maybe part of it is just marketing, but it can't all just be marketing. So yeah, there's value in zeroing in on something and there's value in deciding explicitly that I'm going to zero in on the most popular thing. There are other things I'm sure and they're awesome. I'm sure. But I'm going to just really focus on this. Because I'm tired of making decisions and not having experience. Yeah. And I do think it's also kind of a bit of a fallacy to believe that if you choose the wrong thing that it's, you know, you're going to do your career. It's an irreversible decision. You can never jump tracks. And you're a perfect example is you worked with Angular before you worked with React. And in fact, you learned something from React that you brought into your Angular work. So imagining that these are one way decisions that you can't come back from is certainly a fallacy. Yeah. And it's scary. It can be scary as a beginner developer to say, oh, I've gone down this wrong road. But as an experienced developer, you and I both can tell engineers, it's not that way. You can absolutely change in the future if you find that it's important or necessary or even just desirable. If you feel like you're tired of this language, you don't want to do it anymore. There's so many lessons you can learn in any language and carry them to the other ones. Yeah. I totally agree. And like, there's not really, unless you're going to pick something that's very edge, like, you're bleeding at ecotereic. Yeah. Yeah. Like, you're not going to make a wrong choice. It's highly unlikely. Unless you will know that you're choosing the edge thing. And that might be a wrong choice. There's not any certainty there. But just go with the established stuff. And maybe eventually, when you get experienced enough, you can start doing the bleeding edge stuff. Maybe you'll build the bleeding edge thing. You're just getting started. Or if you're just tired of making choices, then just choose the most popular thing and focus on that. Yeah. And for what it's worth, I mean, it's kind of hard to choose bleeding edge thing as a beginner anyway, because there's such a lack of material out there to even frame it. And you probably won't even get to the problem solving portion because you're not even able to install it on your machine or something. It's just not going to work. And those other tooling that you'll find is much more mature as a far larger audience. There's a lot of reasons to go with this advice. But I certainly agree with what you're saying that can't. So Ken, I want to ask you about Epic React, which I purchased a couple of weeks ago myself. And I'm excited to kind of go through. But I know it's not just the same thing as purchasing a course on you to me. You certainly, this discussion should have hopefully convinced people that that's not the way that you would run. Of course, like this. So I'm interested in what makes it different from a you to me course, or even from the other JavaScript courses that I might find in the internet by other people. Yeah, so I'm glad you asked. This is something that matters a great deal to me. As I was mentioning earlier, one of the biggest mistakes people make is getting into tutorial percotory. And you could get into that with something like Epic React, where it has like, or like a you to me course, where it has the tutorial and you follow along and whatever. You don't end up learning a whole lot with that sort of thing. You'll get exposed to ideas, but you don't actually do the learning until you apply those ideas yourself. And by that time, you're kind of on your own. You don't have any reference. There's nobody to talk to you. Yeah. And that can make it pretty hard, right? Yeah, precisely. And this is a big challenge for anybody making video courses. Like how do I make sure that the people who are watching this and experiencing this, whatever, they actually take this with them. And so this isn't just like reference material when they need it in the moment, but it actually sticks with them so they can apply it when the moment comes. And so I've done a lot of research and given a lot of workshops and developed what I think is the winning strategy for helping people nail stuff down. So the problem for my workshops has always been that it's like a five hour workshop with an hour's worth of breaks. And so there's not a ton of time in that to cover a significant amount of material while also making sure that that material is just sticking. I used to do these at eight hour workshops and those last three hours were never useful. People just, their brains are dead and they're ready to move on. And so I've just been really interested in figuring out how do I make sure I optimize for stickiness of this information. And so there's a book called Make It Stick that really impacted the way that I teach. And I apply several of the concepts of that research into the workshops that I give and Epic React specifically. So it's just the Heath Brothers book, correct? I can't remember. I actually did have an email conversation with the authors to ask them, you know, some of their opinions and thoughts on how we could apply those concepts to a workshop. But I can't remember the author's names. Yeah, I believe it is the Heath Brothers because I read the same book and it has blown away by the things I had wrong about learning and it really helped me think more thoroughly about it. Yeah, it was definitely a foundational change in the way that I approach teaching. So a couple of the things that we do that are make Epic React really unique is that I don't teach you before I expect you to do exercises. So with every exercise and there are exercises, you spend more time at the keyboard than you do just watching the screen like a lot more time if you're doing it right. But I will introduce a problem to you and then I ask you to solve it. So this is resembles like your regular day to day work a lot better than just watching somebody solve it and then following, you know, doing them. So like the more traditional approach to workshop giving is I'll go up and I will teach you about an API and I'll maybe do a little mini exercise and you'll just watch me do this and I'll teach you everything that you need to know about this thing and then I'll give you an exercise so you can practice what I just taught you. This is the wrong way to go about it if you want things to stick. What you're doing is basically what we do with like cramming information before a college final or something where you just like throw a bunch of information into your brain and then you just regurgitate it on the final and then you forget about it. It's happened to me a lot in college. So though I just flip it around and I say here's the problem and then I stop and I say you go solve it. But then I don't just like throw you into the ocean and dry like you know sail away. I do provide a wealth of documentation. So like the expectation when you're on the job is you face a problem and you go Google around and you just try and find something and you'll find different blog posts that contradict each other and documentation that's out of date or whatever. So what I provide for you is I say here's the problem and here are the different pieces of reference material you need to solve this problem. And then also in the exercises I give you very handholdy comments to help you be successful at working through this problem. And the effect that has is it forces you to kind of generate in your mind like okay so based on the information that I've just consumed I now expect that I should be able to do it this way and it will work. And often it doesn't work and for some one reason or another and then you start to dig. Now that's not a thing that happens when I just teach you how to do it and then you just basically regurgitate what I said and I did. And so that process of generation this is one of the things that's talked about in that book. And the answers for yourself that is a really important process for this information sticking. If you get it wrong you remember it better if you get it right you feel really good about yourself you also remember it better. And then on top of that as you're going through it because I haven't shown you how to do it you're going to experience problems that you would not have seen if you just want me to do it first. And so all of these questions start to crop up in your mind about like okay so what about what if I do this what if I do that or like why do I have to do it this way you're going to start coming up with these questions. If you just watched me do it then you're just going to take all of the like those questions just won't come up because I will do things in a certain way and you will just not realize that they could possibly be done a different way or you won't have tried it first and so you won't know what questions to ask. This is brand new material for you. And so you're working through it on your own. You come up with all these questions and then I come through and I show you how I would have done it. Now you may have done it differently it doesn't matter but now you have all of these questions that like as I'm working through it their answer just boom boom boom boom. Oh okay now I that makes sense to me now and these questions are answered and if there aren't any like if you have some questions that aren't answered then in a workshop setting you can ask me those questions. In epic react setting we've got a couple other things that I'll talk about later to help you with those types of questions. And so then the next key thing that we do after you've worked through these problems on your own and you've really got an idea of what how to solve these problems with these tools that I've given you then I ask you to write down the things that you learned and this is what's called elaboration in that make a stick book where you have to elaborate in your own words the things that you learned in this process and this will force you to think introspectively. It kind of is that teaching portion of this consume build teach so this is this is the entire idea behind my workshops and epic reactive is I we do that consume step where you're reading the documentation that I've written for you and any blog posts and links to docs and whatever. So that's the consuming part then the build is the exercising you work through that exercise you're building something and then the teach is the elaboration part where you're basically writing a mini blog post explaining what you learned in your own words and that is what makes epic react different I don't know of anything else in the world that that teaches anything like this and based on the people that I've taught in workshops as well as the people who are taking epic react the reviews are great. People are actually learning this stuff and being able to apply it in their applications and so I'm just really excited about the way that we approach this I created epic react because I have all these workshops and I host them as remote workshops people join there I keep it down to 40 people to make it so you can actually ask your own questions and things and then and then we move on but because it's taking five hours of my time to deliver this workshop material it costs a lot the tickets are $600 a piece and so that makes it you know and I've got eight workshops on epic react and actually one of those is four workshops so it's 11 workshops that you'd have to take 600 bucks a piece that is super inaccessible for people and so that's why I recorded all of this stuff is to scale myself so I don't have to charge so much and people still get an enormous amount of value out of it but then you lose the ability to just ask me questions after each exercise and so what I what I've done is two things we have the KCD learning clubs which is basically it's like an opportunity for you to to join other people who are trying to go through the same curriculum you are and you go through that curriculum together and you set up a schedule and you follow that schedule together and you you have a much better learning experience you can talk with each other answer each other questions and that's a really important part of the whole learning process is because as you're asking each other questions you're doing this elaboration or this teaching aspect evolved this and then on I also have my office hours that I mentioned earlier where twice a week I'll give an hour of my time to answer people's questions and that's what I tell people to do is just write down the questions that you that weren't answered as you were going through this and then you can come and ask me during office hours and so I basically epic react is all of the good parts of a live workshop with all of the good parts of a self-paced course put into one and I don't know of anything else in the world that's like this and it makes me really excited about the positive impact that I'm making on people's ability to learn react and build really awesome applications. It's exciting and you know it's interesting you mentioned that the workshop would be $600 and epic react is worth a lot of money and by the way just to be clear Kent has not paid me at all for this for those episodes epic react if it let's just do some math all right for a second let's imagine that you get 1% better 1% faster whatever that metric is your hours are 1% more effective right so if we're talking about 101% of your normal output as a result of this of this work then let's imagine that you put in 40 hour weeks like most people in the United States do and you work what is it something like 40 weeks it 45 weeks a year something like that right so that's 1,800 hours or so per year that you're working and if you were to do the math on that I'm doing it right now and so speak though I just just for fun here let's see I think that's going to be 18 hours worth of of of improvement in a in a single year okay so let's imagine that you're like most contractors or something like a hundred dollars an hour that's 1,800 bucks just in the easiest scenario in the first year of value right like in and again I'm doing the math because I think it's it's the easiest way to kind of wrap your head around how this you know how this plays out in real life in terms of value if you're 1% better as result of this it's $1800 worth of value just like immediately right would you agree with that that kind of rationale yeah you know like you you could think about it that way you could also think about it in like 0% to 100% because it's I mean there are there are other ways to look react that makes sense but if you can't get a job then you're like it doesn't matter how many hours you spend like you're not gonna yeah yeah so it really I think the best way to think about Epic React is a lot of people try to compare it to a Udemy course and that's when they say oh like I can get a Udemy course for $400 on sale for $10 perpetually because that's how Udemy that's how they work it's so shady I hate it I don't want to get into it but Udemy is a shady company but anyway and that's not the only reason but like you compare if you're comparing it to a Udemy course and you're like well what the heck like this doesn't make any sense and if that's what I was comparing it to then yeah I would agree with you but it's not it is nothing like Udemy course it's actually much better compared to a coding school or a semester class at a university where it's gonna say like an actual you know hours-based class at a university yes exactly it's like a three-credit class at a university you're saying where like the the recommended schedule for going through Epic React is actually around 14 weeks so there's we I just launched this a month ago today and nobody has finished it and I anybody who says that they finished it didn't do it right because it takes too long there's too much material there's like 350 videos or something but then you're spending more time working on your keyboard than you are watching the video so like I even have people who've been using React longer than I have who aren't finished yet and working through it at a a quick pace just because it is it is so much stuff so it's nothing like Udemy course just not just in the amount of content but also in the way the content is delivered and how memorable this will and impactful this will be to your ability to be effective with React so yeah the like the the amount of value is unquestionable it will definitely pay back the the price for it and and the fact is like people were buying it at $600 a ticket per workshop and that's what we're charging for all of the workshops so yeah like I said it's it's the best parts of live workshops without any of the worst parts best parts of self-paced stuff like courses without any of the worst parts so it is a killer value for sure yeah I mean break even on that is like not it is basically half a day of work you know like it's just not it doesn't make any sense to and especially if you're working if you're working for a company where React is like in the main line of your technology and that kind of thing it's it's kind of this this kind of resource and it's certainly to this level of quality I mean is is just like you said there's not anything like it available and it's like think of it as a promotion or if if you don't have a job think of it as a job like this is how you can get your your React chops up to snuff so that when you're in the interview you're walking circles around the interviewer or you know if you have a job think of this is your your way to break out of junior and into senior level that that's what this people yeah absolutely yeah so we'll have to do an entire entirely other episode about how you remain so prolific in your content creation because it's just an amazing amount of content that you've been able to put together 350 videos and a podcast and you're continuing to write on your blog and you're doing an interview with me how in the world you have the time to do this I post about that too again thank you so much again for spending the time with me here on Developer TeaI do have one last question for you if you'll allow it yeah if you had 30 seconds of advice to provide to developers of all backgrounds all experience levels what would you tell them I think that there are a couple of things doesn't matter how good of a developer you are if nobody knows that you're that good you won't get the job the opportunities that you want you won't get the jobs you want you won't get the tasks that you want so you need to learn to communicate your abilities you have to be able to do that also it doesn't matter how much people know that you're a good developer if you're not a nice person people won't want to work with you you'll you'll get fired whatever you need to be a nice person and you want people to be on your side in your corner supporting you and whatever you're doing and so you support them they support you you're a nice person you're happier and people know that you're a really good developer so communicate and be nice that seems so simple it seems like probably good advice for just about anybody and say that fits well Kent thank you again for being on the show where should I send people if they want to learn more about your work and about epic react go to Kentseedons.com and that will have links to everything I've got my courses linked there and my newsletter is at the bottom you can sign up and and get an email from me every week about one of the blog posts to level up yourself in whatever I wrote about that week so that's yeah and then I'm on Twitter and I have a discord actually that's really awesome and all of that can be found on my website I'm actually in that discord so if you if you're listening to this right now and you join it you send me a message as well thank you again Kent for your time thank you I appreciate your time too thank you again to today's wonderful guest Kentseedons for joining me on this episode and the last episode I've developed he was a great interview Kent is so gracious and giving with his time and a lot of energy he really does want to teach and and to make that a lifelong pursuit so hopefully you can become a student of his go and check out his incredible project epicreacts.dev this is it goes beyond the normal kind of online course that you might be used to once again Kent didn't pay us for any of this and certainly he has not sponsored us in the past either so once again just a huge thank you to Kent for spending time with me on these episodes of Developer Tea thank you to today's sponsor new relic new relic is observability made simple go and check it out head over to new relic dot com and you'll get a hundred gigabytes a month you it's all free right new relic is all free there's no host base pricing no constant upsell a hundred gigabytes a month to one full access user go and check it out new relic dot com thank you so much for listening to this episode of Developer Tea I hope you will tune into the next episode of Developer Tea another guest who is totally dedicated to a lifelong pursuit of learning and specifically learning in public if you enjoyed this episode I guarantee you you're going to enjoy those next two episodes of this show thank you so much for listening this episode is produced by Sarah Jackson my name is Jonathan Cutrell and until next time enjoy your tea