Introduction
Let's go, let's go. Good morning. Good afternoon. Good evening. No matter where you're coming from. Hope you all are doing well. Yeah What's going on everybody Welcome back. Welcome back. Hope you all are doing well. Happy Thursday Whoo, we outside we online. Let's go everybody Yeah, it's so many new folks today Coding pearls said I'm on the ketchup crew never had the opportunity to join live. Hey, welcome coding pearls. Glad you could join us Rufio Rufio Rufio Rufio Rufio with the raid a hundred and twelve Folks coming through with the raid. There's no better way To start off your day. You got some time before the stream Before we're here for class, you know where you should be should be on the stream teams Hello, it's Rufio's Stream right before this one.
What are you doing? What are you doing? 139 before the raid. I love it. I love it. Glad to see it Stream teams been popping off recently folks stream teams been popping off But you got it. You got to love it. You gotta love it. Thank you for the raid Thank you for bringing the whole crew over a lot of new folks tonight in chat. Where are y'all coming from? I'm curious We have been we have been popping off a little bit on YouTube. That's what I will say We've been 1k gang all all day long. I don't not doing anything special But we see a lot of new folks coming from YouTube. I appreciate everybody that goes over to YouTube that likes the videos It does really help folks find us But yeah welcome everybody if you're really new and because I see a lot of first I get to see like first time chat If you're new welcome a lot of catch-up crew I see y'all I see y'all If you're new around these parts, we're running a 30-week software engineering boot camp from beginning to employed Last cohort got hundreds of folks jobs this cohort The number of folks getting jobs already, the number of folks getting clients already, it is wild. Glad you're all here.
Shout out to the Ketchup Crew. That's catching up, I love to see it. Tonight we got some bangers, folks. Got some bangers tonight. Some big news, some fun news, some things to share, and then we're gonna get a review in. No big words tonight. We're gonna review OOP, no big words. Once we go through our review, we're going to build out some objects together. We're going to extend some classes. We're going to put encapsulation, abstraction, inheritance, and polymorphism into play. Do it together. And then we're going to jump on Remo. We're going to jump on Discord and do it together. Oh boy. We got some review.
We got some things to do. and then we're going to try and do it together. All right. You know how we like to do. Always like to start off with some questions. The question of the day, question of the day, getting your first client signed today, minty fresh, hey, congrats. Question of the day is what is your favorite candy? And for folks that don't do candy, cause there's some folks that don't do candy, what's your favorite fruit? Favorite candy, favorite candy, favorite candies in chat for me, please. Oh, okay. Reese's gang is coming through. It's pretty overwhelmingly Reese's. Gummy bears, sour straws, Snickers, Twizzlers, Twix, Airhead Bites, what are Airhead Bites? High chews, oh I do, high chews are legit. Sweets, Kit Kats, Sweetest Fish, Almond Joys, wow.
All right, so Reese's Snickers is kind of like leading the way here, it's pretty wild. Take Fives, Twix Bars, Twix are pretty up there. My favorite right now is definitely Sour Patch Kids. Sour Patch Kids are like my jam right now. A lot of PB anything with peanut butter and chocolate. All right Oreos. Yes. Yeah, it's not really good. We'll get there If you say pepper peppermint you deserve spinach in your mouth Remember fun dip. Oh man fun dip was a problem back in the day You know, you know, no, it's interesting about fun dip. I enjoyed I I enjoyed the sticks more than I enjoyed the sugar sugar is okay, but the sticks those white sticks Yeah, that was that that's what you went to the fun dip for Just all caps nasty Already folks. Thank you for sharing your your favorites, your favorite candy. It's always good to see. I get to see what the community's into. I love it, I love to see it.
All right, if you got any real questions as folks get in here, I know folks are always running from work, that's okay. I'll just give them a second to get in here. Questions, you got questions? Hopefully I got some answers. Then we're getting into a lot of fun stuff to talk about right off the rip tonight. We're gonna go through a review and then get on either Remo or Discord to work with each other. It's a project night after we do some review. what is fun dip is it like dunkaroos fun dip is a literal packet of sugar and a white candy stick and you would lick the stick right you would lick the stick put it in the sugar and then like eat the sugar off of this white, like candy stick. So it was literal bags of sugar. A different ghost in the house. Hey, thank you for the five. Get this house. Hope you're doing well. Thank you for being here. Good to see you.
Should we be able to build Tic-Tac-Toe by ourselves at this point? No, I think there's gonna be a range of folks. I feel like there's some folks that could probably get close on their own. and there are some folks that might struggle on their own with tic-tac-toe. Tonight, if you have extra time, it'll be some time to continue on with tic-tac-toe and make it as OOP as possible. So I don't wanna say that you should feel super comfortable. Where I want everyone to be is that you should feel comfortable starting. I think the biggest problem when folks, when we first start getting to these projects, the projects feel really overwhelming. With a new group, yes, ideally with a new group. The projects feel overwhelming, And we let that, that overwhelming feeling stop us from getting started. And so that's something when we start doing these project nights, that's something I really want you to work through. If you're know that, if you know that you're someone that gets the, the prompt and you kind of freeze deer in the headlights, we got to work through that. Right. And the only way you honestly really work through it is to do more projects, do them with more folks and, and, and really work on that idea. I think when we look at things like the tic-tac-toe, everyone jumps to like these really optimized solutions.
When tic-tac-toe is really just an event listener, you hear an event, you put something into the DOM. If you've been doing a lot of the problems, the homework, you should feel comfortable with building a Smurf or an event listener and then putting something in the DOM. You could build tic-tac-toe with just event listeners and a really big conditional and that would be tic-tac-toe, right? And so I think we got to get over this We got to get over this hump of like I can't start don't know what to do because you do and then as you get More projects underneath your belt. You'll do things in a more and more sophisticated way, right? And so we got a we got to keep getting these projects going We got to keep getting the homework going so we can get over that initial Hump of like deer in the headlights and keep working it out Yeah Um, yeah, the rock said it's too early in the process for perfect solutions. Exactly. We're here to get the job done. We don't care what it looks like. We're baddies. We write bad code. Definitely. Gay. Definitely agree. Getting started is what I struggle with the most.
I agree. Getting started can definitely be the hardest part. Do the Twitch geo API for the China. I've never heard of that before. I'll look it up. Literally writing code will help you get better at writing code, 100% agree. Exactly and different. All right. Code wars can be really discouraging, absolutely. When you first start code wars, it's not easy. Starting code wars is hard, but if you stick to eight cues, you stick to the fundamentals track, and you stick to doing the same problems, like all array problems, all string problems, you start to see the patterns and you start to get better at it. Remember, our rule is 20 minutes, 20 minutes. If you spend more than 20 minutes, you need to stop, look at the solution, and spend more time on the analysis than you did trying to solve it. You do that for a long time, right? If you do that for a while, you do that every day for a couple weeks, code wars start to get a little fun.
You start to recognize the patterns you start to be able to do things If you don't feel comfortable doing them by yourself Yesterday mine wolf wolf pack was working through the code wars ladder. That was to push homework So they did the eight the seven the six the seven the eight live on stream I'm telling you folks if you're if you haven't turned notifications on for the stream team, you're you're you're missing out missing out folks Went from not knowing what to doing one liners a turn up Already it's been helpful. I agree Already folks, let's get into it. Lots of cool stuff to talk about tonight a little bit of review then some project time Alright, let's get into it Checking in please if you haven't checked in please go ahead and check in a like and a retweet on the tweet Please if you're here, please just go ahead and do the like in the retweet helps folks find us We got a lot of new folks in chat. I definitely know that that's coming from twitter and youtube So I appreciate y'all checking in Helping folks find us and also lets me know that you're here for attendance So that when it comes time to end the program we get you into all the good things. We want to get you into All right, thank you for checking in. I remember when you just type, when you do exclamation point check-in in chat, that doesn't do anything. It just gives you the link that you have to click the link and go there and do it. I wonder if the Twitter API would allow us to do that. Like, could, can, is there, like, I don't even know. I'm gonna assume, like, hell no, but it'd be cool if we could, like, write something that when people type check-in, it actually, like, liked something, you know? Yeah, I don't think that they would let that happen, but it'd be cool if we could All right If we miss some live streams, but watch the bodge we still retweet hell Yeah, yes, please if you are watching us Through the VODs or you're watching us on YouTube still go ahead and give that like in that retweet Folks that are part of the ketchup crew I still want you to have access to the things that happen at the end of program We're gonna get you references or we're gonna get you the end of program support that you need But we need to know that you've been here So even if you're watching us on YouTube Go ahead and make sure you go back to that tweet you like you retweet it that way we know that you watched it well All right Newsletter We have we have the sign up for the newsletter. I'm still in bigly on If you haven't signed up for the newsletter, there's nothing in there today, but next week Next week you're gonna want to be in the newsletter Just saying next week. I won't be on the news. I'm just the millions, you know, well, you know, I'm saying hey next week Newsletter, so I'll just let you know ahead of time because some people like Leon.
I didn't know about the newsletter You never told me nah, this is your warning You don't want to be in that newsletter. And once again, do an exclamation point newsletter doesn't do anything. It doesn't do anything. You got to click the link and go sign up. All right. This weekend, this Sunday, we do not have office hours on Sunday. All right. Kadesio said, if I'm just starting now, should I join live or should I wait to start this from day one? Feel free to hang around. We got some cool announcements tonight and then yeah, definitely Start with class one join the catch-up crew on discord That's a great study community for you to be a lot part of as you kind of catch up and move through the material All of our classes are on YouTube all the materials in the follow along materials channel on discord boom All right. This Sunday is Mother's Day. So no office hours on Sunday don't forget to call your mothers to argue and And then on Monday we are going to be doing a get bowl where we're going to be spending Probably about a normal class amount of time about three hours reviewing getting github Doing everything that you need to know to fork to clone to contribute to projects to submit your homework We're gonna go through all that stuff together that way if you're not feeling too comfortable with getting github You'll have a chance to do it together live. It'll of course be recorded. It'll go up on YouTube, but it's always fun If you join us live Cool No worries been nowhere he's been all right networking starts up again next week Yes networking starts up again next week we're gonna take our time we're gonna go slow we're gonna start off with one connection right just just getting dipping our toes back into it building back up to it getting into the groove don't worry we're gonna start slow for folks that have trouble networking we're gonna talk about a lot of alternatives next week things you can be doing to interact with folks via text things you can be doing to network that don't require you to show up and talk to people so next week networking comes back right if you know that you're one of the folks that, that have a little bit of the anxiety with the networking, or you feel like it's something that that's, that's hard to do, it's all right. We're going to come with some alternatives next week, uh, to help those folks.
And, um, one really important thing that I really want to say is that if networking is something that causes, like it's something that is not possible, right? Not every one of us has the privilege of being able to network, right? Some folks really do have situations that were preclude them from networking only, you know that you are not Please don't ever do stuff. That's gonna bring harm to yourself both physically and mentally We will find things that you can do that give you an edge when it comes time to the job hunt that aren't just this But I will say Networking is one of the best things you can do to get a job Your code quality the ability to code is often not the thing that gets you the job Is the folks that you know and network with that can help seal the deal? So it's really important But I really want to make sure that was said so that if you are one of those people will find things that work for you Too that's all coming back next week folks All right You heard Simba jingle Simba Simba is posh now. Simba's posh. He has an air tag. And so you heard the air tag jingle. Yeah. So the normal tags are a little jiggly now. All right. Wait a minute. Leon, what's that date? What is this? What?
Huh? What's, what? What? What, what, what, what, what, what's that? Is that, does that say, hold on, that's a 17. I say 17. It does. So today was supposed to be the deadline for your client project. I'm going to give you an extra week and some change, extra week and some change, please. So I know a lot of folks are like super close. She grinded out this past week. I saw you on discord. I saw you on Twitter talking about it. I Respect the hustle and so since I saw so many folks like coming up to the wire So many folks that were grinding it out. We'll push the deadline a week and some change Right a week and some change just to get it so you can get those contracts signed so that you can you can get across the finish Line together and so we'll push it just a week and some change Go hard in this week.
I saw so many of you, uh, it was literally the things that made my week seeing how close so many folks were. So let's get, let's, let's give it a little, a little bit more time. We'll weaken some change just to get it across the finish line, uh, to handle the ghosting of some clients to give you a little bit more time. And then, um, remember there are client alternatives. If for some reason you cannot get a paid client, there are alternatives. you can volunteer for a grassroots org. And when you volunteer for a grassroots org, please still do the same process. Especially if you're gonna do stuff for free, right? If you're gonna do stuff for free, then the power's in your hand, right? Make sure you're still giving a proposal. Make sure you're still giving them a contract. Make sure that they are still agreeing to be the best reference customer that has ever existed that are you ain't doing stuff for free, right? And so make sure that you still go without the normal process that we get that experience. The experience is why we're doing this to get that experience. Make sure you go through the same process.
And also remember that contributing to free software or open source software also counts. I don't care how big or how small or how well known the project is. You contribute to free software, you're doing good in my book. Exposure doesn't pay the bills, exactly. Exposure doesn't pay the bills. These are simply alternatives for folks that cannot get a paid client. And you're still getting stuff out of this volunteering because they're gonna be the best reference customer you've ever experienced. Oh, that's an awesome project. Alright, this past week, so last week I was super busy, last week I'm catching up as fast as I can this week. I'm really close. I dug myself out of the AskLeon channel. Everyone that posted in the AskLeon channel, you have an answer. I always answer every question in the AskLeon channel. Sometimes it takes me a week, but I get there. So I'm super close.
I got through all the AskLeon questions. I'm clearing up mod mail. So by end of day tomorrow mod mail will be cleared out as well. And Yeah, super super close almost done responding to everybody also t-shirts and things are starting to come in from the raffle winners and so if you Won a raffle recently you should hear from me if you haven't heard from me yet. Give me until Friday That's when all the last folks will hear about it We have t-shirts coming in so shipping should start going out next week Mm-hmm. Mm-hmm All right. Oh I have it so I don't know. I have it further We'll make sure we go over the project winners and the portfolio winners and we'll do the Pokemon cards tonight as well So well, that'll that'll all happen in a few minutes. I got y'all All right, fresh start. What does it mean for a fresh start, Leon? Well, a fresh start means that a lot of folks have been really worried. They said, Hey, Leon, I, uh, I missed the homework or two, or I missed the check-in or two and I really still want all the wonderful stuff that's going to happen at the end of program. Like I still want to participate in the job board. I still want to participate in getting references. I still want to participate in verifying that you're at 100 devs.
I want all that good stuff that's gonna help me get a job. And we know to get all those wonderful post-program benefits, you gotta do a few things. You gotta get the homework in. You gotta do the attendance. You gotta like in, you gotta retweet, right? You want all these beautiful wonderful things are gonna help you get the job at the end of the program You gotta do all these things and I know some folks have missed a few so tonight It's a fresh start. I don't care if you missed any homework. I Don't care if you missed any check-ins. I don't care if you missed the retweeter to The slate has been wiped clean place been wiped clean You have going forward now the expectation that you get the homework in and going forward you have the expectation that you'd like and retweet Including starting tonight, but if you're somebody that was panicking about the past it doesn't exist We all go forward with the same slate that this is your chance Your chance to be alright if I wasn't there in the beginning I can get in now I can go hard over the next couple of weeks and and and get the same benefit. So Slates been wiped clean. We got a fresh start. We got to do our Gucci dance, you know But uh, yeah, so it's been wiped clean Already If you have not joined our Code Wars clan, you're missing out on some cool stuff that's gonna start happening next week. So, next week, folks at the top of the Code Wars clan will be getting Discord, special Discord colors. I'm not sure if it'll be gold or some other color, but the folks at the top of our Code Wars clan will be getting special colors, and VIP here on Twitch. And you're like, Leon, there's no way I can catch up to motherboard.
Or are, you see this folks? You see this folks? Hold on, I gotta put my demo pro on. You see this folks? Hold on. Not only do they have an amazing job, right? Amazing software engineering job. not only are they a mod extraordinaire not only are they our new director of community but they're dusting y'all in code wars too mm-hmm that's right laws out here laws out here uh-huh uh-huh putting in work putting in work so folks at the top of the heat of the of the Code Wars clan. If you're not part of the Code Wars clan, you can do exclamation point clan, and that'll give you the link to our, well, sorry, it'll give you the piece to put in the clan. Notice that the whole clan name is Octothorp100Devs-LeonNoel.com slash Twitch. That is the full Code Wars clan. If you're just in 100 Devs or something else, you're in the wrong clan. So folks at the top of the clan, They're gonna get the the lovely colors in VIP but What we're gonna do is we're gonna take a snapshot of the clan and the folks that have the greatest improvement will also get the special colors and VIP so we're gonna have some folks for folks at the top of the of the leaderboard But we're also gonna look at the folks that improve the most get the most in over a certain period of time. Yeah. We're gonna do this probably monthly.
We're gonna do this monthly, like once a month we'll take a look at it and we'll work on it. You said Leon won a day. I did. Hey. Bernadine, thank you for the five gifted subs. I appreciate that, thank you for being here. I Did but some folks got more time and they want to have some fun and we're about having some fun, too And if you want to have some fun by doing some cold wars, well, you get some perks, baby You get some perks and so you don't have to be the best you can be the most improved. You know what I'm saying? There we go Just to have some fun. All right, so that's that's on your mind Join the clan if you haven't yet, it's really cool to see it's no it's so cool to be like looking at solutions and I'm like I know who that is that's 100 devs that's 100 devs right like you just see the you see all the solutions that we're submitting now I'm like yep that was 100 devs they did that yep 100 devs they did it 100 devs did it and uh I don't know I don't know if you'd noticed, but on the Code Wars newsletter, our very own, the first article they mentioned in the newsletter was Blah's article on how to do Code Wars. So we out here folks, we outside, we online, we all over the place. So in Code Wars' own newsletter, Blah, top person. The people that are highlighting, 100 devs folks. We out here folks. We outside, we online.
Let's go. Just saying, just saying, we're taking over. What can I say? Best place to learn code live, online, we got you. All right. It's almost a meme at this point, but we gotta announce the project winners. And I have some Pokemon raffles to do. I'm gonna do them real quick. We got four of them, or five now, cause I just saw Brian Bud redeemed one as well. The project winners, there are a lot of projects. and remember this is supposed to be the funnest projects to me, this project really blew me away. Not only was it fun, not only was it clever and creative, but the code was good, and not only was the code good, but the comments, they commented every line. You can really tell that this group worked together. It was really fun. So the group that made Pizza Sweeper, why is it not loaded?
Pizza sweeper you won the project competition. I will be sending you all messages By Friday, you were all getting t-shirts Pizza sweeper is pretty fun. You can play minesweeper if you ever play minesweeper from before you can see what happens when you lose This is Papa John's that pops up. Of course Papa John's is the mines here, which I thought was pretty fun you can see the folks that that um made it down below so i'm gonna plop this into chat real quick just so you can all see the fun pizza game i'm sure we're probably gonna take it down but that's that's good um so this was fun the really cool part though like if we inspect and uh i just thought it was really cool i thought it was really fun i love that they called them pizza weenies because they knew they went a little too hard in the paint on this one. I respect that to know that this is not what was expected. They went hard. Uh, so I recognized, I love that. They called themselves pizza weenies, loved it. Um, and then if you look at this code, folks, look at this code, let's close this X down here. Look at the comments, look at the comments. Oh my gosh. It's just so pretty. Just so pretty. And they're funny too. They're funny.
This runs everything, baby. I just loved it. I thought it was really cool. It was really clever. It was a lot of fun. It was well commented. It was clean code. I loved that they were talking about, I loved that they were talking about, they did recursion, they did recursion and then like halfway through their recursive function, they're like, I don't think we should have done recursion anymore. Hey, welcome. So I thought that was pretty fun. So definitely this is the winner. There are so many other great ones though. I loved all of the soundboard projects. We'll find some time hopefully next week to like highlight some of the other projects. Pizza Sweepers, you won.
There was also supposed to be the funnest portfolio. So we have one more winner that will also get a t-shirt and then that we're done with t-shirts for a while folks. There's actually only one more chance to get a 100 devs t-shirt. And that is tomorrow at Fox's newest member of the stream team stream So if you want your last chance to get the og hundred devs t-shirt Before we do that before like we won't do we'll do another merch drop in the near future But you want those those shirts won't be in stock anymore. So if you want the OG shirts, you got one more chance Tomorrow 11 a.m. They're going for a long time. They say like 11 to 6 tomorrow I'll be your last chance to get the t-shirt project winner Sebastian, I love this portfolio. It's such a good portfolio. They had the little sauce here on the right, but when you go down, I loved it. They talked about themselves. Sebastian, one change, one change, please. Get rid of this opening line. Being young and without the ability to afford college, get rid of it, just talk your talk. Going with the heat. I decided to start my professional career by learning 3D design by myself.
Start with that. Get rid of that. Boop. Get rid of that. Bring the heat. Right? I love the quirky, like the quirky layout. I love the projects that they worked on. This project looks mighty familiar. Looks mighty familiar. But it looks clean, don't it? Cuts and shaves. The barber's point. I love it. Look at that.
And then look at this, this, this, this, this restaurant. Hey, look at this Italian cuisine restaurant site. Ooh, crispy. And then they put something that they do on the side. They do a lot of 3D modeling. I love when you add a little bit more to your portfolio that shows your hobby or interest. And so these are pretty good. I love this portfolio because if you were here, if you've been doing the work, you've already built something that looks exactly like this restaurant site. You built something that looks like this barber site and you can see how clean it can look on your portfolio and how well they can stand out. So I love this portfolio. I thought the layout was dope. The little accoutrements are dope. I love that you can switch to different languages and it, ah, woo, there you go, loved it. All right, Sebastian, you'll get a message from me. You're getting a T-shirt as well.
And so that concludes the projects and portfolio. We have five Pokemon card raffles to do. Bring up the lists. So here are all the cards that are up for grabs. And I have a list of folks that need the cards. All right, so we got one, two, three, four, five. We need to do six. We're gonna do them real quick and then we're gonna get into some really big news. We're gonna do six raffles and then we're gonna do some really big news. So Ryan Bud was the most recent one. All right, there we go. So this is for Izraj, Izraj, I-Z-R-A-J. This first raffle is for you. So I'm gonna open up an inspector here. Console, math.seal, math.random.
And we're gonna times that by, how many do we have left here? 58, 58. If we get one, two, or three, you get the top level card. So one, two, or three gives you the top level card Out of 58, let's go ahead and do this. Does code look good, chat? Does code look good, is this correct? How is this working? So you can redeem your channel points for a Pokemon card. I believe it's 50K right now, and you have to be the first person of the stream to do it. All right. Let's run it. This is for Izraj, 51. Let's see what that is. 51 is a Pokemon communication. So Pokemon communication is going to you.
Cool, let's do this next one here. Pokemon communication. I'm gonna edit on my end so that we know so that we go down from three to two here, awesome. All right, next one, we're gonna do it again. 13, and this was for, this is just going in order of folks that redeemed. So this is for GamingJohnnyDino, GamingJohnnyDino, you got 13, so that is Izalith, and so let's go ahead and make sure you got that marked there, congrats. It's a pretty dope card, not gonna lie. All right, some of these values have shot through the roof. Some of them have tanked. We're all over the place in value, so these are like really old. That's going to you. Next person up is Boro057. We have to remove the Azelith from here. I just knew that I, I really needed that card for a certain deck and I, um, I'm not happy what I did. I went to target.
I went to target and I was just randomly pulling cards, hoping to get the card before I went to a tournament. Yeah. It was, it was not a good look. I had a problem back in the day. Yeah. Yeah, all right, so that was removed. We got, this next one up is for Borough 057. Let's go ahead and run again. Now it's gonna be out of 57. 27, let's see what that was. 27 was Palkia, nice, Palkia coming your way. Beautiful, gonna update it on my end here. Oh all these channel points folks all these channel points All right next one will be out of 56 And this one is for Gaming Zeke the Caddo gaming Zeke the Caddo this one's for you Five Oh, what do we got? Oh, nice. This is a this is a dope card is a dope card.
You got the the the the two piece card, the legendary bottom. Oh, congrats on that card. That's that's that's a hard card to come by these days. Wow. And you know what? You know what? Know what? Can't split them. Can't split them. Can't can't do it. Can't do it. Can't split I can't I can't I can't split them up, you know? Boom. You're getting both you're getting the top and the bottom. That's like, that's really expensive cards.
You're getting both, both coming your way. Well done, well done. Soup Sheep, this one, next one is for you. Soup Sheep, this is for you and we are at 54. Soup Sheep out of 54 and then we got one more to do and then we're gonna get back to regular programming here. 40, what do we got on 40 here? Ooh, Litwick, Litwick coming your way, soup sheep. Litwick coming your way. And I got a bunch of new cards coming in soon. Not yet, but maybe we'll add some soon. Litwick. All right, and last one this evening this is for brian bud brian bud this is for you Uh, this is out of 53 now Boom 31. What do you got? What do you got coming your way? Oh a rushy ram is one of my favorite cards too rushy ram coming your way You Beautiful and that concludes our Pokemon drawings today Thank you everyone for for gaining so many channel points You don't get that many channel points unless you unless you're hanging out folks.
So thank you and delete that boom Boy got t-shirts coming for pizza sweeper We got Sebastian with the fire portfolio. We got Pokemon cards going out. We're just getting started, folks. Just getting started. All righty. Last, we have some other updates just while we're here. We have a new channel. We used to have a private LBGT channel. We have Sunset at that channel is now archived and we now have a public one. So feel free to start joining that channel to hang out and we have some other stuff that'll be happening soon on Discord as well. So over the next couple of weeks, we'll see a couple of new channels. We're starting with that one as promised. So get in there, have some fun and yeah, we'll have some other updates for Discord next week too. Alrighty, big news. Big news, we're not gonna do the music for this one.
It's big news because it's something I've been working on for a very long time. It's something that we started the idea of last time this cohort and the big news is that we're ready to start the agency. We're ready to start the agency. It's been a long time coming. It's been something that I've been working on for a long time with so many different folks that need to kind of make the do this right. Long-term goal is to have an agency component to a hundred devs to add validity to the program, but to do a lot of other things. Why? Why start an agency? Why have an agency a part of this? Well, I believe super, super deeply that education should be free, but I also believe that education should be stipend it, meaning that you should be able to make money while you are learning. And I think education should be practical. An agency gets us closer to a couple of these goals. Everything I do, you know, will be 100% free. I'll never put any of my content behind a paywall. None of that nonsense.
But I know folks can get clients. And so that's one way you can make money when you're going through this program. But we also have a lot of folks that have been reaching out that want to build larger projects that are looking for engineers that come to me and they say, hey, Leon, can you help me build this project? And before I used to say, not yet, not now, not yet, got too much stuff going on. But now the answer is gonna be yes. And the idea is to build an agency completely in the open. So everything will be in the open. All the work will be in the open. The clients will be in the open. The money coming in will be open. The goal is to be able to work on stuff for clients, but as an educational tool, right? So the way it will work is that we will have clients come in. we'll break those tasks down into smaller tasks. Then you can contribute to those tasks. And then at the end, the project will be broken up.
However much money came in, will be broken up to the folks that contributed. And nobody's ever really done this before. It's not something that like, there's a path that we can follow. So we're gonna try it. It's never been done. We're gonna try it. We're gonna see how it works. It may all flounder, but at least we'll do in the open. and it will be a path for other folks that might wanna try to do something the same. And then it also accomplishes this goal of being practical. I want folks to be able to have real development experience. I want you to have worked with real clients, for real clients, building real projects that have meat behind them, that have deadlines behind them. And so the goal of the agency is to do all of that. So we're working really hard on it. You're gonna start seeing things pop up starting next week.
Our agency site's gonna go live. We're going to start bringing in the first few clients that have been asking to work with us. We're going to start seeing those, those agency projects get broken down into smaller pieces. We're going to start seeing tickets that you can work on. And eventually in the long run, I think it would be a really cool way for folks to not only get practical experience, but a little bit of money too, as you're going through a learning experience. So lots of little things to cover, lots of little things to get through. But I want you to know like the big things that I'm working on and this is one of them. All right, cool. Education should be free. It should be more than just free. It should be paid and it should be practical. I think the agency solves all of this. Yeah, cool. A little bit about, yeah, I kind of talked about this a little bit already, but everything will be done in the open. Uh, there's, there's, there's kind of like building and working in open, but I believe a company could also be built completely in the open.
And so, uh, you'll start seeing me doing streams that aren't just class, but like, oh, if we're working on a client project, we should probably build that client project live, right? Let people be able to see it. I want, I want real projects to be out there that you can see, that you can look at the code that you can touch and understand and feel like, I feel like there's this gap between bootcamp projects and real projects. and nobody actually ever shares real projects. And so why not do those live? Why not work on those projects live? Why not find clients that want the clout as we're working through stuff live on Twitch that we're sharing on Twitter, right? And then at the end, people that wanna work with real clients can look and see, all right, here's the proposal Leon sent. Here's the contract that was signed. And here is the code that was written. How did they do this? How did they set up emailing? How did they, all that in the open. And it's not gonna just be me. We're gonna bring in a lot of folks that wanna work on this.
Anonymous, hey, thank you for the gifted subs. Don't know who you are, but thank you for being here. And KCN-, hey, thank you for the five gifted subs as well. Thank you for being here. And so really trying to do this in the open, have all the code open, have everything so that when somebody says, I wanna work with real clients, they have real examples. There's no examples out there. It's just really not out there. And so I'm hoping that this is a really strong educational tool, something that gets people excited to build, something that gets people excited to maybe get clients of their own and then have some references. When somebody says, I want to see what a Shopify site looks like that's in production. Well, boom, maybe the agency built one, right. Or when somebody says, I want to see what a static website for a restaurant looks like, boom, it's all in the open. And so that's, that's the idea. And we'll recruit folks that hopefully want to join the stream team and work on projects that you can see, not just me working on these things, but a whole slew of other folks working on stuff. We're also releasing the blog. So part of the agency site is a blog.
Uh, Blah is going to be leading the helm with getting our, our blog. We write so much wonderful content, um, that we really want all that in one central place. So I think the agency is gonna be a lot of fun. I think it could be a really good educational tool, really strong practical tool. I think it could be something that can put a little bit of money in folks' pockets as they're learning. Um, but more importantly, I think it gives you real world experience, uh, that you can put on your resume that you can say, you know what I, when, when the agencies, when the client site goes live and you see that wonderful button, he'd be like, you know what? I built that fucking button. Yeah. So that's the idea. Um, the idea is to, to do all this in the open, to build a small, yeah, a small army of folks that are crushing tickets, contributing to projects and, um, getting real world experience and then leaving a, a trail of work that others that are interested in doing the same thing could follow. That's the idea, that's what I'm gonna be working on. That's what we're gonna be doing together live. And I hope that you all are excited as you start to learn more, to contribute to these tickets and have some good things come your way. Cool. Like the biggest news I've been holding in for a long time.
I'm really excited. Speaking of stream team, I'm gonna say it again. We got the best folks here that are just popping off to help support you to help you learn Hundreds of you came through with hello. It's Rufio before class If you're if you're trying to do something a little bit before class, you should join Rufio streams We also have the wolf pack in the house Look at all of this wonderful content that mind wolf has given up their time To help you all to do review when you see when you see hard work That's being assigned for homework. There's probably a good chance. The wolf pack is gonna be doing it live and so Mine wolf did the push work yesterday, which was that code wars ladder? Please if you if you haven't looked at all the wonderful content that my wolf is put out there click the link see all the past work and Make sure you join them live and you say well Leon, how can I join them live? How do I know when the wolf pack is going live? How do I know when hello? It's Rufio is going live. Well Now, once you agree to the rules and join 100 devs on Discord, remember, if you have a gray name on Discord, you haven't unlocked all the channels yet. You want to go to the join 100 devs channel. You want to click the emojis. And when you click those emojis, you're going to see a bunch of other channels open up. In the 100 dev section is this lovely stream team.
It's at the top. If you click on it, you right click on it. Sorry, you click on it, you can see notification settings. Change it to all messages. Whenever somebody on the stream team goes live, you'll get a little notification. We only do it when we're going live, only when we're doing it with coding stuff that's gonna help you learn or be a place where you can work together. And so just go ahead, turn it on so you get the notifications you don't miss when the Wolfpack goes live, all right? Beautiful. When do we get more emotes? We got so many emote slots. I got, we gotta, we gotta, I gotta hire another artist to help with them, you know? Cool. And the newest member of our stream team, first stream tomorrow, 11 a.m. Eastern time. Fox is going live.
I know we've rated them once before. A lot of folks have been already hanging out there. Amazing, amazing member of the 100 devs community. And they really want to do work together streams co-working streams where if you're working on stuff specifically 100 dev stuff you can come not do it alone hang out have some fun and They they like to stream larger blocks of time where it's just working together. So you ever feel a little lonely I know when I'm coding sometimes I'm like, I just wish I could code with others and that's why I hang out on twitch so much Box is there tomorrow 11 a.m. You'll see me send out a message But if you know, you're just gonna be working come hang out work together To dime said mine wolf is the best learn so much watching their streams. I agree. They're amazing already folks We need to get into some review. We had lots of exciting stuff. Oh my gosh project winners Pokemon card winners Agencies coming to fruition. Finally, it's been so it's been a dream mine for so long coming to fruition We have the stream team taken over Can we just stop for a second? You know how hard it is to grow on Twitch? And the fact that we have so many members of the stream team pulling hundreds of folks, that's wild, that's wild to me. We're taking over. So, really excited, I'm really happy that you're all here.
I really appreciate each and every single one of you that show up for class, that show up to keep pushing yourself, that haven't given up on the learning journey, that are here to be here to unlock that career as a software engineer. I'm excited you're here. We're gonna take our break cause we're at the top of the hour. When we come back, we're finna make some nerds angry. We're gonna review OOP. We're gonna build some classes together and then we should still have like an hour left over. We're gonna do a project night. We're gonna build a project together. You're gonna review OOP together. This is a community folks. It's a community. We're all gonna get there together. So let's go ahead and take our break. If you're new, we like to do top of the hour breaks, five minutes on a timer. If you're able, please get up, move around, hydrate.
And we'll be back in five minutes. Y'all the best. You You You You Papa John's wants to smoke. They stay advertising on this stream. It's wild. It is wasting their money. It's wasting there. You know what? I love the Papa John ads Love them because they know we ain't buying no Papa John's is a domino stream. What are you doing? All right, folks. Come on back Box hey, thank you for the hydration cheers to you Excited for your stream tomorrow first stream is part of the stream team An ad for a coding diploma what and people just be burning dollars burning money all right come on back folks come on back all right I would love to get in some review and and then we're gonna have some time left over for coming together to work in the best way possible as 100 devs. So, as always, this is meant to be, when we're learning OOP, we are learning it in real words, no big words, because big words I treat as disrespect. And so we're gonna go through this review, we're gonna get rid of the big words, we're gonna use the knowledge we've gathered over the past two OOP classes to review, to build out some classes together, to think through the big four pillars of OOP, and then we're going to do it together in small teams. Indifferent, you got to get that coding diploma.
Oh, that is such a meme gift, such a meme gift. I'm getting you one, but you're going to get one in your inbox in different ghosts. Oh boy. Oh, what a joke. Wow, what a joke Why are they like? Gosh, so so wild It's so wild People out here just scheming and scamming come on So wild All right We're not using any of the big fancy words. We're not using any of the dusty textbooks Right. We're not using any of the dusty textbooks. We're going to use language that actually makes sense and it's going to make the nerds angry they spent four years on their CS degrees and they have these big fancy words to describe stuff that we can describe in plain English now know as we continue on in our coding journey right and continue on in our coding journey we'll add more nuance we'll add some more sugar on top but we're going to make it at least a little bit of palatable right now. All right. Big weenie energy. Big weenie energy. Exactly. Exactly. All right, chat.
What are objects? What are objects? They hang everything. Objects are everything. And as we start to really understand objects, we start to see how they impact OOP, right? So what are objects? Objects are collections of variables and functions, but we call those variables tied to objects properties, and we call those functions methods. Beautiful. We can think of physical objects. We always like to think of something like a stopwatch, has properties like color, shape, brand. It also has methods like start, stop, reset. Beautiful. We can use our classes as like a giant factory spitting out objects. Our classes have a lovely constructor and methods that any object that comes out of that class will have. Cool.
So we can see here we're creating a new car and the car that comes out of this class, the object that comes out of this class will have a make, model, and color properties, but it'll also have honk and lock methods. Beautiful. But why? What was the reason that we need to use objects? Why would we need these classes and constructors to spit out more objects? Well, what if there was a system? Nay, a paradigm, nay, a set of rules, agreed upon way to structure our code that gave us a couple really key things. What if this system made it easier for us to add new stuff? What if this system made it easier to read through what was already coded? And what if you can make changes that you were not afraid? We're not going to do that. We're not going to do the sounds today. I don't want to, we've done the sounds too much. We were just a chill stream. We did the chill stream.
That's OOP baby. That's OOP. Yeah, that's OOP. We've had our fun. We've had our fun. That's OOP, right? Object oriented program. Exactly, with the first time chat. Polymorphism, encapsulation, heritage, abstraction. Exactly. Let's talk about it. Let's talk about it. What if we wanted to fuse our data and functionality into one thing? So when we were writing our programs, up until we got into OOP, or object oriented programming, our data was all over the place in variables and our functionality was all over the place in functions. And yes, we might be reading our files top to bottom, but there is nothing that brought together that data and that functionality.
It can actually cause a lot of problems, right? If your data and functionality is not together, you're really afraid that someone further down in the program might make changes. We are all now part of an agency. We're all gonna have to work together. We wanna make sure that when we make changes, we're doing it in the right spot. When we make changes, we wanna be able to read all the code that's been written before. So it's really important that we can fuse our data and functionality into one thing. And that thing is an object. So we've been using objects, but they're really important because they give us a structure to fuse that data and functionality into one thing, the thing being the object. And that is called encapsulation, right? Bringing our variables that were all in the ether, our functions that were all in the ether and tying them up into one object. The object is the thing that makes us be able to do that. and when we fuse that data and functionality together, we get encapsulation. Encapsulation is a process of storing functions with their data into one thing. So we have functions that we all know, we have data that's in our variables that we all know, and we put together into one thing, and that's an object.
That's all we mean by encapsulation, just bringing our variables together, bringing our functions together, and putting it into one thing. No sound, no, we're just not doing the wildness tonight. We just want to get a quick review in so we can get to project night. No. All right. What if we wanted to hide unnecessary details? What if we wanted to separate out all the complex bits of our programs, right? Our programs are gonna have lots of different individual pieces. What if we could separate them into different places and only work on the things that we cared about at that time. When we join the agency, we wanna be able to just to work on one thing. Well, what could we do that would help us hide the unnecessary, help manage our complexity by enabling us to work on just one thing at a time? Well, what if we could break it into smaller, more manageable pieces of code? We have this wild code base. What if we could break it down to smaller more magical pieces of code do stuff once Right if we're driving a car Right. We're driving a car.
We've built out a whole engine if we're gonna build another car Do we have to rebuild a whole new engine? No We already know how to build an engine and if we already know how to build an engine and we want to fix the steering wheel do I care about the engine no I don't care about the if I want to fix the steering wheel I just want to focus on the steering wheel right focus on the steering wheel of the car I don't have to care about the engine I want to be able to add the new buttons on the steering wheel and not lose sleep at night worrying about the engine so what if there was a way to make our our code into more manageable pieces of code separating the engine from the steering wheel what if we could We just do stuff once, right? Once we build the engine, we don't have to do it again. Once we build the steering wheel, we don't have to do it again. Well, that's all abstraction, baby. I love to see it. I love that so many of you knew what we were getting out to before we hit it. And this encapsulation and this abstraction, they work together. These pillars all support each other. Beautiful. With abstraction, we can hide details and just show essentials. It makes our code more simple, predictable, manageable. Now, we put in all this work to building well-encapsulated, well-abstracted objects. What if there was a way to create new objects based on old ones, right? We could keep our code drier, right?
Any new objects we wanted to create, What if we could base them on old ones? We could eliminate a whole bunch of redundant code. If we could just make new objects based on old ones, we wouldn't have to constantly retype things, rebuild things, redo things. And so. With inheritance, we can do that inheritance enables us in plain language to create new objects based on old ones, that's all it is. It's all inheritance is, is the ability to create new objects based on old ones. All right. The way we do that is we can make a class from another class that shares the same set of properties and methods, right? So we look at our objects and we can create new objects that have the same sets of properties and methods. We can extend one class to another exactly. Trust fund. And last but not least, what if there was a piece of code that automagically worked with a bunch of different objects? Right, what if we could write code that automagically worked with all the different objects that we are creating? instead of messy, disgusting conditionals and switch cases, instead of having to write conditional logic and then hoping that we remember to update that conditional logic when we create new objects. What if there is a way that our code just worked with any of the new objects we created?
Well, that's polymorphism, baby. With polymorphism, we can write code that automagically works with all the different objects that we are creating. So I hope you're noticing that these are some pretty plain language examples, create new objects based on old ones, piece of code that works with a bunch of different objects. And I hope you get these into your brain because that's all it really is. Cool. So those are the big four, the four pillars. What if they actually made sense, right? So the goal is to keep, we had two classes on it. We keep reinforcing these kind of simpler definitions, these simpler examples, right? But I wanna know the reason why. One more time, the reason why for each one of these examples. Well, encapsulation, right, is the process of bringing our functions and our properties to get our properties and methods into one object. The fusion of our data and functionality. But why the heck do we need to fuse our data and our functionality? Well, it makes it easier for us to add new stuff.
If all of our data and functionality is in one spot, we know where to go to add new stuff. If we have an object that's all about a car and we want to add new features to that car, we know exactly where to go. We don't need to go digging through the rest of our code. We go to the one object where we're messing with the car. Encapsulation brings that data and functionality into one spot. And once you have that data and functionality in one spot, but it makes it easier to add new stuff. Then it also makes it easier to read through what was already coded. We know all the data and functionality are in the same spot. I don't have to read a hundred lines down, a thousand lines down. I know if I care about the car, I go to that object and I can see everything that's involved with that car. And, since all of our data and functionality are in the same spot, we're not afraid to make changes. We know that the data we change will work well with the functionality that's all part of one object. Cool. Abstraction. Hiding the details, showing essentials, but why?
Why? Why? What is the reason that we need abstraction? Well, it makes it so that our code is smaller and more manageable. We can split up the complexity of a large software project into more manageable parts. If I'm going to build a bunch of cars, I can just build my engine once and never have to worry about the engine while I'm working on the steering wheel or i'm working on the transmission or i'm working on the wheels i know that the engine is fine by itself and the changes i make on the wheels aren't going to affect the engine it makes it so that we don't have to worry about that every single time we want to work on a different portion of the car And we can make changes and still sleep at night. I know when I inflate the tires from 39 to 40, that I don't have to worry about the engine doing something weird. When I'm focusing just on the tires and I inflate the tires and extra PSI go up by one, I don't worry what's happening in the engine. When I inflate the tires, I don't worry what's happening with the steering wheel. The steering wheel, the tires, the engine and they're all abstracted. If we are engineers working on a car, we can work on each individual piece and not lose sleep at night. We can know, we can go home at night knowing that that extra one PSI of pressure is not going to do something to the engine. Cool. Inheritance, making a class from another class to share a set of properties and methods. But why?
Why is inheritance important? Why is this idea of making a class from another class to get properties and methods important? Why do we need to do this? Well, it can help you eliminate redundant code. if we are inheriting stuff from other classes. If we've already made a bunch of properties and methods on one class, we can inherit those properties and not have to type them all out again. It saves us a lot of time. It saves us a lot of writing of code. We can get more specialized objects, but not lose everything else. So it helps us eliminate redundancy, but also saves us a lot of time. and we don't have to rewrite code over and over again. Great. Last of the four pillars, polymorphism, a piece of code that automagically works with a bunch of different objects. Piece of code that automagically works with a bunch of different objects, but why? Why does this matter?
What was the reason? Why does polymorphism exist? Well, it helps you avoid if else and switch cases. It helps you write code That's gonna work naturally with all the objects that you create that way You don't have to worry about having to update Different pieces of your code as you start working with new objects You know that your objects are gonna work with the code that you write and you don't lose sleep You don't have to constantly be worried that if I make a change here, something's gonna break over there cool. It makes your code more reusable. We don't have to constantly worry about creating new bits or bobs to support the new things that we create. The code that we create is going to work everywhere and it's going to work well. And polymorphism helps support the other pillars and all these pillars work together and so I want to see that in action. I want to see us working on these four pillars and I want to see the four pillars come together by building some classes. So we have a little bit of a coding challenge to do together called let's build an agency. And so what I wanna do here is I want you to build a class. A contractor class. And then I want you to extend that contractor class into two other classes. A front end engineer class and a back end engineer class. So front end and back end, right?
So he's already delegating the work. Exactly. So I want you to build a contractor class and then extend it into a front-end and back-end class. We have our lovely starter code today called objects practice and in the JavaScript file, you'll notice, whoopsie daisy, I already have it finished. Whoopsie daisy, it's already finished. So what I want you to do is highlight it all, comment it out, and pretend it's not there. But if you need to take a peek, you need to take a peek. You can rest easy knowing that it's right there. So I want you to go ahead. I want you to take, we're going to put eight minutes on the clock and put eight minutes on the clock. I want you to try building out the contractor class, the front-end and back-end engineering class, and then we're gonna go over it together. And when we're done going it over together, we're gonna move into our project night. All right, eight minutes on the clock. You got this, dig deep. You get stuck, it's already there for you, right?
But put into practice the things that we learned about, Right put into practice the things we learned about as you're building out your class. Think about encapsulation as you are Building out the properties in your class. Think about abstraction as you are extending your classes think about inheritance and then if you have a little bit of time give me an example of Polymorphism with all the classes that you all the objects that you could create but I don't think we'll get there in eight minutes We'll do that together All right, folks. You got this eight minutes on the clock Boom. If you need the materials, they are on Discord in the follow along materials channel. We're doing the objects practice file in class 32. to. You got this folks. Try it out put into practice the things that we've been covering Uh the materials in the follow-on materials channel it wasn't tied to the actual post I posted it like right underneath of it And we're going to go over everything together. Thank you. Might have to use ES6 shortcuts, go for it, knock yourself out, that's dope. This is class 32. What are ES6 shortcuts? They're just slightly different ways of doing stuff with the newer syntax of JavaScript. That's something to worry about, but somebody asked if they could use those things.
We'll eventually get into more of them as we continue on in the course Apple juice, do you write code? Do you understand the concepts behind your code then? You already are one no worries Uh pi feel free to use the names that you care about but i'll be using the word contractor, yeah Mars we'll go over it in a few seconds. Yeah, let's play it then No worries clue Stark month over month Kato, I think it's cool too. Janice, is it an extension of front or is it an extension of contractor? Think of it as like your parent and siblings. You wouldn't extend a sibling from a sibling. Zacharino try it out, that's so fun. Goofer I do and I do. I got mine for 300 bucks though Oh gee, no, because I don't want people to give me money and I don't care to have a board to report to either. Miki, no plans yet Never too late to join this one Catch up Cruz here to support you Richard hey congrats on the first try Bumpy I got you when we go over it Caesar, you could either pass for right now and say, Hey, I'd be open to talking in like three months time or do a crash course on react and take the interview. It's up to you. I'm a big fan of saying, Hey, I'm not open to new opportunities right now, but give me three months and happy to talk then yep we're covering git on monday Yoda I'm gonna learn react here. Yep. We're gonna cover react towards the end Con value can be anything can be something that they're into a hobby of There's doesn't have to be code related.
They like coffee. Talk about coffee. All right, folks, come on back. Come on back. Let's take a look at this together. Mary, I'm so dev. Hey, welcome. Thanks for joining us. All right, folks, let's take a look at this. Will we cover how to make logins? Of course, once we get the backend. All right, I had a latte earlier, pretty good. Hey, let's go. Alrighty, so let's go ahead and build this out together. I wanna start with a parent class and my idea is that we're building an agency here.
So we need to keep track of all the different people the agency. So everyone will be a contractor at the agency and then we will have different folks that specialize in different things. So let's go ahead and set up our first class which is the contractor. So we'll have a class of contractor and that opens and closes. I made a mistake. What's the mistake I made? I always do this every single time. Yeah what's the mistake here? Yeah, you don't need the parentheses with a class. Get out of here. All right, so we got a lovely contractor class. And the first thing inside the contractor class will be our constructor. And our constructor, we're gonna have, what are some things that our contractors might have? What are some things that our contractor might have? Name, title, skills, I like that.
I like that, yeah. Cool. I like name, I see name, role, rate. I like that, let's do name and role. So we'll do this.name equals name, and we'll do, whoop, And we'll go ahead and do this.role equals role. And we're gonna need the parameters for this. So we'll need name and we'll need role. Cool. So now when we create an object using this constructor, it'll have a name and a role. And this could work, but I think we learned about something that could maybe help us out here as well. Yeah, we learned about those underscores. So let's go ahead and let's just create a contractor real quick. Let's create a contractor, let's call them Moshi for now. Let Moshi equal, and we'll say new contractor. And we're gonna pass in the name of the machine and their role is front-end, right?
So they're a front-end developer, cool. Let's save this real quick and let's see what we get when we open this in the browser. Open in the browser. Let's forget that it's the Frigidon logo. And let's ask for Moshi in the console. When we ask for Moshi, we get a contractor name of the machine and we get a role of front end. Right? So we can see that Moshi is a contractor that has the name of the machine and has the role of front end. However, let's say we got a new HR person at the agency. Right? We got a new HR person at the agency and they realized that Moshi goes by Moshi and not the machine, right? So the HR person thinking that they're doing something good goes in and does Moshi.name and sets it equal to Moshi. Great, now if we ask for Moshi back, we can see that the name has been updated. it. Why might this be a bad idea?
Why might we need to fire HR? Why? What is this here? What is this? We're not HR, but we might need to fire some engineers, right? What happened? What's bad about this? Because Toby sucks. It's not abstracted. If anyone on our team and can just come in and start changing properties and stuff willy-nilly, how can we ever sleep at night knowing that at any point in the future, someone could change something so fundamental as a name, right, anyone can mess with it exactly. So we really want to be able to abstract out the name and abstract out the role so that someone doesn't accidentally mess with it later on, right, someone doesn't accidentally mess with it later on. And so let's go back to our code. Is there a way that we could make it so that when we create a contractor, HR can't go in and mess up the names? Yeah, Brooke Leak just said underscore. Yeah, we can use underscores.
So we can do underscore name, underscore role. And now when we pass in the machine, the machine is going into name. So wherever we see name is the machine, but it's no longer tied to name, it's tied to underscore name. That'll be the property on our object will be underscore name. And then front end, we'll go into role and we'll wind up having underscore role with the value of front end, right? With front end. So let's go ahead and save this, right? And let's go ahead and see what the heck is going on. Let's go ahead and see what's going on. All right, let's try this again now. Let's save this, let's go back. And let's go ahead and call Moshi again. Beautiful, we have Moshi, right? And now let's see if HR can go in and mess with the name. Cool, we did that.
We go and we ask for Moshi.name. Wait a minute, they can still change it. What the heck's going on? I thought we said if we use the underscores that it would do something. then. What? Huh? Huh? You all said in chat, underscore. Yeah, I'm not using a getter. Not using a getter. We gotta do a getter. Let's go ahead and do get. And we'll say name. And we're gonna return this.underscore name.
Beautiful. Beautiful, this underscore name, beautiful. So now when we do it and we ask for the name, this lovely getter is what's gonna go ahead and get the name. And it's gonna go ahead and get our underscore name. So let's go ahead and save this. Let's go back to our site now and see if HR can be a baddie. All right, so we asked for Moshi. We can see that Moshi has the name of the machine. If I do Moshi.name equals Moshi, not the machine, and I ask for Moshi back, we can still see that the name of Moshi is still the machine. Tina works in HR. And we can still see that the name is the machine. So HR can go wild trying to change the name and nothing's gonna happen to the actual object. It's been abstracted away. We're not gonna mess with it, which makes our lives as engineers a little bit easier because we know that we can be working on stuff and not messing up the objects that we've already created. Cool.
Beautiful. Now, let's go ahead and let's do something that's a little forbidden. Let's do something a little forbidden. All right, what if we did, what if we did Moshi.underscoreName equals doggo, right? What if we did underscoreName equals doggo? All right, what if we did that? Now when we ask for Moshi, we can see that the name's been changed. Wait a minute, hold up, Leon. He said we use the underscore and we use the getter What's going on here? So we can see that if you do change the underscore name where it catch me outside Do you know? Catch me outside She made 50 million dollars 50 million dollars off of OF 50 million. I'm fucking up. That's all I gotta say. And it's your fault. Y'all have not gotten to the million channel points for me to unlock my OF and I'm actually kind of just mad at y'all because I'm fucking up now and it's your fault.
Somebody get to the million channel points, unlock the only fans. I can't wait. Can't wait. I'm hiring a really good tasteful photographer. We're gonna have lots of, it's gonna be a full shoot. Can't wait. Somebody get me there. All right. So wait a minute, we said, wait, wait, whoa, whoa, whoa, wait, let's go back and look at this code. Wait a minute, you said Leon. This underscore makes it private, right? So that like, we don't mess with it. Well, wait a minute. Does the underscore actually do anything, chat? does it do anything special?
Nah, not really doing anything special, but it's a convention. It's something that we're going to agree to, that whenever we see an underscore, don't fucking touch it. Don't touch it. So when you join the agency, you will get a coding guide, a set of documentation that describes our style and how we write code. And one of the lines in that style guide will be, if you ever see an underscore for a property, you don't touch it. That's private. You shouldn't mess with it. If you do mess with it, you're gonna be talking to HR, right? So we agree, don't touch. And then we only access it through our getter. So this makes our code nice, nicely encapsulated. We got our properties here, but what about some functionality? What's some functionality that we can add here? What do we want our contractor to be able to do? do work, say hello.
Yeah, let's do say hello. So we want all of our contractors to be friendly and be able to say hello. And so we want our contractor to be able to say hello. So we can say, let's just put a console log here. Console log, console log, we'll say, we'll do ticks. We can use a template string, we say, hello. Hello, my name is, and we can use our template string here. We can say this.underscore name, and I'm on the, and we can go ahead and do this.underscore role, and we'll do team. There we go. Hello, my name is blank and I am on the blank team. Looking good. We forgot something so far. What have we forgotten so far? Sorry, yes, we shouldn't be saying OF anymore. We should be saying blip now.
We're making a blip account, not an OF account. We're supporting VapeJuice and True. Yeah, we need a getter for our role. Exactly, so let's go and do a getter for our role. Get role, return this underscore role, beautiful. And so we're looking good here. We have a getter for our name, a getter for our role. We have a say hello, our data, in this case, name and role is nicely encapsulated with our functionality, which is say hello. All right, which is say hello. And if we go ahead and save this and run it, we should be able to see it working. So let's go ahead and ask for Moshi back. We can see it's a contractor. They have a name, the machine, they have a role of front end. If we do Moshi dot say hello, you get hello, my name is the machine, and I'm on the front end team. So it's working good.
Excuse me, excuse me, excuse me. Looking good. All right. I am the machine pleased to meet you. Okay, so we now have the ability to add contractors To our agency, which is feeling which is feeling pretty good Now we are gonna have different teams within the agency. We're gonna have a front-end team. We're gonna have a back-end team and so Let's go ahead and build out two more classes that enable us to extend this lovely this lovely a contractor class, right? And so I'm gonna go ahead and create, what type of teams do you think we should have? Well, I already said we have front end and back end teams. So let's go ahead and build a class for our front end team. Cool, Extendo, I got the Extendo, let's go. All right, so let's go and do class. We'll call it front for front end developers and we'll call it back for back end developers. which front to front, my baby, back to back, my baby. All right, so front extends contractor, cool.
And if I want inside of my constructor, right, inside of my constructor, I know I'm gonna have the name and role still, but if I wanna be able to use the name and role from contractor, what do I need? Super, yeah, we can do super, and we can pass in name and role. And so what super is gonna enable us to do is when front sees super, super is gonna be able to grab the values that are here in the constructor on the parent class. Class. This is a little bit of inheritance that stops us from having to do what? What does this little bit of inheritance stop us from needing to do? Yeah, it stops us from having to repeat code. I don't have to repeat giving a name and a role to any of my front-end developers, right? It makes it so that we're not repeating code. A little bit of inheritance can go a long way. Beautiful. So we inherited the name and role from our constructor class. But let's make it so that the front-end developers have something different. Front-end developers probably use some different technology than a back-end developer would use. So maybe we can have a new thing called technology.
Technology. Right, so I'm gonna call it, I'm gonna pass in a parameter of tech, and then I'm gonna do this dot underscore tech equals tech. So when I create a front end developer, I can pass in the technology that they're comfortable with, maybe like React, right? HTML, CSS, JavaScript, exactly. Cool. And then I want my front end to have some functionality, but before we get to the functionality, what do we gotta set up for this class? Before we add some functionality, what do we gotta set up? Yeah, we gotta set up our getter. Get tech, and we're gonna say, return this dot underscore, oop, this dot underscore tech. And so when they ask for tech, they'll get this dot underscore tech back. And let's add some functionality. I want them to have their own version of say hello so they're gonna have same they're gonna have their own version of say hello and I want that say hello to be kind of similar But I'm gonna make it say something a little bit different Hello, it's me Yeah, we can say hello, I am this.underscore name, and I work on the front end, beautiful. Cool, hello, it's me, California Dreamin', thought we used to be, sorry I gotta stop before you get copyrighted. Cool, hello, my name is Noe Matona, killed my father, prepare to die. Cool.
All right, looks good. I like that. Somebody said, what's happening on line 22? Line 22 is giving us access. Whenever you see super, that means go up a level, right? Means go up a level. So super enables us to get access to the properties here that were set on our parent class, right? Right? And so super just enables us to go up and yoink, grab this stuff so we don't have to repeat our code down here. It's that little bit of inheritance coming into play. Cool. For the underscore thing, can you use Octothorpe to make it private? Well, remember, is the underscore actually doing anything? Is the underscore doing anything? Is it special to JavaScript in any way?
Nah, it's a convention. And so different teams are gonna have different conventions. If you're joining our agency, the convention is the underscore and that means don't touch, right? But could you use a different one? Sure, all right. So we got our own kind of say hello. It's looking good, it's looking crispy. Let's create a new, let's create a, instead of doing a new contractor, let's do a new front-end developer. So we'll do front and we'll pass in the machine. We will pass in the role, which is front-end and we'll pass in the technology that they use, which is React. Cool. Let's go ahead and come back here. Let's refresh. Let's ask for Moshi. and now we can see Mashi is actually an object coming out of the front class.
You can see they have a name of the machine, a role of front end, and they have a tech of react. And something cool is if we do Mashi.sayHello, we can see we get that slightly different, we get that slightly different console log. Hello, I am the machine and I work on the front end. Beautiful. Am I using Mashi to test your code to make sure it's working correctly? Exactly, I'm just making sure that everything we're building out here is working. All right. So we are using super in the child classes to get the contract stuff that was built in the contractor class, exactly. All right, let's keep pushing. So now we have a front-end developer that extends contractor. Let's do the same thing for a back-end developer. So let's go ahead and I'm gonna copy and paste. Ugh, don't ever copy and paste, but we need to save some times here. All right, so now we're gonna make this back, which extends contractor. we still have the kind of new things that we added.
And I was going to change this say hello to back end. Cool, back end, back end. Now we could say, all right, Leon, well, shouldn't we have like, if we're building out the full agency, we might have some contractors and some contractors might be designers. Some contractors might be developers. So Leon shouldn't we have a developer class that inherits from contractor that then we could make Additional children classes or subclasses that are front and back end and if if you were asking that question, I would say heck Yeah, that sounds great. Seems like you're thinking in an object oriented way But we don't have time. So That's something that you might do tonight during the project night, oh Oh, who would have thought? Maybe doing some, oh, project, oh, who would have thought? But I'm glad you're thinking that way because that means you're thinking in an object-oriented way, beautiful. Make a junior class and ban anyone who uses it, exactly. All right, so now we got a backend of, we got a backend class, we got a frontend class, we got a contractor class. Now let's create another contractor here. Let Simba equal new, new back. And their name is Simba. And they are on the backend team.
And they use Node. Alright. Now we got two contractors. Let's see. Let's look at Moshi. Beautiful. A lovely a front end developer. We have Simba, whoop, not that. Come on now. We have Simba, what? Oh, why is it doing this to me? I don't care about SVG animated Boolean, what is this? No. All right, there we go. No, Simba's not defined.
Why would Simba not be defined? Why would Simba not be defined? If we look, Simba's right there. Why is Simba not defined? Because I didn't refresh. Let's go ahead and refresh. Let's try it again. Boom, gotcha. 13th try you, you got got. Don't forget folks, just because we're fancy now, just because we're fancy now, just because you're like Leon, you created a contractor class that's really just syntactical sugar on top of constructors. I see that you created your constructor with some lovely private properties here. When we see the underscore it means don't touch and to access those properties, we set up some getters that return those private properties. I saw that you have a lovely method here called sayHello that is using those private properties. And then I saw that you extended your parent class into a front and back class that still has access, still has access to the name and role or the properties that were defined in the parent class. I see you did that using the super keyword.
I saw that you still had some other private properties that you set up getters for. I saw that your say hello method was a little bit different on the front end and the back end classes. I saw that you did all that, right? I saw that you did all that. But you forgot the refresh. Just because we fancy now, just because we can read all this code, just because we can do all these cool things, just because we're object oriented, we're using OOP, you know me, in our day to day lives, doesn't mean that refreshing is beneath us. It happens. Cool. Should we merge tech into the parent? That's a good idea to bring to project night Good idea to big project night. All right We need to take a little bit of a break because we're at the top of the hour When we come back from break, we're going to quickly read through this again We're going to see a little bit of polymorphism Just a sprinkle of polymorphism. And then we're going to move into project night. You don't want to miss project night. So let's go ahead. We're at the top of the hour.
Let's take our break. When we come back, we're adding polymorphism into the mix here. We're walking through it one more time. We're going to see super again. We're going to see private again. We're going to talk through those things again. Right? And then we will add polymorphism and then we'll move into project night. We're going to go, hey, well, you can change that. You don't know how to code, but you can change it. Do explanation point 100 devs. Happy you're here. You found the right spot All right, folks five minutes on the clock here And you around here like to take breaks at the top of the hour to be healthy save our fingers our eyes We're in this for the long haul Marathon not a sprint. This is a career for the rest of our lives. I'll see you all in You You You You You Yeah, no worries, Jim.
Come on back, folks. Let's take a look at this together. All righty, boom, California dreaming about who we used to be when we were younger. All righty, come on back. Let's just review this quickly and then we will move into Project Night. All righty, so we saw some things here. Let's talk through it. What about this is encapsulation? What about this is encapsulation? Yeah, we got our methods and our properties in one spot. All right, we got our lovely methods, sorry, lovely properties and our lovely methods in one spot. We have fused our data and our functionality into one location. If we wanted to add more stuff about our contractor, do we know where to go? If we want to add more stuff about our contractor, do we know where to go? Yeah.
If we wanted to add more stuff about our front end developers or our back end developers, do we know where to go? Yeah. And if I wanted to work on my front end developer, Am I worried about messing with anything in my backend developer? Like if I just want to add a bunch of stuff to my front end developers, right? Like we got, we have a lot of, a lot of clients coming in that just need front end work. Can I just, can I just focus in on this front end developer? Do I, do I, if I make any changes in here, do I, do I worry about what's happening in the backend developer? No, even things like, even things that are shared, right? We have this super that gets shared up to the contractor, right? But, um, am I worried about that? What is that an example of? If I can make changes here, right? Make changes here, but not worry about it. Yeah, it's a form of abstraction, right? We're abstract, like encapsulation and abstraction are pretty closely related.
Right? So it's a form of abstraction. We also have another form of abstraction coming in happening here where we are making it so that individuals can access stuff, but they can't mess with stuff. We're giving them access, but making sure they can't mess with it. We're extracting out the complexity, the details, right? So there's an example there of abstraction as well. Nerds are shaking in their boots, right? Encapsulation can enable abstraction. Yeah, exactly. And so we have some examples of encapsulation. We have some examples of abstraction. What's an example of inheritance that's happening here? Yeah, we see the super. The super enables us to inherit the name and the roles properties from the contractor. And as stuff gets way more complex, we're gonna be inheriting more and more.
And that super enables us to go from the child class or the subclass into the parent class and get access to all that stuff without having to rewrite it down here. So you can imagine as our contractor gets bigger and bigger and that constructor gets meatier and meatier and there's more and more stuff there. There's more and more methods up there. Well, we get access to all of it because we're inheriting it, right? We're inheriting it. We could also do something like this. Let's say, say, buy. All right, let's do say bye console log has been a pleasure working with you. Right. Say bye. All right, let's save this. Let's go back. Let's go ahead and go to, let's refresh. Let's take a look at Simba. Let's do Simba dot say bye.
How the heck does Simba know how to say bye? Simba is a back-end engineer. Look at that. Simba's a back-end engineer. How do they know how to say goodbye? How do they know how to talk to clients? How do they know how to talk to clients? If we look, our back-end engineer doesn't have a say goodbye, right? How do they know how to say goodbye back to the dungeon? Exactly. Oh, cause back extends contractor. So that's another example of inheritance, right? We went up the prototype chain to get say bye. Cause remember this class stuff is a syntactical sugar on the prototype chain. Uh, Simba did not have say goodbye.
So it went up to the class constructor. Sorry to the class contractor and it got say bye. So another form of inheritance there, right? Beautiful. Cool. All right. So we got good examples of encapsulation. Some good examples of, Hey, Zeke the Cato. Hey, thank you for the five gifted subs. I appreciate that. Thank you for being here. So we got a lovely examples of encapsulation, abstraction, inheritance, but we still need to see a little bit example of polymorphism here. How about we have these lovely contractors. Let's go ahead and add them to an array. I want to have a list of all the contractors in the agency, right?
We're going to have all these different the contractors at the agency. So let's say agency list equal, and we have Moshi and we have Simba, right? So now we have an array, a list of all the folks that are at our agency. We have Moshi, Simba, and eventually we'll have a lot more folks. I wanna make sure that every person that works at this agency knows how to say hello. It's very important, right? It's very important that we make sure that all of our members of the agency know how to work well with clients. So, I could just like a simple for loop here and I could say, all right, we can just say like each person in the agency or each contractor in the agency, let's just say person cause it's a different word. And we can say each person of the agency list, right, each person of the agency list, I want each of those persons to say hello. So what this is going to do is it's going to loop through our agency list. So we can see our agency list has two contractors in it, Moshi and Simba. So this for loop should run two times. The first time person will be Moshi. and then the second time, the last time this loop runs, person will be Simba. And so if we save this and we go back, we go back, we can see that, hey, I am the machine and I work on the front end, and hello, I am Simba and I work on the back end.
So the say hello, the say hello worked on both Mashi and Simba. Moshi and Simba. Why the heck? These are completely different objects. One is a front end and one is a back end. Yet say hello works on both of them. What is that? Why does that work? Yeah, polymorphism exactly. It works by polymorphism and polymorphism makes it so that we can write some code and know that it works for all of our objects. We don't have to worry about having like a messy conditional or a switch case where we check to see if they're a front-end developer, and then we say one thing. We check to see if they're a back-end developer and says another thing. We just know that it's gonna run on every single object that we've created. And so polymorphism supports the other pillars so that we don't have to have this nasty code that we have to keep up to date. It just works.
What is person? Person is just a parameter, sorry, not a parameter. It's just a variable here. So instead of saying like, let I equal, we have this like fancier new syntax of doing for loop. So whatever I put here, I could put like robot unicorn and then robot unicorn will hold Moshi and Simba. And so then I have to change this to robot unicorn, right? So it's kind of like how we'd have I in our other for loops, like we would declare I, uh, well, robot unicorn is the variable that we're using. and then Robot Unicorn will hold each value that's inside of that array. And so same thing will work. We can save it, we can go back and refresh and we still get the same thing. Difference between foreign and for of objects and arrays. Yeah, it's an iterator. Yeah, I can think of it as an iterator, yeah. Cool. Alrighty.
Wonderful, wonderful folks, alrighty, so we covered a lot over the past two, three classes. A lot of really new, meaty topics, right? A lot of stuff that we could still probably play around with a little bit for a while. Can we extend, can we extend children into new children? Can we, can we make polymorphism do more? What happens if we drop the underscores? There's a lot of stuff that you need to explore, right? A lot of stuff that you need to explore and that you can have fun with and build, but exploring and building by yourself is boring, right? Who wants to build and explore by themselves? So we have a lovely group work or project night. And so we're not gonna do a raid. We're going to jump right on to Remo or we're going to jump on to discord. So if Remo doesn't work for you, you can jump on the discord. You'll notice on Remo, there are certain tables on each floor for chat only work. So we have some folks that don't really want to do video and voice.
You'll notice that there are two tables on each floor for chat only. So for folks that might have a little bit of anxiety of being on voice and being on video, you now have some chat only tables or folks that just don't have Mike or or camera. There'll be some chat only tables, so feel free to join one of those tables if that fits you. Otherwise, you'll see that there are two lovely Remo links. If Remo does not work for you, you can always jump on Discord. And so what I want you to is I want you to get into groups tonight. We got like 40 minutes left. We got like 40 minutes left. And so for these 40 minutes, I want you to get into a group and I want you to talk through some of the basics of OOP. I want you to come up with a parent class, extend that parent class into at least two children. I don't care what it is. It could be contractors, it could be espresso machines, it could be cars. And then once you've done that, Once you've built out together, the parent class, the children class, you should talk through encapsulation, extraction, inheritance, polymorphism, all the things that we covered together, talk through these things, explain them. If you are in a group with somebody that doesn't get it, make sure they get it. If you feel like you're light years ahead and you really understand OOP, take a chance and some time to explain it to others.
Your knowledge will solidify and you'll help somebody figure out a little bit more. So work together work collaboratively as always be kind if you if you say anything on Remo or discord It's not the kindest thing. You could say you're fucking up. You don't belong here And if somebody ever steps their boundaries, just let us know send us a mod mail. We're happy to deal with it. So Let's go ahead get together on Remo or discord talk through OOP build a parent class extended to two children Talk about how you're using encapsulation abstraction inheritance polymorphism. And if you have a little bit of time, feel free to maybe also discuss tic-tac-toe, but I think this will take up most of your time. So we're going to do that. Your homework, your homework due next week is to play, review, break the code we've gone over the past few classes. Make sure you're done your professional checklist. We have to get to async await and promises, but next week we start the hunt, right? We start the hunt. And so to start the hunt, I need you to have that professional checklist done. Yeah. Yeah, baby.
That's right. That's right. We going we're on the hunt So, please make sure you have your professional checklist done Uh, make sure uh that you know what you're doing in terms of getting the client We had that little bit of an extension So make sure you're either getting that paid client that volunteering or contributing the free software And we have a new code wars ladder for you. So you did an array ladder I want you to do a string ladder if you want to push that's push work Alrighty folks, let's jump over to Remo. We're not gonna do a raid. We're gonna jump right over to Remo or discord You're behind great join a table get caught up There your links Beautiful I'll see you all over there All right, everybody. Have a wonderful night. Have a wonderful weekend. Remember no stream on Sunday. Remember tomorrow We have Fox's first stream of the stream team starting at 11 a.m. I'll be there and then we're back on Monday for get bowl All right, folks. I will see you on discord. I will see you on Remo have a good night. Good luck working through your encapsulation abstraction your wonderful bits of Polymorphism and inheritance. Peace everybody
End of Transcript