Develop Yourself

#286 - How to Know When You're Ready for ReactJS

Brian Jenney

You’ll learn the six core JS skills to master before frameworks, why TC39 keeps changing the language, and how to test your skills with a challenge you can access below.

👉 Try out the JS Form Challenge. 👈

We also cover:

  • Why hiring trends still test JavaScript, even when jobs say React
  • How to think like a developer: requests, responses, and UI updates
  • The fastest way to level up without AI shortcuts
  • A way to test your JS skills

Send us a text

Shameless Plugs

Free 5 day email course to go from HTML to AI

Got a question you want answered on the pod? Drop it here

Apply for 1 of 12 spots at Parsity - Learn to build complex software, work with LLMs and launch your career.

AI Bootcamp (NEW) - for software developers who want to be the expert on their team when it comes to integrating AI into web applications.

SPEAKER_00:

Welcome to the Develop Yourself podcast, where we teach you everything you need to land your first job as a software developer by learning to develop yourself, your skills, your network, and more. I'm Brian, your host. Most people who jump into React aren't really ready for it. They think React's going to teach them how to code when in reality, React just exposes what they don't know about JavaScript. I've interviewed developers over the years who could talk about components, props, and hooks, but completely froze up when I asked them to update a simple JavaScript object. So let's figure out exactly when you're ready to move from JavaScript into React and how to test yourself before wasting another month in tutorial purgatory. Here's the paradox that I see confuses a lot of people who are learning to code is that companies don't actually hire for the language anymore. This used to be more of the case. They now mostly hire for the layer above it. They're looking for React developers, Next.js developers, Angular developers, Node developers. This is where the jobs are. But here's the catch. You can't really be valuable at this layer until you understand the language just underneath it. Knowing React doesn't mean you know JavaScript. I've met many React developers who didn't know JavaScript. In fact, I was an AngularJS developer. Please don't judge me too harshly, who really didn't know JavaScript. And I got called out for it at a really small startup. Thank God for the guy that called me out because it really forced me to go back and get these fundamentals down and led me on a crusade to hopefully encourage other people to do the same thing. So if you only know React, it means you've basically learned to use a tool built on top of JavaScript, and that distinction really matters. If you don't have that foundation, it's easy to make small mistakes that have really massive consequences. Recently, Cloudflare had a global outage this year, and apparently this came down to somebody using a use effect loop that ran infinitely. It's a simple side effect in React, but it kept firing off without stop, right? It wasn't React's fault. I mean, you could blame React. It was really just a developer misunderstanding of how JavaScript handles state and side effects at a fundamental level. At least that's my interpretation of it. I haven't looked that deep into this story. But this is one of those common issues you'll see. In fact, a woman that I know just did a tech talk on this about use effect costing the company tons of money because it went into one of these infinite loops. And this is part of the reason that many companies still test JavaScript basics even when hiring for React roles. Because when the framework either changes, evolves, or just goes away, JavaScript doesn't. Now, there's a very popular book that I suggest you all read by Kyle Simpson, who was a guest on this show in the past. It's called You Don't Know JavaScript. It's a series of books, actually. And you can read the first three in the series probably over the course of a couple weeks, and you're gonna learn way more JavaScript than 99% of developers out there, maybe 100% of newer developers out there. Now, the real reason you'll never know JavaScript, even after studying it for years, I've been writing JavaScript for 11 plus years now. I'm still learning new things, and I'm always going to be learning new things. I think this is cool. I think this is fun. Maybe if you don't like writing code, you won't enjoy this, but you're never going to stop learning JavaScript. The reason is that there's a not so secret committee, the TC39 committee. This is a group, a shadowy group, not so shadowy group, full of nerds. They basically manage JavaScript's evolution. They introduce new features and syntax, and they're the reason why we've gone from var to let and const, from callback hell to async await, from manual loops to map filter reduce, from nested conditions to optional chaining. They come up with all sorts of really cool stuff and things that people hate, including Kyle Simpson. But hey, they are the ones responsible for the evolution of JavaScript and standardizing the syntax and making sure that what we do and write is going to be browser compatible and they have stages of these proposals. And every year or so we'll get some new cool features, or what I think are cool new features. But what I'm saying is that the language just keeps growing. And I think this is why so many people get stuck, or they think that they have to master everything before moving on. But here's the thing you're never gonna finish learning JavaScript. Your goal isn't to know it all, it's to know enough for React or Angular or Node or whatever view remix to make sense. Here's the real problem with skipping over JavaScript and going straight to React. A few years ago, I was interviewing this dude for a mock interview when I was preparing for interviews, right? I was interviewing him, he was interviewing me. The challenge was fairly simple. It was to do some sort of algorithm that essentially updated an object and it was using plain JavaScript, as all the challenges on this particular site are. As we were talking about how to approach the problem, he was writing code and he did something kind of odd. He used use state. Now, use state is a React method, it's not a JavaScript one. And at this moment, I was like, does he realize you can't do this in plain JavaScript? And so I asked him. And this mock interview ended up being a lesson on how to access properties in an object in JavaScript. And it was a bit of a light bulb moment for me because I thought, how many other developers are making this exact same mistake? The guy obviously knew enough about React in order to use this particular API, but he didn't realize it just wasn't JavaScript, like that isn't natively or out of the box available within JavaScript. And then I worked at a company actually where we had some pretty solid developers, but many of them were leaving. There were some big layoffs coming around. This is pre-layoff era, right? This is not based on all the AI junk that is going on now. This was pre-all that, but they were going out to interview, and many of them realized they couldn't interview with JavaScript. So I made all sorts of material, not only to help them, but to help people that were in my position back then learn JavaScript. I've since ended that program, but it was really cool. I taught a lot of people, got a lot of people into better positions, and helped a lot of people pass interviews, not just at the junior level, but at the mid-level and the senior level as well for JavaScript positions. But anyway, I hope I've sufficiently scared you into learning enough JavaScript. But what is the minimum effective dose of JavaScript that you really need to know before you go and pick something off the shelf like React or Next.js or View if you want to be cool and different or remix or whatever. Just learn React, by the way. So here's the thing: you don't need to master every concept under the sun. You need to know the core pillars of the language. And if I have to pick like six things that you should probably know how to do, it would be this working with objects and arrays, being able to iterate over data, like being able to do a for loop or a for of loop. How can you loop over an array? Basically, can you do that? Number three, fetch data from an API and handle the response, whether it's an error or a successful response. Four, manipulate the DOM dynamically, basically make stuff move around on the screen, handle button clicks and stuff like that. And lastly, knowing how to debug and use your browser tools like console and the network tab to understand how to debug and walk through the logic that you're making that is likely breaking. If you can do these six things, I think that React is gonna feel a lot more intuitive. And if you can't do these things, I feel like React's gonna be like a lot of memorization and basically just going off of vibes and trying to memorize your way through learning a framework that you really don't understand. So when I was coaching developers and helping them prepare for interviews, I had a litmus test. I had a very simple test that I would get every developer, whether they were super junior and just graduated at boot camp, or they were super senior and claimed that they had been writing code for longer than I had. Either way, I just wanted to see where we were. This is not to judge them, and I'm gonna make this available to you as well. It's in the show notes. Here is the litmus test, the definitive pre-React challenge. I feel like you should be able to complete. It's pretty simple. It's building a form using HTML, CSS, and JavaScript. This form should do a few things: capture the user input, store that input, maybe in local storage, submit this input to an API that you do not control, like a third-party API that is deployed somewhere in the cloud. There are free ones out there, and you'll see the examples in the worksheet that's in the show notes. It should be able to then handle the success or error state that comes back from that API response. And lastly, it should dynamically display the results from that API response on the page. Input, submit the stuff, store it in local storage or on a server if you want to be fancy, and then display the results on the page and maybe make those results vanish after you know one to five seconds or something like that. No frameworks, no shortcuts, just plain old JavaScript, plain HTML, plain CSS. Does it need to look great? Absolutely not. Should you be able to do this before you move on to React? I hope so at a very minimum that you know how to do this. So why a form? I love using forms because every major app that you use essentially is a form. Twitter, Instagram, Amazon, ChatGPT. It's basically a form, right? If you can build a forum from scratch, then React shouldn't really confuse you as much. It should just sort of click. And I'm making some assumptions that if you can actually build this without relying too much on AI, in fact, relying zero on AI, but you can look up stuff, obviously. I don't expect people to just memorize every piece of syntax in the JavaScript ecosystem, but I'm making some assumptions that you know enough to even hear what I'm asking you to build and thinking, okay, I kind of have a way I could do that. Now, if you have zero way that you know how to approach that, I really think you should consider joining a program like dev30.xyz or even code academy and do some JavaScript on there so you can learn the basic, basic, basics. But back to this idea of a form, everything being a form, look at the next website you go to and look at how you interact with it. You type something in an input and then you submit that. And then something happens with that input. You are submitting a form essentially to some sort of third-party API or some API that is owned by the people on that website. And then it will take that data, it will then return your response, and then you will see the screen change based on that response. Honestly, think about literally every website you've been to. That is the recipe. So if you complete this challenge, congratulations. You're ready. React should make way more sense, and you'll have at least a foundation so you can start thinking in components and state and not just memorizing syntax. Now, if you struggle with this challenge, don't think of this as oh no, I'm a failure. This is just feedback. This is just data. It just means your JavaScript foundation may not be strong enough yet. And even if you do pass the challenge, there's still a very high chance that your JavaScript foundation still isn't strong enough yet. You don't need to wait until you learn all of JavaScript before you go into React. I think learning this minimum effective dose and using this challenge as a way to test that you know this minimum effective dose is a really good way to then transition into a framework like React or Viewer Next or whatever, and then think, okay, now I at least have some sort of bar that I've set for myself. And you're gonna keep learning JavaScript. Read those books from Kyle Simpson, keep building little janky apps in JavaScript, keep doing things that make you feel a little uncomfortable and stretch your knowledge and see, huh, could I make this in JavaScript? How does this work just beneath the hood? How does Ustate work? How does React work at a fundamental level or at a very high level? You can just read this stuff. There's tons of documentation. You don't need to have Chat Gibity tell you every freaking thing about every coding problem you ever wanted to know. Look at the people that have written books about this stuff. Look at Stack Overflow posts, look at the documentation written by the people that actually wrote these things, and you're gonna learn a hell of a lot more than your average web developer nowadays who's just basically blindly copying stuff they find on Chat GPT. So the bottom line is that React doesn't make you a better developer, it reveals how good of a developer you probably already are. So you don't need to wait to finish every JavaScript project and don't rush because you think you're missing out on something like that. Remember, this is a career that spans years, decades, unless you're like 60 or something like that. You probably only have maybe five years left in your career, maybe 10 at the rate things are going. But if you're 30 or 40 and you're thinking you gotta rush to get this done, just imagine this. You're gonna spend at least the next quarter century writing code potentially for a living. Why skip out on the fundamentals right now? Learn enough JavaScript to make React make sense and then move on with purpose. Hope you enjoy that challenge. It's in the show notes. It has the solution, and please don't peek at that freaking solution. And don't use AI. Now, if you do this challenge and you think, oh man, I'm killing it, then I encourage you to post your solution on Code Pin, share it with me, put it on LinkedIn and tag me or something like that. And if you really can't figure it out, just go join dev30.xyz. Quick plug for that little program. We have super high-rated program, kind of crazy how cheap it is. It's 50 bucks and it's 30 days of working in a group of people. It is not a course because honestly, I don't really believe in courses. People don't finish courses. People do tend to finish things where they have some pressure, there's a community, and there's more than just learning to code. So if you're interested in sprinting with us through 30 days of JavaScript and posting online, uncomfortable stuff that's going to make you a better developer and help you get hired much faster, then join us. Either way, hope it's helpful. See you around. That'll do it for today's episode of the Develop Yourself podcast. If you're serious about switching careers and becoming a software developer and building complex software and want to work directly with me and my team, go to parsity.io. And if you want more information, feel free to schedule a chat by just clicking the link in the show notes.

Podcasts we love

Check out these other fine podcasts recommended by us, not an algorithm.