Introduction

Welcome back to the course 4 Semesters of Computer Science in 5 Hours! This is part two in the series. You can follow along with the videos for both Part 1 and Part 2 on Frontend Masters (see all my courses here). While these courses are not required to take in order and certainly you can take them out of order, I'd suggest you give a once-over to the first one in the series as well. These concepts I would judge to be a bit more advanced than what was contained in the first and it'd be good to jog those through your memory.

So why are we here? For me, I'm a college drop-out. As soon as I realized I could have an employer pay me to learn instead of paying a university to do it, I was out of there! The unfortunate part of that is there are some things that your job will likely never teach you. A job is (normally, yours may be different and that's cool if so) typically require you to write features and ship bug fixes; in other words, you're not typically given time to learn about NP-Complete problems or to diagram how a heap sort is going to work. The issue that arises given that is that when it does come time to have complex operations that make use of these loftier CS concepts, they're just not in your toolbox and that sucks.

Furthermore, these concepts are often to the gate keepers to getting jobs in our field, for good or for bad. Developers are often made interviewers without any training to accurately assess if a candidate can perform a position or not and they're left to their own devices. Given this, developers resort to one of a few things: that thing they learned that they found impressive, something they learned in college they found difficult, or just Googling what everyone else is doing. None of these are ideal or even very useful. Nonetheless, these are our gate keepers in today's world and I want to help you pay the toll and enter into the job you want.

This course is in JavaScript. This is because I'm writing it and I know JavaScript best primarily. It's secondarily because many front end devs want to learn more computer science but don't want to learn Lisp, C++, Python, or something else to do so. This aims to fill that gap. If you have a basic understanding on JS then you are set. If you don't I highly suggest Kyle Simpson's books and courses.

Lastly, much of what I'm telling you is from my own education and largely thanks to the book Cormen's Algorithms. This book is pricy and really dry but if you understand everything in it, you'll go really far. At some point I'd suggest taking the month(s) to tackle it.

Thank you for reading/watching the course! Please open pull requests for anything wrong you see, star the repo and hit me up on Twitter with your thoughts!