Develop Yourself

#259 - The Minimum Effective Dose of JavaScript You Need to Learn

Brian Jenney

Learning JS is tough.

And you're probably making some of the same mistakes I did in the past.

In this episode you'll get a path and a small project to make to teach you the minimum effective dose of JavaScript necessary to move forward in your learning journey.

Here's the challenge I mentioned which includes some short videos: Your Form Challenge

Send us a text

Shameless Plugs

🧑‍💻 Join Parsity - For career changers who want to pivot into software.

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

Zubin's LinkedIn (ex-lawyer, former Googler, Brian-look-a-like)

Speaker 1:

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. Yes, javascript is very difficult to learn, especially if you're learning it wrong, which I know many of you are, and you're probably doing a lot of the same things that I was doing when I was learning JavaScript. I was reading books. In fact, I read this really massive book one summer at the advice of a friend of mine who was a developer. This is back really before the proliferation of all these courses online, where you could just go online and learn whatever you want. So I bought a book. That was like the normal thing to do. Right, you went to school, you got a book from a teacher and then you read the book and then at the end you quote-unquote learned something Basically. You could regurgitate the information if you memorized it well enough. Programming is wildly different. It's like learning how to cut hair or learning how to ride a bike or getting in shape. You can't do it by reading about it. So what I want to go over is some practical advice that will hopefully help you to learn JavaScript because, yes, you still need to learn JavaScript, even in 2025, even with AI, even with Python, even with all the naysayers out there that say don't learn JavaScript, it's a terrible language. Yes, this is true. You know what's also true there are two types of languages the one everybody hates and the ones that nobody talks about, right? So, yes, javascript is incredibly popular and therefore it is incredibly hated on. You cannot avoid it. It's going to set you up very nicely for having a foundation in programming fundamentals. It's easy quote unquote to get started with, because you can write JavaScript code directly into your browser. Right, with the dev tools. And if you don't know how to access your dev tools, hey, there's homework assignment number one Learn how to access your developer tools. Open up the console and type a simple JavaScript statement in there, or something like that. But anyway, we're not going to get super nitty gritty details here.

Speaker 1:

What I wanna go over with you is a quick primer on JavaScript, some concepts that you'll need to learn. Really, the minimum effective dose. This is a phrase which we often use in Parsity, where we say you know, there's a ton of information that you could learn, right, if you wanna learn programming or JavaScript. This is like trying to consume a sea of information through a straw. There's no way, right, there's no way. If you want to become a car mechanic, do you need to know how every single nut and bolt in an engine works? Probably not. Do you need to understand some pretty basic information about an engine and beyond the basic to be a good mechanic? Almost certainly I'm not a mechanic, I'm not even really that technical, but anyway, I'm just making a guess here, right? Same thing that can be applied to JavaScript or really anything that you're learning. Javascript is as wide as it is deep. There's a lot of information to learn. I've been learning it for going on 12 years now and I'll continue to learn JavaScript and I'll forget pieces of it and then I'll relearn them and I'll reread things. So we're going to go over all the things that I think you really have to know and a small project that's going to test your knowledge, and this should set you up nicely to give you that green or red light whether you are prepared to move on to something like React. This is basically my opinionated opinion, and you will see that small challenge in the show notes. I've given this challenge to everybody, from super senior developers, to people that were fresh out of bootcamps, to people that had just learned a little bit of coding on their own, just to assess where they truly were with their education and their grasp of the coding language of JavaScript.

Speaker 1:

But anyway, why should you still be learning JavaScript? It's everywhere. You cannot avoid it. You can't avoid JavaScript. It is the language of the web. It works in the browser. There is no other language that works in the browser Python, c, sharp, rust, java, scala, whatever. Insert language here. No, they cannot work in the browser.

Speaker 1:

If you're going to be doing things on the browser, making applications for the web, you have to know JavaScript. And I'm sure there's somebody out there saying, well, you know, technically you can run Python and this. Well, yes, technically you can do all sorts of things. We're not talking about that. We're talking about what 99.999% of the web is using, and that is JavaScript, my friend. So if you want to do anything near or related to the web, use JavaScript.

Speaker 1:

Now, javascript is not a great language. It's not perfect. There are no perfect languages out there besides maybe Rust, according to all the Rust stations out there but it is a strong language. You can use it. On the back end, you can use it on the front end. That means you can do server-side related things like dealing with file systems or dealing with large amounts of data. I'm currently using TypeScript and Python for my day job to create data pipelines and work with our data science teams, and I've created backends with TypeScript and JavaScript, and I've made too many websites to count using JavaScript, html, css, react, all the cool kid tools. But you have to have a solid foundation in JavaScript to do that, and JavaScript sets you up nicely to learn other languages too.

Speaker 1:

I didn't just stop at JavaScript. My first job used C sharp. The next one used Ruby, the current one. I'm using a bit of Python. I've seen a bit of Scala. I've seen a few other languages along the way in these last 11 years.

Speaker 1:

And guess what? Learning JavaScript or any programming language really sets you up to learn other programming languages. So don't be afraid that. Oh no, if I learn this, I'm going to be like out of the Python crowd or I can't switch to some other language. That's completely false. You can learn all sorts of really cool stuff if you start with JavaScript. So where do you start if you don't know anything? If you don't know anything at all.

Speaker 1:

I'm going to make a plug for myself and Parsity Just go to dev30.xyz. Forty-nine bucks, 30 days. We not only teach you the basics of JavaScript and beyond and you'll do some projects, but you'll also learn how to learn in public, make an online presence, get your LinkedIn in order, basically learn other things outside of just coding, like making a schedule you can stick to that are actually gonna help you out well beyond just coding. This is the big differentiator between us and something like Codecademy or Scrimba which are great, by the way, really, really good tools, and I recommend them if you're not into Def 30 or you wanna just do only the technical piece. But news flash for you knowing just how to code is not ever going to get you hired. I've had plenty of episodes where I've talked about that. Learning how to code in itself is not nearly enough to get hired. That is just one aspect of making a career change. That's why a program like Parsity exists, because we know you need a lot more than just learning the basics of JavaScript. But anyway, start with one of those three programs that I just named and you're gonna be in a really good spot to go forward.

Speaker 1:

So what are the things, the minimum effective dose. What must you know in JavaScript? This is going to be much shorter than maybe you think. I'm not going to name that much stuff, honestly. You need to know how to declare a variable. You need to know how to use a for loop to iterate over data. You need to know how to work with objects, arrays, nested arrays. You need to know how to write a function, a function that can take one argument, many arguments, and how to return something from those functions. You need to know how to work with promises. This is asynchronous JavaScript. This is often where people's brains start to break a little bit. And finally, I think you need to know a bit of DOM manipulation. Well, not, I think I think you need to know a bit of DOM manipulation. Well, not, I think you do need to know a bit of DOM manipulation.

Speaker 1:

You can do these things in order out of order, but these are what I consider the bare bones, the bare minimum, the things that you'll need to commit basically to memory. You'll have to know how to declare a function. You'll have to know how to write an if-else statement. I forgot that one too. So you need to know how to write an if else statement. I forgot that one too. So you need to know how to write an if else statement, how to have an object, how to create objects, how to create arrays. You need to know how to iterate over those arrays. You need to know how to do things like manipulate elements on the screen. You'll have to know how to work with things like APIs through promises, which we'll resolve at a later time. If all this sounds completely foreign to you, that's okay. That's the point. It gives you a good baseline for where to start, and what we're gonna end with is a final project which is really gonna tile this together. So this is kind of a way you can reverse engineer your way back to say, okay, where do I start from here? But again, if you're starting from zero or from scratch, go to Codecademy, dev30, scramba, and that will help you fill in those really, really foundational steps like how to set up your computer, how to install a code editor like VS Code or Cursor or whatever, and then you'll be able to actually write code, see it run and do stuff.

Speaker 1:

I'm going to tell you how I learned right. I just named off a whole bunch of concepts. You can read some laundry list of concepts anywhere. There's tons of them on the internet, and I'm sure there's ones that are much more detailed and verbose than what I just gave you. But what's really more important is how are you going to learn these concepts? We already know that you can't really read alone, but that doesn't mean you shouldn't read at all. So the way I like to learn is to read up on a concept Like, for example, what is a for loop? Right, open up your computer, go on Google what is a for loop plus JavaScript? You're going to get a ton of examples. You're likely going to get some AI slop. You're going to get some Reddit articles, whatever, and then what you need to do from there is to make this example make sense to you. Only so I like to use a tool called CodePen. Go to codepenio it's completely free or use VS Code.

Speaker 1:

At this stage in your learning journey, do not and I repeat, do not use AI tools. Don't use any AI tools. They're going to rob you of all the benefit of learning. You're not going to learn a single thing. No one's going to hire you. You're going to create junk that you think looks good, that nobody's gonna like, and then you're gonna not ever reach the promised land of getting hired, and if you do and if you do fool somebody into hiring you they're going to fire you once they figure out that all you know how to do is use AI tools. There are too many horror stories that are happening like this and I don't wanna see this happen to you. So don't use AI tools. I hope I've scared you sufficiently. Use CodePen or VS Code.

Speaker 1:

Bumble around a little bit, read on the concept and then say I'm going to make an example of this concept. The way I like to do this was through a technique called learning by form. I just coined this technique. By the way, this is not like some proprietary thing or maybe it is a proprietary thing it's something that I use to help me learn JavaScript. What I would do is I would create a button on the page, I would create a little input and I would create a div and I'd give that div like a color, like tomato or green or something, and I would do something like when a person clicked on the button. I would Do something. Maybe a for loop would be executed, maybe a function would execute, maybe that little div, that little box on the screen, would turn colors Completely nonsense, junk, right. But it helped me to internalize the concepts. I'm like, oh, that's how this works.

Speaker 1:

Again, you cannot read only about the concepts. You have to build little tiny projects like super mini projects for yourself, just to see how things work. The reason I like using a button and an input is because it set me up to do things like I don't know. Maybe I'll like change the input to capitalize all the letters. Maybe I'll like do a for loop over all the letters and capitalize the ones that are, you know, a, c, e or D or whatever, right, just wildly dumb stuff. But it taught me so much and who cares if it's dumb? You're not going to show these off to anybody. You're doing these so they make sense to you.

Speaker 1:

As a big bonus this is something we actually require in Parsity is that you record a video. I recorded tons of videos over the last five years when I started. It was really uncomfortable. I hated doing it. I'd be lying to you if I told you that people at Parsity don't hate this. They universally hate it. They also universally say that it's a real game changer when it comes to learning how to communicate technically. The more people do it. Some people do learn to love it, some people just learn to tolerate it, but they all know that. Wow, this really illuminated my knowledge, or it showed me some serious gaps in my knowledge. If you can record a video and you don't need to show it to anybody else where you're explaining these concepts, you're gonna really internalize this stuff and it's gonna be a big, big game changer in your own learning. I'm telling you, do the stuff that other people aren't doing to get the results that other people aren't getting. Okay, now, finally, here is the final project. Here is your final JavaScript project.

Speaker 1:

Now, javascript, like I said, it's a mountain. I've been learning it for up to 12 years now. I'm going to continue learning it, forgetting things, relearning them, reacquainting myself with concepts. The language changes, standards change. The way that a person spoke English in like 1805 is not the same way we speak English today, right, the same way that our ancestors, our forefathers, spoke English in their home countries, in the UK when the US decided to become independent, way different than what we speak now. Right, they probably had little fancy top hats and spoke with a little fancy accent. We wouldn't even know what the hell they're saying, right? They wouldn't know what's going on Skibbity toilet. So we speak a lot differently than they do. And the same way, javascript changes depending on the team you're on, the engineering culture, the year you're using it. The JavaScript I wrote 10 years ago looks wildly different than the JavaScript I'm writing now. So it's a nonstop learning process.

Speaker 1:

Again, this goes back to that idea of minimum effective dose. How much do you need to know? As much as you need to know. That's how much you need to know, and here's how you can tell if you know enough to move on to something like React or Angular or Vue Newsflash. Just choose React. I'm being a little bit facetious, I'm kidding around a little bit. You should choose whatever makes sense to you. I'm just saying React is probably the thing that you want to learn after learning JavaScript, html and CSS. So your project should be so. Your project should do the following things it should be able to handle a click event. It should be able to create elements and then add them to the screen. It should support handling events via form submission.

Speaker 1:

So what I would do, and what I've had other people do that have been in Parsity or that I've mentored over the years, is to do something called the form challenge, where they'll build a small form using HTML and CSS, no external libraries allowed. They'll fill out this form. This form will have some boxes, like a checkbox that will allow you to subscribe or not subscribe to a fake newsletter, or something like that. It'll take a first name, a last name and a small information about the person. They will click submit. When they click submit, all the text in the boxes will disappear. It'll be erased, and then they'll get a nice message on the screen telling them what they submitted. This will submit to a fake API. That API that I have people use is called typicodecom T-Y-P-I-C-O-D-Ecom. It is a placeholder API. Well, they will submit this fake data to that API and they will have a success message flash on the screen for a few seconds that will tell them what they submitted and then that message will go away.

Speaker 1:

This will take you naturally through all sorts of really interesting topics like event handling, dom manipulation, appending elements to the screen, form submission, apis, promises, fetching. So it's gonna take you all over the place in this fairly simple little app here. It's actually gonna teach you quite a lot. If you can do it, you can extend this even further. You can have checks to see, hey, what if a person only types in a letter? If a person only types in one letter, then we shouldn't be able to submit the form. The submit button should be disabled. There's all sorts of really cool things you can do to this and it's going to teach you so much.

Speaker 1:

If you can do this, then I think that you're probably ready to move on to React. Now is this like, this is the project, and if you can't make this, you shouldn't do React. I think if you can't make this, you honestly shouldn't go to React. I think if you can make it, it's likely a very good sign that you should move in to React, but it doesn't mean you're ultimately ready for it either. React is a whole other mountain, but having a solid foundation in JavaScript, you can get there. If you're spending, let's say, more than a few months learning JavaScript at a pretty steady pace, I would say maybe there's something wrong with the way you're studying. You're probably doing what I was doing, which was doing too much reading, too much passive learning and not enough hands-on keyboard learning, building really small, janky mini projects.

Speaker 1:

If you want to go further and really really deepen your understanding of JavaScript, there are a couple books that I do recommend. One is the you Don't Know JavaScript series by Kyle Simpson, who's actually been a guest on the show. I read these books a long time ago and they are by far the best books, in my opinion, on learning JavaScript, understanding what's happening under the hood and very practical ways to use JavaScript. I know that there are some people out there that actually don't like these books, which I find really surprising. I found these super useful. Kyle Simpson is an amazing person. He is also giving away these books for free, I believe on his GitHub page, so a lot of these books are just free. You can just download them. It's wild.

Speaker 1:

Another book that I found really, really helpful once you're past the super duper beginning stages of JavaScript, there's a book called Clean Code in JavaScript. It's basically like the other book called Clean Code, which is the more famous version of this book. This book is, as it says, in JavaScript. I also asked people on LinkedIn some resources they might give to people who are just learning JavaScript. One of the best ones was JavaScript Info. That is a really really good website. In fact, that might be as good as something like Scrimba or even Codecademy, so I think you should check out JavaScript Info. That's a really solid website. Cleancodenjs will help you learn practical ways to write good JavaScript that works outside of just your machine and it'll help you like understand, hey, what are some like syntax and patterns that I should be using that are pretty common in ways that I can write code that are going to make me look more like a professional?

Speaker 1:

And finally, another guest I've had on the show. His name is Kylo Robinson. This guy has a really cool site slash program called thegreatsynccom. Thegreatsynccom Basically has these really interesting mental models which are helpful for people that are coming from a non-programming background to understand things like functions or prototypal inheritance or closure, all these really conceptual topics which aren't easily accessible or like they're just really hard to grasp. Right, I still feel like you should be making really small little projects to learn these things.

Speaker 1:

But what he does is he gives you like like these weird mental models that involve like characters and foreign lands and wondrous tales of wizards and dragons and all this kind of stuff. I think it's really cool. In fact, I wish I had something like that when I first started learning JavaScript, because naturally, what I've done over the years is make these mental models myself. When I think of a function, I think of like a little booby trap, or maybe like a little bomb that's waiting to explode. When I think of things like closure, I think of like God creating the world, and inside the world there's another God that creates another world. I have all these weird mental models that really don't make sense to anybody else. But what Kylo's done is get all these models and then, like, use them so they can be explainable to other people.

Speaker 1:

Anyway, gone on very long about that. Shout out to you, kylo. Anyway, learn those things, build the form project that is linked in the show notes. I really hope that's helpful.

Speaker 1:

If you're really struggling to learn JavaScript, I implore you to go to dev 30 or you know what even hit me up. I'm. I'm available. If you can find a way to get in contact with me, I'd be happy to let you know some ways that I would be learning javascript if I was you. And if you have a question for this show or something you'd like me to answer on the air, just fill out the form in the show notes as well, because I will answer that question live on the air and I will shout you out if you want and you leave your name, which is not necessary. But yeah, again hope it's helpful and I hope you have fun learning JavaScript and enjoy that form challenge. 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 parsityio. And if you want more information, feel free to schedule a chat by just clicking the link in the

Podcasts we love

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