This course has been updated! We now recommend you take the Complete Intro to Computer Science course.
Transcript from the "Introduction" Lesson
[00:00:00]
>> [MUSIC]
[00:00:39]
>> Brian Holt: I'm Brian Holt, been a web developer professionally for about five to six years now. Previous is at Reddit up until about 18 months ago Recently relocated to San Francisco from Salt Lake City. Everyone here in Minnesota knows what it means to be cold, so I eventually escaped that and got to San Francisco.
[00:01:02] But yep, now working at Netflix, super fun. I work on the non-member experience, which is like every time you log in to Netflix or manage your account, I do all that stuff. Or I'm on the team of people that does that stuff, I should say. If you haven't already, please open this link.
[00:01:18] The other disclaimer is I'm a little congested, so if I sound that way, it's because I am. So yes, please open this, it's just gonna take you to this web page. You can also just open that URL, this just seemed a little bit easier to type up there.
[00:01:35] Cool, and this is meant to be an interactive workshop so those of you who have questions, please ask them as you have them. Just raise your head and I'll tell you to shut up or to ask a question, one of the two. And then for those you that eventually watch this later, feel free to ask me on Twitter, send me an email, all that kind of stuff.
[00:01:52] I'm always available to answer questions, cool. Well, let's get going. Clear that, okay, so four semesters of computer science. It's kind of an ambitious title, and hopefully most of your bullshit detectors are going off and saying like you can't do four semesters in six hours. Well, first of all, we're gonna do four semesters and the other thing is we aren't gonna do six hours, it'll probably longer than that.
[00:02:22] So lies on both accounts, but hopefully we can still get something useful for you. Why I wrote this workshop. I wrote it because I'm super frustrated. I mean, I originally wrote it cuz I'm frustrated with the interview process for becoming an engineer. They ask a lot of these stupid, super algorithmic questions that, for the most part, don't really apply to most of your day to day work.
[00:02:47] I mean we asked some of them at Netflix because it actually does apply to some of the stuff we do at Netflix, like to receive graph is super important at Netflix. But, for example, what I did Reddit, a lot of the stuff had absolutely zero to do with what I was doing, and yet that was one of the questions they asked in my interview process.
[00:03:03] So all that to say this class is to help you prepare for those kind of terrible interviews [LAUGH]. Beyond that, I think these are useful concepts to know because computer science is a science of tradeoffs. That's obviously an oversimplification, but I also think that generally holds true that, should I have more readable code?
[00:03:26] Should it go faster? Should it take less memory? Well, the answer to that question is it totally depends on what you're doing, right? I'm gonna say 90% of the time, 95% of the time, it should be the most readable code. One of my personal code heroes, who's taught here multiple times, Kyle Simpson, said that code is more for the person that has to maintain it than it is for the computer, right?
[00:03:47] It's more communication for the person that comes after you, whether that's you yourself later or someone else. And so I think always err on the side of more readable code. And then today we're gonna talk about how to not write readable code, right? Because algorithms get to be kind of crazy.
[00:04:05] So all that to say is this is useful to help you kinda make tradeoffs in your head when you start going through writing really complicated things, things that need to go faster, that sort of thing. So again, this is a bit of disservice to professors out there that do actually teach real computer science courses.
[00:04:27] This is not actually four semesters but that is before I dropped out of college [LAUGH]. So I should add that disclaimer as well, is that I did drop out of college. But I got enough computer science to be able to teach this course, so don't worry. These are the things I learned in my first four semesters of computer science, so that's where the title comes from as well.
[00:04:47] But it is total clickbait, right there, clickbait title. This class is most helpful if you already know JavaScript. But we are gonna talk about some ES6 things, cuz I think they're fun and I will just kind of briefly touch on what those are. This class is not about ES6.
[00:05:02] You should watch one of Front End Masters other very wonderful courses on the ES6. But I will briefly explain whatever ES6 concepts I do touch on.
>> Brian Holt: And lastly, you should just read this book. Corman's Intro to Algorithms, that's hard to read but the link's on the website so.
[00:05:25] It's free, it's on MIT's website, you can get a PDF of it. It's huge, by the way, do not download it on Front End Masters' wifi, cuz, or else our class is gonna be really sad. It's just one of those things that it's long, it's kind of dry.
[00:05:41] It's a textbook dry but just read it. I swear, if you read that just once, it's gonna serve you your entire career. It's gonna make you a better developer. You just have to pay the tax and do it once. I've read it a couple times, not recently, so I probably should do it again.
[00:05:56] But it's gonna basically, for a frontend developer today, that's gonna be way more knowledge than you're actually even gonna need, but it's gonna be super helpful. But this is a good place to start. This is gonna show you that the mental gymnastics of algorithms, I think's fun. It's fun to reason through these.
[00:06:16] They're puzzles, right? I'm asking you to rearrange numbers in interesting ways and it's kind of like some sort of a really bad crossword puzzle or something like that.