Transcript from the "Introduction" Lesson
>> Hello, everyone, welcome to Full Stack for Frontend Engineers 3. Version 3 of this course, it promised to be a lot more exciting than versions 1 and 2. Those were not as good as this course is going to be, all right? First off, I want to say thank you all for coming today.
[00:00:17] I know life can be a little hectic sometimes. So, it's really great that you all made the time to join us today. My name is Jem Young, I'm a software engineering manager at Netflix. I've been at Netflix for about seven years now. A lot of that time was spent as a UI engineer working on netflix.com.
[00:00:37] And then the lure of platform work pulled me in, so I worked on platform for a number of times. And then I did a little bit more UI. And now I manage the platform. So I manage the team that runs the platform for netflix.com. We use a pretty standard stack, Node and React and all the other fun stuff you've heard of.
[00:00:58] And I have to say about two years in the management now, it is very different than I thought it was. In the best of ways, and maybe later on we can talk a little bit more about that and how it plays into my thinking of what full stack engineering is.
[00:01:11] I'm also the father of two boys, they are six months and three years old and they are a delight, if not the extra gray in my beard these days. I'm also the co-host of the podcast Front End Happy Hour, it's a podcast that's been going on for about seven years now.
[00:01:32] Man, we doing it seven years. Mm-hm, we still make no money on this podcast, all free. But this podcast is kind of a casual conversation where just a bunch of people who work in front end across a bunch of companies in Silicon Valley, just have a couple of drinks and talk about frontend topics.
[00:01:50] It's pretty, pretty relaxed time. I have a few other courses on Frontend Masters. One of them is the Introduction to Web Assembly, that's more of an advanced course. We dive into hexadecimal and kind of the nature of programming itself and then we pull ourselves back up all the way through rights and web assembly in the browser.
[00:02:10] That's pretty tactical but also a good time. Also have a course, Interviewing for Front-End Engineers on Frontend Masters. That one's a lot of fun. That's where we cover a bit of everything from how to craft your resume, to the right questions to ask, to how to think about think from an interviewer's perspective.
[00:02:28] So if you have a job coming up soon, or you just wanna be a little bit better at interviewing as we probably all wanna do, check out this course. So for the introduction, I want to cover some of the prerequisites for the course. I want to talk about what modern computing is, and then I want to talk about what full stack engineering is.
[00:02:47] It's not a very clear definition and if you try to look it up, you will get a hundred different definitions. So, let's dive into what that means. So some prerequisites for this course, I would consider this a beginner course, of bits, all right? You should have some familiarity with coding, all right?
[00:03:07] Some of the concepts we're going to cover, not super deep in terms of the technical on the coding side. But if you've never written a line of code before, it will probably look like gibberish or spaghetti, all right? You need access to a terminal, all right? Ideally on an OS X machine.
[00:03:23] I know Windows can also emulate Linux environment, but there's a lot of caveats there. And we just, I only have two hands, I can't do both computers at the same time. You're going to need Internet access, which if you're watching me now, you probably have Internet access. You'll need a credit card, and that's if you want to buy a domain.
[00:03:41] You don't have to buy a domain, but that's part of the fun of this course, is hooking it all up, and you have your own domain name. But lastly, you need a sense of adventure. We're going to go into places that you may have heard of. You may even know something about them.
[00:03:59] But we're going to cover the entire stack, all the way from the terminal to building a webpage hooked up to your own server, and we're going to do it all by hand, for the most part, all right? Your brain is going to hurt by the end of the day, that's okay.
[00:04:14] We're covering a lot of material, a lot of different topics. So buckle up and bring your sense of adventure. Let's talk about modern computing. What is modern computing mean? Well, I like to break it down to the three primary parts. There's the UI, that's one of the bigger parts.
[00:04:33] That's the part you're all familiar with. You can't use a computer without some sort of UI or terminal interface. There's a server, the server is the thing that's sending you the data. Pretty straightforward there, but even that definition is kind of murky these days with serverless and all the other topics out there.
[00:04:53] And then there's a database. Probably the thing people always forget exists, but you have to have a database. Otherwise, the UI and server don't really do that much on their own. And that's what I like to think of as kind of the modern computing stack. When it comes to user interfaces, they're everywhere.
[00:05:10] We have browsers, we have our mobile devices. There's even some in cars, unfortunately. Find me later and I will go on a good rant about touchscreens in cars and why they're a bad idea. Your desktop computers like we're using now, TVs have a user interface, even your appliances and smart fridges.
[00:05:29] Later, I will go on a rant about smart appliances too, so you can see where this course is gonna go, a lot of my rants about things. But user interfaces are everywhere, and a lot of times we don't really think of the thought that goes into all them.
[00:05:44] We think a lot as front engineers, we think about maybe the browser or even a mobile phone. But really UI is every single place you see. When it comes to servers, most of us know servers as for APIs, application programming interfaces, but servers also do logging. Logging is critical to any website or application.
[00:06:07] You absolutely have to have it. Of course, almost any website today have some sort of authentication. You can only do that on the server. Of course, another thing about servers is, we forget is, it's a development platform. How else do we build our applications? We need some sort of server, whether it's a local dev server or a remote one on something like AWS or DigitalOcean.
[00:06:30] Then we have our databases, the database is just structured data storage. It can be loosely unstructured, but it's not just a pile of things you dump things into. There is an order to it, and database are useful for things like data analytics, getting insights into how things work.
[00:06:49] All, any sort of modern AI or business intelligence uses some sort of database. But that's probably one as front engineers, we don't really talk about too much. But we'll dive into that today as well. So when I think about these three parts of modern computing. You have the UI, the server, the database.
[00:07:09] We generally call the UI frontend, and then we call everything else that's not the frontend, the backend. It's funny with backend engineers, they don't really argue about this. You say, I'm a backend engineer. They're not like, well, I actually do this. They're like, yeah, okay. But frontend engineers, we get really particular about the titles.
[00:07:48] Or, hey, I do UX. I talk to the users and I make sure that what we're building here makes sense. Do we need to change that button color? Will that get us more sign ups? Is our font the right size? The backend is just, you do backend. You do databases.
[00:08:06] Today, we're gonna dive in more and find out what does the backend look like.
>> Man, it's early in the class to be getting such spicy topics. My respectful opinion is I don't think most people are full stack engineers. I don't think they understand the details. What I've seen is people call themselves full stack engineers because they can put together some sort of backend, some sort of frontends, but it's always using someone else's tools.
[00:08:58] It's always using some sort of service in place, which is fine, there's absolutely nothing wrong with that. However, in this course, we're diving into the actual nuances. We're not using tools, we're using as plain software as we can, because it's important we understand how it all connects together.
[00:09:15] When we're done, yeah, you can use all the tools you want. You can use Firebase or Vercel or Netlify, all these other fantastic products that kind of make your life easier, but I don't consider that full stack engineering. If you can't tweak an IP config table, you can't adjust a firewall.
[00:09:34] If you can't pick an operating system, the right one to use for your company maybe not a full stack engineer. And that's not a slight on anybody, it's just a reflection of today's modern computing environment. Good question and bring the questions. Yeah, it helps me get my rants out, because if you asked me a question, I can go on a rant about it.
[00:09:56] If I just go on a rant, it looks bad. But, if you give me a question, then it's okay cuz I'm answering your question. And to that point mark, this is what I've seen a lot in kind of today's world. I have someone, hey, build me a React component or build me a page in React.
[00:10:34] And say yeah, I'm like okay, can you build me a server in Node? Just real quick, a couple lines. Most people probably couldn't do that, or understand what's even going on because they never really see that. It's all obfuscated by tooling and library these days, and of course, if I say, hey, can you write me a SQL query.
[00:10:53] All right, yoh, [LAUGH] people's faces are like, what? What's a SQL query? When I was making the slides, my partner walked in, and she's, what are you doing? I was, I'm adding a few slides, so I can explain relational databases to these frontend engineers. And she's, they don't know what relational databases is?
[00:11:14] How do you not know that? But again, she a data scientist, so this is all she does is SQL queries. We're gonna cover all of this stuff. By the end, you will know what every single piece of this code means, which I'm pretty excited about. And I joke a lot about, front engineers and full stack, but really frontend is huge.
[00:11:38] We talked about this earlier, UI is everywhere. So we tend to think that's what software engineering is, it's UI, it's frontend. But the everything else is massive. It's a massive amount of knowledge, a lot of history, a lot of communication, a lot of technology that goes into allowing us to build frontends, allowing us to build UI.
[00:11:59] And today, we're gonna cover the everything else. There are many courses on Frontend Masters that are fantastic that cover frontend and it will teach you how to build every sort of website in every sort of language you could imagine. But the everything else part, that's a tricky part.
[00:12:16] By taking this course, you have a competitive advantage against people who haven't taken this course. And I'm not patting myself on the back or anything like that. Just there's nothing wrong with knowledge, even if you never use this these things again, you will see them and you'll be, okay, I understand that versus something comes up and your like [SOUND] I'm gonna stay away from that cuz I don't really understand that.
[00:12:39] I want you to understand, I want you to know and not just believe how all these things tie together. And it's a complex relationship. There's a lot of rules we have to follow. There's a lot of, say regulations as well in terms of what we can and can't.
[00:12:58] But when we follow the rules, we can make these completely disjointed systems. So you have a browser, could be Chrome, Firefox, Edge, it doesn't really matter, or any UI. We can make that talk to any sort of server running on any sort of operating system, talking to any sort of database, which is staggering the combinations we can make.
[00:13:19] But that's what this course is all about, is if you follow these rules, you can exist and write any sort of system you want. That's what I want. I want to give you that confidence, that you can go out and build any sort of application. So in this course, we're going to cover a deep dive into servers and networking.
[00:13:38] We're gonna have a good overview of databases. Again, something we probably don't look into it as much as we should. We're gonna understand how the Internet works, my favorite question. And we're gonna understand the relationships between all of these systems. We're gonna be doing some coding. We're gonna be doing some listening.
[00:13:57] We're going to be doing some mistakes. You will make a mistake, that's okay. I do my best to try of anticipate, the kinda mistakes you're going to make, and kinda lean you back on the right course,. But if you get stuck, don't forget to ask a question in the chat or really ask anybody.
[00:14:13] I think, we're all moving incrementally through this. And speaking of incremental, I will have to say, the early part of this course, you may have seen some of these things, may have seen some of these concepts. But as we go deeper and deeper and deeper, it's really hard to come back if you haven't followed all the steps.
[00:14:30] You can go way off the trail, and then I can't help you. You can lock yourself out of your server, and there's nothing anybody can do about that. That probably won't happen, but it usually happens to a few people. But that's okay, that's okay. The first step to being good at something is making mistakes, and you can't be afraid to make mistakes.
[00:14:48] So we're going to do this on is very low stakes. There's no million dollar systems on the line here, not yet.