Today, we're going to cover JavaScript, the last of the three foundational technologies used in web development. I consider JavaScript harder to learn than CSS (especially if it's your first traditional programming language), but easier to master once you do have those fundamentals down. I will also mention that I'll only be discussing vanilla JS in this post, and Node, React, etc are out of the scope of this discussion. I will also not be touching on some important related tools such as npm
or bundlers, but I will be discussing those in a future post.
What Do I Mean By Job-Ready?
Before starting, let me clarify precisely what I mean when I say 'job-ready:
You'll understand the broad strokes of the technology in question, and know the most fundamental concepts that come up every day.
There may be gaps in your knowledge, but those will be limited to secondary concepts or syntax/other details that you'll be able to find the answer to relatively quickly and easily.
You'll know exactly where to turn to find answers to problems or questions that you're running into.
Following the advice here won't make you a master of JavaScript, but you'll be effective at the day-to-day that you'll need to get started on the job.
What you need to know
Core mechanics and terminology
Primitive data types (string, number, boolean, etc), and how to operate on/utilize them, including type coercion.
Working with dates/time in JS.
Basic data structures (arrays and objects), and how to work with them. Everything is JS is an Object, and it is vital that you understand at a deep level what that means, including prototypes.
Functions, and how they work. You also need to understand the distinction between a function and a method.
DOM manipulation and traversal using JS.
How events work, listening for and reacting to them, and how bubbling and propogation work.
How to use mathematical and logical operators, and various methods of control flow/iteration, including
if
,for
,while
loops, switch statements, and built-in methods for iterating over data structures.The two equality comparison operators (
==
and===
), and the diffrences in how they work.Newer additions to the language from ES6 and beyond.
How scope works in JS, being able to tell what the value of
this
is in any given calling context, and how hoisting and closures work.Debugging, particularly step-through debugging.
How to format data as JSON, and how to work with that format.
AJAX/asynchronous JavaScript, and the various ways of working with it (XMLRequest, callbacks, Promises, async/await, fetch).
JavaScript modules, and the various types of modules you might come across (CommonJS, etc).
How to utilize third-party libraries in your code, and when to reach for a third-party solution versus coding it yourself.
Extra Credit
What the Map and Set data structures are, and when to reach for them over an array or an object.
Common data structures that aren't native to JS and require custom implementation such as linked lists, stacks, heaps, etc.
Where to Learn
Recommended Reading
While incredibly dated in many ways (it was published in 2008, well before a lot of additions were made to the language that address some of the pain points he discusses), I think that every new JS developer should have a look at Douglas Crockford's JavaScript: The Good Parts, if for no other reason than to see what NOT to do from the "Bad Parts" and "Even Worse Parts" listed there, in addition to some of the stranger/seemingly incongrous features of the language.
Basic Resources
For the absolute basics, I'm going to repeat my recommendations from my post on getting job-ready with HTML, and I'll point out that freeCodeCamp's curriculum really shines with the breadth and depth of JS practice. If you do the work going through the FCC JavaScript Algorithms and Data Structures certification, you're going to be well equipped to tackle JS day to day.
If you're looking for learning sources from Udemy, I'd recommend:
Stephen Grider and Colt Steele's The Modern JavaScript Bootcamp Course
Andrew Mead's The Modern JavaScript Bootcamp
Max Schwarzmuller's JavaScript The Complete Guide 2021
Brad Traversy's Modern JavaScript From the Beginning
Premium Resources
For getting a really solid grasp on how the language works and some of the trickier concepts, I strongly recommend you check out Will Sentance's JavaScript: The Hard Parts workshops on Front End Masters. Will is an energetic and engaging teacher, and getting a solid grasp on the material in these lessons will put you well ahead of a lot of newer devs.
If I had to recommend ONE JS course, it would be Wes Bos's Beginner JavaScript, which covers paractically everything I've listed above, and explains it clearly and succinctly. Wes's ES6 For Everyone is also every good, going into a lot of detail about newer features up to and including ES8.
Where To Get Help/Find Reference
Third verse, same as the first: Stack Overflow and MDN (especially MDN) are going to be very helpful resources for you as you learn JS.
In Conclusion
JavaScript can seem daunting if it's your first programming language, but with some diligence and the help of some of the resources mentioned here, you'll have a solid grasp on the language before you know it! Join me next Friday as I discuss what books every software developer should have on their bookshelf!
Top comments (0)