Class 29: Review JavaScript Basics

Introduction

Let's go! Let's go! We back baby! We back! Let's go! Let's go! Oh Good morning. Good afternoon. Good evening. No matter where you're coming from. Hope you all are doing well. Welcome back. So excited to have you. You were truly and dearly missed. A week is too long folks.

It's too long. I hope you had some fun with the break I hope you're able to use it. However, you need it to use it if you need it that rest and relaxation I hope you got it if you're part of the ketchup crew and you were using it to get caught up with us live hope you used it and He did a little bit of a mix like me. Hope you had some fun I know a lot of folks are grinding out the code wars I keep a check on the clan, they see what people are doing. Some of y'all are wiling over the break. What'd y'all do? That's the question of the day. The question of the day is, did you do anything fun over your break? I was sick? No, no. Good to see you too. Sleep, Elden Ring. A lot of people played Elden Ring, I can see that. Family time, I like it. The 30 hour JS class, let's go.

All APIs all day, nice. Got a little bit of working out in. All right, I see you. Bought a house, hey, congrats. Birthday, congrats. So many folks were sick. I have a theory about this. I always used to get sick every year on Christmas break. Every year, all throughout college, all throughout my working life, every year, Christmas time, got sick. And I always thought it was, you got engaged? Hey, congrats, shrimp. I was convinced it was my body just saying, All right, we're gonna hold off until you take this break and then then you then you get got Okay, and so I I was afraid that that might happen to some folks with the break So if you did get sick Hope you're feeling better That's wild Clockwork said a friend and I got caught up study for multiple hours every day. What? Dro a congrats on being a dad. That's awesome Thank you'd like a mother.

Hey, I love it Learn to not get got and watch the wire. That's how you learn it Johnny. I got you at the end with the card three clients over break what Three clients are Rick. That's wild Are we grinding the Pokemon League tonight? Kinda kinda First tech convention, Kubernetes and GraphQL. That's awesome. This is cool. You're gonna have to give me a moment here. It's like seeing all my friends again. It's been too long. I feel like I was in school, like you don't talk to your friends for like a week or so back in the day. They all went on vacation or something. Now we're back. Potential first client, all right. All right.

Quit my terrible job, well congrats, got two clients, thank you Jesus Henley on A, I don't think we go on the same line there, ate some fries, had a good fun time, oh island, catching up three clients. Geez, ate some dominoes, two job offers. That's wild. Hey, glad you're all back. Glad to have you. Oh boy. You know what? We're already 2000 strong. Whenever we take a break, we always have a little bit of drop off. And so it's good to see the drop off. We're still above 2K. I love to see it. I have my worries. I hate that. I hate the do breaks because I know that when there's a chapter and some folks Peter off, but we're still above 2K baby.

Let's go. I love it. I love it. 2000 that I want a thousand devs. That's my internal goal. I haven't said that out loud, but I just said it. I didn't mean to say it, but I said it juggling biohazards. Hey, thank you for all the gift of subs. I appreciate it. I owe you a whisper. I saw it. I'll get back to you soon. Yeah, we had a hundred devs. That's not enough. I want, I want a thousand and I'm going to get me my thousand devs.

That's all I got to say. I want a thousand. I'm going to get, I wanted a hundred. I got a hundred now. I want a thousand and I'm gonna get a thousand you heard you heard I wanted a hundred what I do what I do when I said I wanted a hundred what I do. I got me a hundred Now I want a thousand. I want a thousand that means yes you you're here. I want you to get a job It's a hundred deaths. It'll always be called a hundred devs in spirit We got to keep that spirit alive, but know that I want a thousand. I want it. I can taste it. I can smell it. I can feel it. I want a thousand. Another one.

Exactly. Uh, we, we, we've been moving. I don't think we're close to a thousand yet. Uh, but we've been moving. I don't know if you all been in that celebrations channel or if You've been in the Twitters. People be getting jobs already, and I'm like, cool, that's neat. But yeah, that's been cool. And so I think that my goal is, because I get to peek underneath the hood a little bit. I get to peek underneath the hood a bit. One of my favorite, the things I wanna do, the thing I wanna do at the end of this cohort is release all the numbers. Like every bit of data that I have I want to put out there into the world Because I don't think there's enough data out there. I think a lot of boot camps like hold on to this data They're kind of like afraid to show it, but I want it all out there because we got some really impressive numbers, right? We got some really impressive numbers. And the only other person that I've ever seen do it like honestly was Was CS 50 their very first cohort they released it and I think that's really powerful to be able to see that data. And so one of the things that I keep a track of is like homework submissions, because I think that's the people that are really here, right?

We do have some folks that like, we're a public platform, we're on Twitch, we do have folks that come and see us. But when I look at the data, I'm able to see some interesting things. So very first class, we had what, like 7,400 people that showed up. Those are the tire kickers, right? The folks that come along. What is this bootcamp thing? Like, what is going on? But, but, yes! Booty Licker has returned. Booty Licker, hey, how you doing? Hope you're doing well. It's been a minute. Oh, I've missed you. I really have missed you. so I hope you're doing well.

Good to see you. That's awesome. Booty Lickers and OG folks, they've been around. Good to see you. I hope that you all come back and you know, next, when we do another cohort, probably gonna happen. I love to see you when folks come back. It makes my day. So I was talking about numbers real quick. So 7,400 tire kickers, not something I'm going to hold myself to first homework. How many people do you think submitted the first homework? Let's throw a guess in there. First homework. A little over 4k, a little over 4k. Yeah. A little over 4k first homework.

Second homework. 3,500. Right 3500. Right, so second homework we had about 3500 people that submitted the second homework, so that's kind of like my that's that's like my starting number. That's what I'm looking at, right? I'm looking at that 3500 is like my starting number and the fact that we're still at over 2K right after a break, which is always we always have people that take a little while to come back after the break. Uh, and so for me, this is, uh, this is pretty cool. And those numbers actually probably inflate a little bit. Cause we do have a lot of folks that follow along at their own pace. Right. So I actually kind of think the numbers we have now are represented the numbers that have been here since kind of the beginning we've definitely like, come on, don't let me toot my own horn. Like we, we definitely lost some folks, right. For sure. But they're not, they're not that bad. it's not that bad.

And that makes my day. It really does, because I'm always afraid to take breaks. When we looked at the last cohort, the breaks, that's always where folks dropped off. And so I wanted to start off with that, because if you are here, you are doing what thousands of other people have not been able to do, right? And I say this, But I really need this to be like in the back of your brain, right? That you are doing something that so many other folks set out to do, and they're not able to do it. I don't care how ahead or behind or on point you think you are by showing up. You are doing more than hundreds of thousands of other people that have set out to do the same thing have been able to do. So I think that's worthwhile to highlight, to celebrate that after a break, it felt, I know the break felt good. I know it felt good, but the show back up, they're ready to carry some more boats and some logs to keep putting in the work to go through the trough of sorrow. You might, you might've, you might've been able to like, you were in the swimming pool next to the trough of sorrow and you decided to jump back into the trough of sorrow. That's fucking impressive. There's not that that that that's that's built different as the kids say, right? Like you are built different for for you to have seen the pain. You know what it is now.

You know what the trough of sorrow you know what you're in for. And so to have an easy out, to be taken out of the trough of sorrow for a week, right? To be taken out of the trough of sorrow for a week, to feel good, to have some more free time, to be able to play the video games, to hang out with family more, and then to come back a week later and say, screw that good, comfortable feeling, I want to get in the trough of sorrow that's built different. Nobody, nobody ever can take that away from you ever. I don't care for the rest of your life, how things go. You made a decision to put away the comfort, to put away the things that felt good, to put away that free time, to take time away from your friends, your family, your loved ones from your hobbies and your interests and say, I want to be a software engineer. I want to get a job in tech and I'm going to do what it takes to get that job. That's huge. That's huge. Cause it's really easy to not click on Twitch. It's really easy to just disappear. We don't get got, we go get. So, I'm glad you're all back. I'm super happy to have you. We have a lot of stuff to get through tonight.

Some spicy review. We're gonna do a review tonight, but it's gonna be spicy. These problems, the first couple are okay. We're gonna keep it Pokemon themed tonight. So, the first gym that we're going into, the Boulder Gym, we're gonna be a little okay. When we get to that Cascade Gym, It's gonna get a little bit spice here. We make it to the Thunder Jim. Oh boy It's gonna it's gonna get it's gonna get up there, right? So there's when I say that we get to review in but before you enter the review I needed to say Y'all are built different. It takes a lot to come back from a break. You did it. So I'm happy you're here Alright, we got some fun stuff to get into, we're going to jump right into it. You're going to have to let me get spicy for a minute though, I got to talk about some stuff that happened. people get big mad it's every single time I teach people get big mad well especially especially when I talk about resumes like people get big mad I got three emails from people three saying that Leon you're contributing to the problem. You're leading people astray.

Oh no. Nah son. I got deets to prove it. I've been doing this longer than you. I've gotten more people into jobs than you. I've gotten more people to learn how to code than you. Nah son. This ain't my only gig. This ain't it. I've been in this game for 10 years. So you're gonna have to give me a second. I'm gonna get spicy in a second. Not right now. I got, I got a guy to get into. I got to get comfortable.

I got to get loose, but I don't, I don't respond to those emails. They're wild. And I get them all the time because people don't realize that there's a system in play and I don't give a fuck about that system. I'm here to get people jobs. I don't care about no companies. I don't care about the respect of my fellow engineers. I could give two shits what somebody sends to me in an email. I'm here to get people jobs and I'm fucking good at it. And I always like I was always go back to 50 cent. I always go back to 50 cent because I ain't here to play in the normal system. 50 cent has an amazing an amazing bar that always gets stuck in my mind and his bars were, listen, you got to get in here close. His bars were, I'm just a crook with a deal. If the record don't sell, I'm going to rob and steal. I don't care about the system. I don't care about people feeling some type of way about you calling yourself a software engineer.

You are all software engineers. You are all gonna get amazing jobs. And if the records don't sell I'm gonna do whatever I can to get you a job If I got to sing a different song, I got to sing a different tune. I got a rob and steal Guess what? I'm gonna do it Fuck it We go get we don't get got so I'm gonna get spicy gonna get spice I have to I have to Because because if I don't every once in a while, I think you might use a little you might lose a little faith So give me give me a moment to get spice a little bit later on but let's get into our stuff We got to get into, let me get loosened up a little bit here. We don't care if they agree. They just need to get out of our way. Hell yeah. Hell yeah. That's not financial advice. Y'all it's not financial advice. People just need to read more books. They don't read books enough anymore. All right. So we're going to talk about what's coming up.

I'm going to talk about what's coming up. We're going to talk about 100 devs and what it's going to look like over the next couple of weeks. People need to touch more grass. We're going to review the big four together. We got some spicy review with arrays and objects. We'll be looking at things like map, reduce, filter, things that we haven't seen in a while. And then if we have time, we'll touch on a little bit of objects, but I feel like this class might go a little bit over with the the two first reviews and then we'll probably just end there all right before we jump into it i always like to make sure i can answer some questions before we get started did you finally see batman now that it's streaming it's funny because we had a break and I didn't have time to watch it, but I hopefully I'll hopefully get to maybe this weekend. What did I do for the break? I got an analog pocket and I was playing some Pokemon Sapphire. That was that was like the thing I did for myself, but it takes like it takes like five days for my brain to realize that I'm on a break and it's very hard to not do work. So I really had like a two to three day break, but once I did hit it, I was feeling good. I was at Coachella. Nah, I wasn't Coachella. What's your opinion on reaching out to a potential client to be a subcontractor? Like you are going to subcontract out the work.

I do that all the time. I think it's one of the best things you can do. Did you get an Overwatch 2 beta key? I did not, but one of my students told me they got an extra for me. So hopefully I'll be able to use that. Can the U S hire someone from Iran? So there it's the, the, the way that we hire folks in the U S is really, really weird. Um, we have an H one B visa process, which is like one of the, one of the bigger ways to bring folks in. That process is scuffed to all bomb all beyond belief. I've gone through it two or three times with employees. It goes to raffles sometimes where like even if you have somebody that wants to hire you There might not be enough opportunity for you to come in. So it's a hard process Definitely something we'll talk about more as we get into The actual job hunt which we'll get to in like two weeks We'll have a full classes on the hunt and I'll answer all the questions as best as I know about getting hired especially from other countries Can you explain more about the 100 hours project? So we're getting, we're almost there. Pretty soon we're going to be start thinking about a lot of stuff that we're going to need for the hunt. And part of that is our 100 hours project.

It's a project where you sink a hundred hours into building something from scratch so that when you're in interviews, you're actually showing the interviewer a full project from beginning to end that you've built. Because I tell you folks coming out of bootcamps don't ever have it. They don't ever have something that's really there is that they didn't just follow a tutorial They didn't just copy it from somebody else in the bootcamp that has something that's truly your own It's something that helps you stand out in this process I have had contacts tell me about paid internships. There's something that people are taking on at this time I think it'd be pretty hard to do an internship and kind of program at the same time If it's a good internship, they're paying you well That's probably the better gig if if it has a guaranteed conversion to full-time. I never recommend Apprenticeships or internships that don't have a guarantee to full-time. It's just kind of a dead end And they always have to be paid never no paid Is a social media app hard to make in a hundred hours We'll do a version of Instagram together across like two classes, so like in six hours. And then part of your, like one of your team projects will be to build a social media app. So you'll do that in like six hours as well. So once, once I'm telling you, it seems so far away, it seems so hard to like right now the idea of like what the backend can be seems so distant and large, but it's not that hard. Once you understand APIs and you understand a little bit more glue, we're going to be building our own backends super quick. It's going to be pretty easy. I don't want to say easy. It's definitely difficult to understand. There's a lot to learn, but once you learn it, you're a beast. And I want that for you.

I like the moment people like there's like the biggest joy of being an educator is like seeing that moment when it clicks in people's brains that they can build the things that they want to build. Right? There's just a moment in all of my students journeys when they sit down and they go, oh, I want to build this. And they like, I can see it. Like I can see like all the gears. They're like, holy shit, I can build it. It's like, they get like, they get like sucked up. And like, there's something in your eyes that just changes. And I can, I can see it. I can smell it. And it happens for all of my students. And I want that for you. And when we get a little ways into the back end, you're going to feel that way too and so yeah building apps will always be hard but it won't be like this nebulous box that you have no idea how to do it you'll at least always be able to get started and have a concrete way of going about trying to accomplish the things that you want to build and so that's coming soon and that's why we do the 100 hours project because that's where you learn that you can do it. Cool. All right, let's keep pushing.

All right. So this week, uh, we have, so for folks that were, that were, that redeem the reviews, so should be, and there's one of the person that reviewed that pulled, I think a portfolio review, send me a mod mail, please. Send me a mod mail. We can set that up for you. So if you do redeem those channel points, send me a mod mail and we'll set it up. All right, this week we're doing review tonight and we're doing the beginnings of object oriented programming on Thursday, so we're getting into all the weird stuff, encapsulation, abstraction, all the stuff that we've been reading about. We're going to put it into practice, give real examples. Uh, my, my favorite gif of all time is, well, at least in terms of teaching, it's the Cardi, the Cardi B, but like, why? Like, but why is I think so much of stuff is never taught about like why you would actually want to use it So my promise to you as we go through object-oriented programming, you'll know why certain things are used why it's a best practice And so that'll be on thursday that we'll start that Welcome mighty you found the right place the exclamation point 100 devs to learn more. All right Next week, we're gonna put into practice the stuff we learned on Thursday, and then we're gonna learn async await and promises. Async await and promises are pretty much like the last really big thing we need to understand about JavaScript before we move to the backend. Once we understand the OOP and async await and promises, we're ready for the backend, and then we're gonna move right into the backend. So this week review OOP next week OOP async await promises and then the back-end Is this a promise you'll have to wait and see All right You know, Squidward can throw it back. Mm-hmm. Squidward got the moves for sure.

Easy. All right. If you haven't checked in, please go ahead and check in. It's how we do attendance. And it's also how more folks throw, how more folks find us. So they don't have to pay obscene amounts of money to do a bootcamp. They can learn it all for free. Don't delay. Check in today, please. Cool. Uh, we were on a break just so you know, we were on a break, uh, which meant that I took a break to, uh, Squidward, Tina, huh? Hold on. Paul, Paul, this is a poll where they question. There we go, we have a poll just to confirm Squidward or Tina, you know, if you know, you know. All right.

So it was a break. And so the this is for who who's who writes the baddest code. That's what we need. This is this is this is for going forward. Who who who writes the bad code for us? This is this is important important feature of our boot camp. Alright, it was a break so I was on break too, which means I'm catching up and so I got through pretty much all of the mod mails that were kind of like super urgent. I'll be able to catch up with the rest of the mod mails today and tomorrow and then I've gotten through pretty much Tina wins. All right. Tina, Tina wins. That was easy. Um, we know they use Tina going forward. Thank you. Very important. 65%.

All right. I've been away too long. This is, this is, this is what happens. This is what happens when I'm a lot outside the house. All right, cool. So I got through all the ask Leon as a big reminder. Right as a big reminder, please. Don't send me DMS. Don't send me DMS. I don't see DMS. I don't read them. There's too many. My DMS are open. Discord is like a big platform for me in terms of like other There's too many people reach out to in DMs and I won't see it. However, if you post in the Ask Leon channel, you will get an answer from me or one of our mods, if it's something that's already been asked a bunch of times or if it's something that they can help answer as well.

So if you need something, a question, put it in Ask Leon. If for some reason it has too much personal detail, send a mod mail. That way, those are the two major channels that I check all the time. You will get a response from me if you use mod mail or the Ask Leon. Definitely use Ask Leon first. That's the easiest for me to get through. I try to get through it every couple of days and then mod mail if it has too much sensitive information. DMs, they don't get seen. No? Cool. All righty, things are gonna get a little funky. I am going to start testing some stuff in terms of my setup. I want to start having some other folks come live with us. And so we're gonna start testing, like having other people here on stream with us. And so things are gonna get a little funky.

You're gonna hear me testing some stuff. Feedback is always welcome. If the music is weird or my sound is weird Let me know because I am trying to change a lot of stuff Just just know that it might get a little funky as we kind of go over the next couple of days Oh yeah, so for for the the merch winners and like the raffle winners You should have gotten and like a message from me on as a whisper or the Pokemon card winners. I just saw your message I'm not sure if I got them but by end of day tomorrow Everyone should have gotten at least an initial whisper from me and then stuff's gonna start going out this week So I took last week to kind of get everything packaged up and like all the laptops and everything from Best Buy and so things Are ready to go out. So probably this week it'll go out. It always takes me a little while to get everything So sorry for the delay, but you should You should hear from me this week. I'm gonna make sure I get to everyone by end of day tomorrow Cool. All right. Everybody said no networking until May. May's getting up close. How Best Buy or Microsoft. I buy them. I got got. I buy the Microsoft laptops from Best Buy. Cause it's just easier to get them cause they're always in stock.

Yeah. Yeah, I guess that I don't care. I think they care, right? I don't know. That's where I get them though. Yeah. Microcenters too far. All right. No networking until May client deadline client deadline May 5th. And remember, if you are not able to get a client, there are two alternatives. You may volunteer for a grassroots organization still do the same process still please you need to get the proposal the contract and they're signing on the line to be the best reference customer that you've ever had and then you're also could contribute to free software or open source first timers only is an amazing resource right an amazing resource an An amazing resource to get your first contribution. We have to get one of these three things done If you are contributing or participating in this Experience you have to get a client you have to volunteer or you have to contribute to free software There's really no if ands or buts around this This is what's gonna help us stand out and actually live up to the things that we claim All right, we claim a lot here right and these are one of the things that we need to be able to claim the things That we claim All right YouTube is slowly getting caught up. I've edited everything and so you'll see YouTube go up today Thursday Saturday so we'll be caught up soon on YouTube and If you haven't subscribed to the newsletter, I share cool stuff in the newsletter More frequently than I do on discord and going forward There's some goodies that'll be coming up in the newsletter that you don't want to miss out on Just by typing in newsletter. You don't actually join the newsletter. You got to click the link to sign up for the newsletter So just just so you know We're 13,000 plus strong on the newsletter 13,000 plus strong And our open rates are absurd Our open rates are absurd.

Like, I want, like when I say at the end of the cohort, I'm putting all the data out there, I'm putting all the data out there. Like, I'm gonna give you, right now, we have 13,455 folks signed up for the newsletter. Our last email had a 50% open rate. The one before that had a 52% open rate, 48, 53, 56, 48, Ain't nobody else in the game doing this folks ain't nobody else in the game doing this That's wild That's wild That's wild I was talking to to Microsoft and Microsoft said it's the best they've ever seen Right like literally hands down the best they've ever seen their ROI was off the charts y'all showed out hard and we're I can't share anything yet, but we're cooking up some stuff that's going to be wild, like never before seen there. They, they see the power of this community and they're like, what can we do? Like, how can we, how can we, how can we show up? How can we support? And what can we do to like, keep the train going? And so they're coming to the table where we're talking some wild ideas, folks, like really like, I like, I know I kind of ham it up sometimes I'm not hamming it up right now. It's about to get, I don't know, in these streets. Bill Gates give us toasters. All right. Discord. A big update for Discord is a lot of folks have asked recently, we have a lot of affinity groups and some specialized channels, but one question I always get a lot is, hey, how come there's no LGBTQ plus channel? We do have the study community which is new but last cohort we created that channel and the folks that were in the channel voted to make it private and so we've had it there since the beginning right but it's always been private and so what we're going to do is we're going to archive that channel so it'll always be there for those folks and we're gonna create a public one that anyone can participate in because I really hate when people come to discord and they don't see that space for them.

And so, that's what we're going to do. We're going to sunset the other one that was private and make a public one because the study community is already kind of public. You had to like opt into it, but there will be that channel that we will see public. So that way, when folks come to our community, they know that this is a space for them and it's not going to be private anymore. So that'll be happening this week. So you'll see that open up. I just wanted to say it on stream before I did it because it might be confusing for some folks that are in the private channel. Cool. And then we're eventually going to do some discords updates. We have a lot of channels people have been requesting. There are some channels that people really aren't using or not really using appropriately. So we'll always are tweaking right. Shout out to the mods. We have the best moderators on planet earth for keeping discord that is 30,000 plus people strong now. 30,000 plus people strong.

Uh, I can't tell you the stuff that the mods have to do to keep that all running. We have an amazing community, but when it's that big, it's that public. We get, we get some, we get some, some folks that want to come in and while around and we, we, we don't let that happen. Uh, and so if something ever does happen, realize that there's 30,000 plus people just tell myself, send a mod mail, um, so we can help. Right. Cool. Also, nobody wants to date you, since we're here. Give me a little time, we're back from a break. Nobody wants to date you. Don't message people because you think they're cute. Like, fuck off, that's not this space. As soon as we find out you're banned, you're never coming back, it's done-zo. So please, come on, don't be that person. I don't know why it happens, right? And it's not like something that's like rampant, but it happens enough to where I have to say it.

And so if somebody is making you feel uncomfortable, let us know on mod mail, we'll handle it. There's no place for that. This is strictly for learning how to code. I don't care how cute you think you are, or other people are, it's not a dating channel. Alrighty. Ah, we are going to do a live crafting your story class on Friday. We did the resume class, not because I want your resume locked down. It's because I need you to start thinking about some really key bits of information that are going to make up your story. Right. And so that resume class was not supposed to be the end all be all of a resume. It was just to get us start thinking about our experience and how we phrase our experience, how we how we talk about our experience so that we can start percolating those ideas in our mind. Now, the extension of that is your story. It's the reason why you're showing up in that interview and how everything you've experienced in your past has led up to this moment as being your moment to shine. And so a lot of folks have a really hard time connecting their past self to their present self in terms of being a software engineer. And so we're gonna practice crafting this live and I like to do it live Because what I do is I'm just gonna bring people up.

We're gonna do this on discord I'm gonna bring people up onto the discord stage You're gonna give me your background and then we're gonna craft your story live and we're gonna do quite a few of them So you can start to see how we can massage things push things around so that we can Um, make it better. Will it be recorded? I'm going to try. We have not recorded a discord stage yet, so I'm going to install a bot that hopefully records it. I can't make any promises. We're going to try it, but it might glitch. Don't worry. We're going to do this another time as well. So we're going to test, hopefully it'll record, but if it doesn't, we'll do another round of it. Don't worry. Um, but that's the idea. So come on Friday if you want live crafting your story. I think it's a really important part of program because it really does help you to start thinking about why you're special. You're amazing. Your experience, I don't matter, I don't care what it is, can be massaged into the way that makes you a phenomenal candidate for pretty much any job.

It's about seeing your value and articulating it in a way that the person across from you sees it as well. Cool. Kind of dev, we're going to the bot that people sent me should do it, so I think we should be okay. All right. Office hours on Sunday. We're going hard on office hours this Sunday. We got a lot of stuff to kind of go into some. I want to cover some some harder topics. I want to go deep into git. So we didn't really do our git bowl. So we're going to do our git bowl. We're going to spend a lot of time on Git, GitHub, walking through pushing stuff, getting more comfortable with all of that. So office hours will be at minimum like the normal three hours. We're not going to do, it's not going to be nine hours. Once we get all the way through JavaScript, we'll do another big review class.

But I think there's a lot of stuff that we have to review right now that doesn't make sense in like a longer review format, like Git, GitHub and all that stuff. But once we get all the way through JavaScript, we'll probably do a longer review. Probably like five hours at least. Cool. All right. Now, it starts to come up. Leon, we're almost halfway through. Will this really be enough for a job? Yes, it will be. Ask me how I know. because we got hundreds of folks jobs through this exact program last cohort. I've been doing this for 10 years. 10 years, I've been in this game. I've helped thousands of people learn how to code. I've helped hundreds of folks get jobs as software engineers.

The stuff I give you is not something that I've just made up. It's something that I've tested, battle tested, it. Battle tested. Right? I fucked up everything. Me, me eight, nine years ago. I'm sorry to those students. I fucked it up. But me now I've learned some things. I've learned some things and I'm trying to distill all the things I've learned into what I am telling you. And I've always said from the beginning, I'm going to show you how to play the game. It's up to you if you want to play it I'm playing a game and at the end of this game the folks that play it with me get a job that's it I don't care about anything else the reason why I make up wake up in the morning is to get folks jobs the reason why I go to work every day is to give folks jobs the reason why I stream for almost 400 hours last year It's because I want to get folks jobs. It's all I do. All I care about. I don't care about companies.

I don't care about software engineers that went the traditional route and they feel bad about themselves that want to be gatekeepers to this industry. They can go fuck themselves. I really don't care. Now my methods aren't the scrupulous. I'm not going to say that I am the most ethical person has ever walked this land because there is a system in place and I'm saying fuck that system yes I realize that there are structures in place I don't agree with those structures I fundamentally want to burn those structures to the ground if I'm standing in the ashes with my lighter and everything's in flames but all my folks have jobs, I'm happy. And if you can't see that there's a system that you've bought into, that you're playing into, that you're leading folks through without thinking about it, you're part of the problem. It's not me. It's you. I got a couple big things that I think about every single day, a very famous Aboriginal activist has a famous saying, it's literally on my wall. I have three sayings on my wall. This is one of them. One of the sayings is if you've come here to help me, you are wasting your time. But if you've come because your liberation is bound up with mine, then let us work together. I'm going to say it one more time. I'm actually, I'm going to, I'm going to look at my wall and read it.

If you've come here to help me, you're wasting your time, but if you've come here because your liberation is bound up with mine, then let us work together. I'm not here to fucking help. I hate that word. I'm not here to help. That's not me. I'm here because there's a system that's fucked up. and I see a way to punch through it and get folks that are hurting jobs. We started this because of the pandemic. I started my actual work because at the end of the day, I care about getting black and brown folks jobs. That's what I wake up every day trying to do, realizing there's a system that created a 30% unemployment rate in our communities of color that before the pandemic had a double-digit, double-fucking-digit unemployment rate in our communities of color in the second-largest tech economy in the world. Let me say it one more time. I was in Boston. We had the second-largest tech economy outside the Valley, yet we had double-digit unemployment rates in our communities of color. How do we exist in the second-largest tech economy but have double-digit unemployment rates? because there's a fucking system and it's broken.

So I don't care about you gatekeeping calling somebody a software engineer. I don't care if you don't understand my methods because you haven't read any books on pedagogy that's not contributing to that system. I don't give a fuck. I'm going to do things. I'm going to move in ways that are slick, that are smooth, and I'm going to show you how to do it too, because at the end of the day, I'm trying to get folks through hurdles and systems that push against us. Now, I don't care who you are, where you come from, the system's going against you. If you're a non-traditional learner, if you do not have a four-year CS degree, the system doesn't like you. So we're gonna push, we're gonna do things that make us better than those other candidates. So we're breaking a system, but we're better than the candidates that that system produces. Everyone that comes out of 100 devs will have a paid client, have volunteered with an organization, will have contributed to free software, will have 100 hours project, will have worked in teams, will have contributed to an agile process, will have a portfolio, a LinkedIn, a crafted story. All these things that their counterparts coming out of four-year degree programs or other boot camps won't have They won't So I'm gonna read an email I'll never share names. That's not what we do around here. I I have no, I have no, no reason to do that. Um, if you know who this, for some real reason, you know who this person is, you had a coffee chat, you saw them while I was on Twitter on Twitter. This is not, don't ever send hate somebody's way.

Don't even talk to them. Seriously. This is, this is not, this is not what we do, but I want to read this to you because I want to answer this person. I know they watch the streams, but I want to answer you through. I'm not going to ever answer your email because we're just not, we're just not there. We're just not there. We're built different. You're not. It's okay. Let me tell you how you fucked up. All right, let's read this. And the only reason I read is because I get I get like one of these a week. I get like one a week. And I think it's important for you to understand the things that I'm thinking through. Right?

The things that I'm thinking through because it helps you understand why we do the things that we do here together. All right. All right. First thing here. First thing. You ready? Hold on. Let me go to chat up here with suggesting that 100 devs learners are software engineers, and 100 devs is very misleading. Those who will follow your advice might pass the first screening, but have a significant chance of being caught lying in the second and would feel terrible about themselves. If they get caught, that's why we do 60 interviews. Who cares? We understand every single person here understands we might get got on one, but we ain't getting got on 60. we might get got on one or two but we ain't getting got on 60 and that's avoiding your whole idea that these individuals are not software engineers you are and you are software engineers at a hundred devs you show up you go through a training program you get real clients you you help real people build real code. Every single person that graduates that has gone through 100 devs has at 100 devs worked with real clients, gotten real work done, have gotten paid. And just because you haven't figured that out doesn't mean people are going to get caught.

Some people might not like it. Somebody, some folks might like, not like the idea of what we do. That's okay. hundreds of other companies that I have worked personally with don't care or they won't ever ever even think about it you are all software engineers you have all written great code you've all written great code you will have all gotten paid clients you will have all gotten Volunteer clients, you have contributed to free software and you will have done it while you've been with 100 devs. I don't get that. I don't get it. I don't get it. Next. Next. It goes on. It goes on. It goes on. And it just gets me, because this is like, this is one a week. It's one a week. If it was just, if it was just, people just don't get that they're contributing to a system that is broken, that is oppressive, that keeps people in unfortunate situations, and they can't even see it.

Even though they type it out, they can't see it. All right, next. The other issue I have with your approach is that you have no real rigorous process to evaluate that your students have indeed acquired the skills. I don't believe students' work is graded, for example, or that there is a pass-fail mechanism to move forward or relearn things. Therefore, I do not, could you imagine writing this email? Therefore, I do not think you can justify someone who is employed as a software engineer under Dev says indeed inquired the skills and is ready for their first job of a set of interviews Contrary to what you're suggesting on stream Let me let me let me say that's very very clear something that I believe in my core of my being At the very core of my being the oppressed are Just as capable of the oppressors. We say it one more time the oppressed are are just as capable as the oppressors. If you cannot see that, there's nothing I can do to convey my system of teaching to you. There's nothing I can do that'll help you understand if you don't believe that fact. Because what happens when you institute things that time and time again have been shown to introduce racial bias, like testing, got is what you do is you say I am the person that can judge you and what you are able to do fuck that each and every single one of you is smart enough capable enough to know whether or not your application does what it's supposed to do Every single one of you knows whether or not your site looks like the site that I gave you to build. I am not the arbiter of your truth. I am not the arbiter of your worth. My grade means absolutely fucking shit. Because each and every single one of you can determine if you've succeeded or not. And to think that folks are incapable of self-evaluation, to think that people are incapable of understanding if they have done good or bad is just out of my mind.

Wild. Wild to me. wild. If one person's freedom is dependent on another person's choice, we can never be equals. If one person's freedom is dependent on another person's choice, we can never be equals. A lot of this pedagogy comes from a book called Pedagogy of the Oppressed. Definitely, if you're watching this, You need to read that book, each and every single one of you are capable of determining how well you have done, how well you are doing, and you can reach out when you need clarifying points or questions, right on our discord. I looked, I wouldn't come here and talk wild. I looked in all of our help channels, folks get help. Sometimes there's a 50, 60 message thread. And sometimes you gotta ask more than once, but you'll get help. Code quality does not matter right now. It just doesn't matter this early in the game. You're gonna learn so much more by building, breaking, and doing, and at the end of the day, you can evaluate yourself. You don't need my rubber stamp of approval.

So, let's read the end here. Then we'll move on, we'll move on, we'll take our break. I have admired your approach to solving the problem of misrepresentation in tech and the ingenuity of your model and methods, but with this stream, your initiative flips into being part of the problem instead of the solution. Nah son, nah son. The funny thing is, you thought I was contributing to the problem. you are the problem and the fact that you don't see that that's a little scary now I'm not gonna give any context or anything around this but I just want you to see that and to see the things that come our way to see the system that doesn't want us to go out here and get they want us to get caught they want us get caught but we don't get caught we go out and get. And so the fact that you showed up here, the fact that you put in the work day after day, the fact that you come and write code, get paid clients, write code for grassroots organizations, contribute to free software, the fact that you will have an understanding of the tools, the methods, the technologies that underlie your code, that you will be well-versed in the efficiency of your code in both space, time, that you will understand the core algorithms and data structures behind the things that you write, that you will have projects that you have built from scratch from beginning to end, that you've sunk hundreds of hours into, that is what makes you a software engineer. Not what I say, not what some random ass person on the internet says, not what somebody on Twitter says. At the end of the day, this is your choice. You make it. You don't have to listen to me. In fact, if you leave now, you never look at my face again, that's okay. I'm happy with that. I'm okay. I'm not happy with it.

I'm okay with it. I am NOT the arbiter of your success. I am NOT the person whose decision determines your freedom and the ability to do the things what you want do in life. You are a fucking software engineer. We don't get got, we go get. So with that, we take our break. We take our break. We take our break. And when we come back, we show them how wrong they are. We show them how wrong they are. We're going to write some phenomenal code. We're gonna get some good review in we're gonna put in that work We're gonna put in that work. You're already software engineers. You don't need to prove it to nobody But we're gonna show them they're gonna see you're gonna see the shit that we can do that other folks can't do Folks coming out of four-year programs folks coming out of the bootcamps the shit that they can't do They don't got it in them or built different We really are. All right, folks.

Let's go ahead and take our break If you're new around here, we'd like to be healthy. We take five minute breaks to the top of the hour We take five minute breaks at the top of the hour. If you're able, if you're able, get up, move around, hydrate. For folks that aren't able to get up, if you're able to get some stretches in your hand, if you're still able to let your eyes look somewhere that's not the screen, try that please. It really does make this marathon of learning how to code a little bit smoother. Let me put the timer here. I've got lots of good review to get into, see you in five. I'm gonna run ads that people don't get them when they join. You You You You Y'all spitting in this chat. Those who embody the problem will see a solution as a problem. All right, folks, come on back. Come on back. Hope you had a good break. All right. How's Bob still smiling with the man you Skyrfied this season, eh?

All right, folks, come on back Jason Derulo, hey, thanks for the gift of I appreciate you being here. Hope you're doing well. I don't know, Jason Derulo, can we mention what's coming up soon? We have it coming up on the books. We're getting it on the books hopefully soon. Yeah, all right. So one of our next Friday with friends will be Jason Derulo talking us through their entire journey into learning how to code. It's an amazing journey story. I think you're gonna learn so much from it. So one of our next Friday with friends, coming up very, very soon, will be with Jason Derulo. All right, folks. Real quick, real quick, just real quick. You're here at 100 devs. Who's gotten a paid client, or worked for a volunteer client, or has contributed to free software? Just put a yes in chat for me, please.

Just put it just put it a yes or come on now. Come on now. We don't get got we go. Don't stop. It don't stop. I'll take the kind of I'll take those. Hey, it don't it don't stop. I don't know what the heck you're talking about. It don't stop KC- a hey, they've been 10 gifted subs. That's wild. Yeah. Thank you everybody for the subs Thank everybody for the the the twitch primes a lot of primes today. I appreciate it. Thank you everybody We're getting ready to oh, so we have a big announcement next week It's not this announcement, but I am ready to I'm ready to announce how much we raised for RC last year because I did my taxes and so I said I had to wait till we did all that to figure it all out. I'll show the music here and so I'm gonna share all the data so you can actually it's not gonna be from me you'll see it and then you'll have like the receipts of me sending it to RC but all of the all the subs all the bits anything that comes from Twitch, that goes to RC.

At the beginning of the year, we already sent them, what was it? Over three grand at the beginning of the year. And so we're about to send a little bit more than that, uh, for this past year. Yeah. So thank you so much. It really does mean a lot. Um, the, the subs, the, especially like, like the, all the subs, the primes, all that goes directly into our emergency fund, and so when folks need mental health support, they can't afford a doctor or a psychiatrist or medication, which is redonkulous. Sometimes it really does come out of that. And we had no emergency fund, like we ran out and so it's definitely been a big help. So I appreciate y'all. No. All right. We have a big announcement next week. Like I'm super hyped for this announcement. It's going to be a really big announcement, so I don't want to spill too much.

We're gonna have a lot of stuff to go over next week We're gonna share how much we raised for our C in the last year. We're gonna announce something pretty big So next week just not keep that in the back of your brain big big things big things All right, let's get our review in we got some some Pokemon badges that earn here we got to get Get a little spicy with this review So we're gonna go through the review if you're new here We always like to do some spaced repetition some active recalling the things that we've learned Today's a great class if you're just joining us or just catching up We have a lot of folks from the ketchup crew that are joining us live for the first time If you're part of the ketchup crew could just do like CC In chat for me real quick just so I can see that you're here or if you were part of the ketchup crew and now you're live Look at this folks Look at the folks that are able to take the the break able to get part of the ketchup crew to be able to join us live and so We always like that when we come back from break to do a little bit of review I'm always gonna include review because it's attempted to how as adults we learn But this is huge to see hey shout out to all the CC years all the catch-up crew good to see you Glad that you're here with us live. Hope the break helps you catch up a little bit more All right, it just goes on and on. I love it. All right chat. What's a program? What's a what's a program chat? Yeah, I'm proud of y'all too. A lot of folks were saying they were proud of the CCs. It's hard to be part of the catch up crew. We're not gonna lie, right? Like it's hard to have that muscle to go at it and to know that you're catching up huge big ups. Very proud of y'all for sure. I'll echo that. Yeah, program set of instructions.

Beautiful. And the act of writing those instructions in a language the computer can understand is a programming. Well, the programming language we're using is JavaScript. We love JavaScript because it is one language that we can use across our entire front end and back end. So it makes learning how to build full stack with applications quicker. It's super in demand, and it's something that we can pick up together to build whatever it is that we want to build in terms of web development. All right. Talk about the big four, the variables, the functions, the loops, the conditionals. Oh, we have a variable. A variable enables us to do what? What does a variable enable us to do? What does a variable enable us to do? Yeah, store stuff, store information. It's a bucket holding some values, exactly. It was just to store stuff into memory that we can use later on.

Creating that space in memory is called declaration. Giving that space in memory a value is called assignment. We can do both declaration and assignment at the same time. Let's go. We also have conditionals, which we can check to see if something is true. If something is true, we do what's inside the curly braces. If the condition is not true, we can move on to an else if, which again, we'll check to see if something is true. If it is true, then we do what's inside the curly braces. If all of our ifs and else ifs are not true, the else will auto-magically run. Right, it will auto-magically run. Cool. We can also do multiple conditions where we, so many people just one bingo. You can do exclamation point bingo here in chat. That'll give you the bingo card for the day made by our lovely alumni Dab the bollical and cross Both of which are now gainfully employed Dab was also og member of the stream team shout out to the stream team holding it down Mine was Wow Well as Rufio Wow Some bangers if you haven't looked through their VODs and we got we got another folks coming soon And we got another person coming soon, folks. I'm really excited.

We're going to announce it this week. The next person on the stream team. All right. We can do multiple conditions where both conditions must, both sides of the double ampersand must be true. So if name is Leon and status equals Bollin, you get the wink. We do. We can also do or, right? Where we can say if the day is Saturday or it's Sunday. So as long as one of those is true We do what's inside the curly braces Make a cringe You're new around these parts, huh? Functions, what are functions chat? What are functions? Yeah, there are sets of instructions. Oh, I love that reusable sets of instructions. Exactly. Sets of instructions that we can reuse.

Ideally, like once we get like our, once we get into it, really doing one action as a best practice. And they kind of form the building blocks of our programs. They're things that we can reuse over and over again to do the same sets of instructions. Our functions have a function declaration and a function call. Your function will not run until you call it. And when you call it, you pass in your arguments. So you call mom to argue. I have a healthy relationship with my mother, I don't call to argue. But when you call, you pass in your arguments. Those arguments find themselves into the parameters. Let's look at an example here. Let me, okay, after pad wasn't on, one second. Boom, there we go. So here we have our function declaration of yell, and we have the call here. We have the argument of hello that maps into the parameter of word.

Wherever I see word, it is string hello. Oh, cool. Chat, what are loops? What are loops? What are loops? What are loops? Yeah. This enables us to repeat some action multiple times. So we can repeat something over and over again a multiple times. We saw a lot of different loops so far for a while. We even saw some that are attached to arrays like for each map, et cetera. Cool. We have our traditional for loop here where we set up our increment. We say when that increment should stop, like when we should stop doing our loop, and how much that increment should change each iteration. So this would be starting at one, going as long as one is less than five, and each time we go up by one.

So we do one, two, three, four. We'd add up one to five. Since five is not less than five, we would stop and we would not to continue this for loop. If you're new here, we're going a little bit fast to this. We have full classes on all this material. If you want all the past classes, just join our Discord, Expansion Point Discord. It'll give you access to everything. Once you agree to the rules, there's a follow along materials channel. You can go straight to that pin post. It'll bring you all the way up to the first assignment. And you can also join the catch up crew to kind of work through this material at your own pace as well. Alrighty, let's get our boulder badge. So we have some starter code here. And once again, the starter code is on Discord if you need it, haven't already got it. We have this lovely boulder badge here.

I'm gonna open up the JavaScript and I'm gonna open up the index.html, boom. Have our boulder badge here. And if we look in this JavaScript file, we got some things to do here. Like I said, this one's okay. We're gonna get a little bit spicier as we go on. There's definitely stuff for everyone here to learn. And like I said, always say, get as much as you can done in the time allotted, and then we'll go over it together. I'm gonna put eight minutes on the clock for this one. It's a little bit more than we normally do, but there's a lot here. So take your eight minutes, try and get as much done as you can, and then we're gonna go over it all together. time to get your fingers on the keyboard folks this is this is where we go to work right put in the work try your best if things don't make sense give it the old Google and then we'll be back in eight minutes to go over it together go for it Looks like Code Wars. Hmm. Hmm. Hebdoms added two minutes to the timer. We'll make this a 10 minute timer then.

There we go. Got 10 minutes folks. Thank you have Dom's You can call getting too many channel points we gotta switch up some of these these costs Just all caps, don't, I wouldn't, I'm not going to. Loving the Pokemon team this week. Can you figure out what I did during break? Thank you, Sudo. Katya A, there you go. Cool dude, I'm really into it. I've been playing around with it a lot. No five a thank you for the gift that subs What happens if you run out of Pokemon cards not gonna happen the knock is just a hey it's a something you can redeem for I think it's like 20k channel points. I think that's the first time someone's redeemed at this cohort. Good You Good luck with the Amazon interview You So some folks have seen that that exactly that code where the grind is paying off right now You Chase Jason if you're cool, yeah, if you want us to give away on stream send me a mod mail we can figure it out That'd be cool to do on stream Dakota Simba's doing well. They're on like a really specialized diet. Other than that, they're doing fine You got this They want to make sure that you've like done like the Amazon specific questions and send me a mod mail just so I can be in touch Will there be another break during bootcamp? Yeah, we're going to have a few of them.

We're going to have a break in June for a little bit, just so that folks can actually start working on a project, and then we'll have another break towards the end of program. But it's not really like a full break. It's just so you have time to work on your projects. That's awesome Blender, oh, we got some folks coming in danzos already what It's not a test, we don't do tests around these parts. Now these are coding, like code alongs. So we take breaks, we write some code based on the things that we just learned, and then we go over it all together. Tower, if that's what you're happy with, definitely counts in my book. How can we assess how long a project would take? You can try and break it down into smaller parts think about each part and how long that would take you. Often kind of just talking through it with another engineer can be a good way if you've never built something similar. I often will talk to other engineers if it's something completely new. If I've never done it before, I'll say to get a better time estimate, I'll do that. And then keeping track of like your own, I don't want to say velocity, but keeping track of your own, like how long it takes you to complete stuff over time will give you a better estimate of how long it's going to take you to do stuff in the future drink we're we're almost halfway through we're doing like 60 classes and we're on class 30 right now to a week sorry on class 29 to a week I can't see your name because it's too dark multi. Hey, wow. Congrats.

Good luck But I will go over test towards the end, yeah Which, you can just put them on there and if folks ask, you can go deeper. No idea, Tower. No idea. Talon, if you're still struggling, have you done every single thing that was in our list? We had that full class on it. Some folks try one or two, but they don't do all of them. Do all of them and then do them all again. Like repost, make sure you do it multiple times. It's hard. It's a lot of work. It doesn't come easy. Have I blasted through more than 208 queues on Codewars over the break? That's wild. Congrats. They're pretty public about what they look for, so post maybe and ask Leon and I can share what I know.

All right, a little less than two minutes folks, big deep, remember go as far as you can. We're going to go over it all together. Also remember, you can always just mute me, you don't have to listen to me or the music, like you can just mute me and then come back when you see the timer's up. That's why I leave it up. Hey, glad to see some dunce coming in. Code Wars has been amazing. Hey, there's a hump to Code Wars, right? Like once you get over the hump of like how Code Wars works understanding that you're not always gonna be able to get the answer, that you're not always gonna understand what the heck they're talking about. Like once you get past that and you're able to spend More time on the analysis start to build up and it comes a little bit easier a little bit easier and then hit your flow pretty dope What is your idea of an analysis on a problem you don't understand? At this stage, just look at the solution. Never spend more than 20 minutes on the code wars. If you don't know, like if you're, if you're hitting flow and you feel like you could actually solve it, sure. Keep going. But if you've just been like staring at it, Googling, have no idea, don't spend more than 20 minutes. Look at the solution.

It's been more time digesting understanding the solution breaking it down. That's always gonna be way way way Well, I don't understand why people don't there's some things that I just feel so Duped by All right, folks, come on back. Come on back. Let's go over this together There are just some things I just feel so duped on that I just put so much time and energy into in my life that then to come out later to understand like I just did it so wrong, right? And I love when I find these things out because like your life is never the same. The first one for me was like understanding that even though I had done very well academically, I actually did not know how to learn. I have a very good short-term memory or I used to until Sarah Quill destroyed that, but I have a very good short-term memory and I was able to use that to get through school very, very, very well. But I never actually learned how to learn. I didn't know anything about active recall, space repetition, stuff would go in one ear and out the other after I took the test. Like, I just never actually learned how to learn. So that was like a big thing. I was like, how come this is, how come this is not taught in every university at every middle school? It just seems really wrong to me. And the other thing to me is that when I was first starting to do coding challenges, I used to do project, I can never say it right. I forget, I always say the name wrong, I don't know, which are like math related.

They're like code wars, but they're, they're all math related. And so this was like 10 years ago. There you go, yeah. And I would do them, I would get some of them, but I would just bang my head for hours, just like not knowing like how to solve it. And I would sit there for hours and hours. And then somebody was like, just look at the solution. And I was like, just look at the solution. You can do that. Like you're allowed to just like Google solutions. Right. And then I just looked at the solutions and I've learned so much more. Looking at solutions than I did from banging my head against the keyboard. I used to literally sit there and literally bang my head on a keyboard thinking that would do something When I should just looked at the solution and then did it again once I understood the solution because now I've actually learned it I've done this spaced repetition because I'm doing it again. And when I see those same patterns again, I'm like It's just say that like Code war I'm talking to the code wars folks right now I'm gonna I'm gonna add I want them to add like a little line that says like after 20 minutes look at the solution Okay That like there's just those things that like blow your mind. All right, let's take a look at this together All right variables cool You are getting ready to face Brock for the boulder badge You want three Pokemon on your team that have each evolved that have each evolved at least once You have Bulbasaur which is at level 5 and evolves at 16, Caterpie which is 1 and evolves at 7, and Weedle which is at 1 and evolves at 7 as well.

Create 3 variables to store the number of rare candies each of your Pokemon would need to evolve. Rare candies increase your level by 1. And then create a 4th variable called total candies that sums all the rare candies for you. So let's go ahead and create our Bulbasaur candies, and we're gonna set that equal to, all right, they're at level five, and they evolve at 16, so we could just do like 16 minus five, like if we really didn't want to do the math. If we didn't want to do the math, we could just do that. All right, let Caterpie. Pazo, hey, thank you for the raid. Thanks for bringing the crew along. How are y'all doing? What are we all working on? Thanks for the raid. Hey, what's going on everybody? Right now we are working through coding challenges that are all Pokemon themed. So we're working through some basics of programming, variables, conditionals, functions, loops, and then they're gonna get, The problem is gonna get a little bit more spicy. We're gonna see things like map and filter and some other fun things to do.

Thank you for the raid. Hope you're all doing well. Hope you all had a good stream. Thanks for coming through. For folks that are new, we're running a 30 week software engineering bootcamp where you can learn everything you need to get a job as a software engineer. Welcome everybody. Cool. All right, so we had our Bulbasaur candies. How about our Caterpie candies? Cool, all right, and so we set our Caterpie, which is level one, it evolves at level seven. We'll just do seven minus one, and then let our last one, which is Weedle candies equal, and I think it's the same thing, they evolve at seven and they're currently at one, and so there we go. Alrighty, now the last thing we need is a sum. Let's do let total candies equal, and then we'll do our Bulbasaur candies plus our Caterpie candies plus our Weedle candies. All right, that was good to me. And then this is what we had to do to say what we had to do with it.

Finally create a forfeit when a total candy is and sums all the rankings. Let's just console log to make sure it's actually working. So let's go in console dot log Total candies Let's go ahead and save it if this is working. It should be 11 plus 6, which is 17 17 plus 6 was just 23. So we should see 23, right? Let's see In a console Refresh boom 23 into the console quick maths. It looks like it's working to us at that beautiful boulder badge I am the proud owner of a boulder badge from the 1998 Pokemon World Tour I got my boulder badge on the first try you got my cascade badge on this first try And I lost the tournament and I was very sad All right I actually have like the, like the official badge. Like it's like, like that big I should put on my desk. I'll maybe I'll grab it during break. Yeah. And I got the first, I have a legit gen one mu on a flash cart cause the batteries do die and the official certificate of authenticity. I know Lexisaurus. All right, next one. Conditionals and functions. All right.

You have a Charmander in your party. Charmander can only battle if the temperature is above zero degrees Celsius. Create one function that converts Fahrenheit to Celsius and another function that tells you whether or not Charmander can battle. Beautiful. All right. So our first one, we're just going to create like a function that converts the Fahrenheit to Celsius. So let's create a function here. And we're going to call it, uh, far right to do sell. See us cool Fahrenheit to Celsius. And we know that we're going to take in a temperature. So I was going to say temp because that's the temperature that's going to come in. Uh, I don't like using just the word temp though, cause it could mean like temporary or something like that. So I'm just going to say temp of vowel or temp. I just probably spelled out temperature. There you go.

Temperature. Cool. What's wrong with this though? What's wrong with this function so far? Yeah, I did a capital F. F's in chat. I did a capital F. It's not a constructor function, it's just a function. No capital F. Good guys, good guys, good guys. All right, so let's go ahead and then say, Let's create a variable called convert it val. Or let's call it convert it to cell. And we're gonna set this equal to, and then what's the, anybody know the math? What's the math? Somebody put the math in chat for me.

Math in chat for me, please. Temperature minus 32 times five ninths, okay? So we'll do temp, temperature, minus, minus 32. And then we're going to times it by five divided by nine. Well, it looks good. All right, so now we have our function that can do the conversion, but we haven't done anything with the converted value. What should I probably do with this converted value? I want to return it. Cause what I'm going to do is I want to call this function and get the converted value. So I'm going to return convert it to Celsius. And that way I know that this function spits out the converted value. So I can pass in any Fahrenheit value and get back a Celsius value. Cool. Now the next function we have to create is a function that tells you whether or not Charmander can battle. So let's go ahead and create a function here.

I'm gonna call it Ken Charmander battle. Cool. And so Ken Charmander battle, and we should, let's see. Charmander party. It tells you where that Charmander can battle. So I think we're gonna need the actual value, right? Like when we probably when we call can Charmander battle, we should pass in like the current temperature. So current temp All right, so we should pass in the current temperature right to figure out what the current temperature is We'll have to call the other function to convert it. But at least we're passing it in. So now we have the Current temp let's get the the the like new value. So like let's get the convert it and set it equal to Fahrenheit to Celsius. We're going to pass in current temp. So my goal here, right? My goal here is I am calling this function here in line here. So whatever gets spit out of this function is what converted is going to equal.

All right, so that's the idea. The idea here is that I have one function whose sole job is to convert Fahrenheit to Celsius, and it spits out that value. And then I'm calling that function down here with the current temp. So it should take whatever the current temperature is, I'll get that converted value back, it's stored inside of converted. And the neat thing is, Maybe eventually I want to create different characters that deal with different values. So maybe I can eventually have like a Celsius to Fahrenheit. Like I'm starting to separate some of these things out so I can reuse them as needed. All right, so now I should have the converted value. And the next thing I just need is I just need to know whether or not Charmander can battle. So I can just do a what, what can I probably do? Oh, yeah, just a conditional, cool. So we'll say if converted is greater than zero, right, if it's greater than zero, then we know Charmander can battle. Beautiful, else. Charmander cannot battle. Cool.

I think that looks good. We have the function, can Charmander battle. We're calling our converted function and then we're just doing our conditional. Let's go ahead and call it. I did a ternary, definitely could do a ternary here. Definitely doable. I'm just typing it out. I think it's a little bit more readable right now. All right, let's go ahead and call it. Can Charmander battle? And zero degrees Celsius is 32 degrees Fahrenheit. So let's pass in 31, because that should be Charmander cannot battle. So let's go ahead and come back here. Let's refresh. All right, Charmander cannot battle.

And then let's do 33, because that should be over zero. Let's go ahead and save. Alright Charmander can battle. There we go. We did see something interesting. What's something interesting that could happen here? Will you return true or false for Canada camp out? That's a cool idea Yeah, if somebody throws in zero, that's not Technically, it's not technically greater than zero, right? So there is like this We have to be it does say above zero. So I think we're good, right? We don't have to account for like zero at all It does say above zero degrees. And so we're good with this. But yeah, it's something I did think about like, hmm They throw in zero. Yeah All right cool See this last one here. All right, you have joined an Underground Pokemon League in this league trainers can use any number of Pokemon print to the console Pikachu you, I choose you X times where X is the number of Pokemon the trainer you are battling has in their party.

I'd be totally down to start a Pokemon fight club. I've always wanted to do like really big money games in Pokemon, like big money games, like kind of like how like fighting game community does big money games, but like all in the line. Yay. There we go. All right. This is just, I'm just gonna use a simple loop here. I'm gonna call this function under, it's underground one word or two words? Underground Pokemon League. And I'm gonna take in party size. Cool, so party size. And I'm just gonna have a loop in here. And this loop, I'm going to start counting at one. So I'm just going to set up I for increment. We're going to set it at one. And we're going to say, while I is less than or equal to party size, cool party size, we'll go up by one.

And then all we want to do is to the console log, print Pikachu, I choose you. Cool, let's just throw that in there. Looks good. Let's do a party size of six. Underground Pokemon League, let's throw in six and let's see if this works. Need for Speed Underground was my favorite racing game. That was a really good game. Boom, Pikachu, I choose you. We can see it printed six times the console. It is working. Awesome. Cool. Alrighty. Questions about these ones while we're here? As always, you'll get my solution code after stream.

Why don't I have to do partySize.length? Cause I've already passed in it as a number. Maybe if we passed it in as an array. So maybe if we passed in their party as an array, maybe things would be different, right? But this I just passed in as a number. I didn't really clarify if it was like a number or an array, but let's just say they passed in their value as an array. So I'm just going to comment out this one here and let's call it again Underground Pokemon League and let's just pass in an array of Pokemon Bulbasaur We had what was the ones we had up top Caterpie and Weedle All right. So now they have a party of three What's the only thing we have to change for this to work? There's only one change we have to make here for this to work. Yeah, we can just add dot length here. And there we go. And now we'll see that there are three values inside of this array. So party size dot length would be three, and this would run three times. Let's confirm that that is true. Boom, there we go.

Now, this is one of those things that I want you all to do. When folks ask me, Leon, what do you really do when you're doing code wars? This is what I do with my code wars. Especially if I didn't know how to solve the code war and I'm looking at the solution, I look at the solution and I go, hmm, what if it was an array? And then I fix it so that the array works. What if, what if there was what if there were spaces, right? Like, like, like that idea of like playing with this code, right? Like you've, you've seen the solution. Part of that analysis should be to like play with it, break it, ask questions about it and, and tweak things and try getting those tweaks to work. That's part of the analysis that I do. Arasi said prep. Yes, we'll cover when we get to our hunt classes, we're going to talk about prep. You already saw if you were in hello Rufio stream the prep method for working through the code wars And that's for like when you're in an interview scenario. I do prep until my eyes bleed Yeah But we'll get there cool Keep pushing folks. We got more badges to get this evening.

You definitely got to get to that cascade badge All right chat. What are arrays? is a prep is a system that I use for working through all of my coding challenges. We're not there yet, cause we're kind of just starting Code Wars and we're getting into it. But once we get to the hunt, like the, like how we start thinking about getting a job, we're gonna spend more time on it. And we'll cover prep, we'll cover star, we're gonna cover all these different things that we need to do to do well in interviews. Yeah, raise our toasters, exactly, our toasters, a data structure stored as an order collection. What? Oh, it just stores stuff and there's an order to the thing that is stored. In arrays, the thing that's tricky is that they start counting the stuff at zero, right? Start counting them at zero. So that means we have indexes that start at zero and it is an ordered collection of stuff. We like to joke and think about Bill Gates toaster because we can put anything into Bill Gates toaster and it always generates new slots as we need them. Beautiful. Alrighty, declaring arrays.

There are two major ways to create arrays. One you see here using literal notation where you just use the square brackets. Chat, what is the other way that you can... Yeah, we can use a constructor that could build a race too. Cool. The funny thing is I don't hear the knock for whatever reason. I don't hear it on my output, but I know that you all hear it, which is interesting. I love when stream finally, like when you all finally figure out certain things, because that knocks it on there for a long time. I don't think anybody's really used it before, but now everybody's going to be using it. Cool. So we've got our little notation. When we declare our arrays, we can put values into the array and we can put any type of value we learned about so far, any data structure so far, whether it's strings, booleans, numbers, other arrays. When we started working with our APIs, we saw objects with arrays with objects inside of arrays. Like it gets wild folks. anything can go in there.

With our arrays, we start counting the elements based off of their indexes of zero. So we would have our first, second, third, fourth element, but if we care about the slot that they're in, those slots have indexes, and we start counting those at zero. So zero, one, two, three. And we can use those indexes to pull stuff out of the array. So if I asked for the zeroth element, I would get zebra. if I asked for the first element, I would get undefined. Why would I get undefined if I asked for index one in the new array? Yeah, there was nothing there. It was an empty value, so that is undefined. Beautiful. Not only can we get stuff out, but we can put stuff in. So I can go ahead and use that index to put something into the array. So here I'm putting string bob into the array. Okay, beautiful. We can use the length property like we just saw to figure out how many elements are in the array.

Remember, the length counts one through whatever, so you don't have to worry about the index being at play there. However, if you wanna use the length to get an index, you're always gonna be off by one. That's why we see a lot of that minus one because we want to account for starting at zero. All right, we can also iterate through our arrays. We saw a foreach where the foreach will run once for each element in our array. It's going to pop off The element and its index hint hint hint hint hint hint Pops off its element and its index and some of the other similar methods do the same thing where they can pop off the element And its index hint hint hint cool and now we have a lovely cascade badge to earn but before we adventure, no peaks, no peaks, before we adventure to get our Cascade badge, it is time to take a break. Alrighty, folks, thank you for putting in the work. Thank you for being here. Thank you for pushing your mind. Thank you for getting in this review. Trust me, it pays off in the long run to get this repetition in. So let's go ahead and take our break. Well-deserved, five minutes on the clock. If you're new around here, if you came with the raid, We'd like to be healthy. We take our breaks at the top of the hour Please if you're able get up move around hydrate kiss some babies play with some dogs Look out your window, but your eyes focus on something.

It's not the screen. I'm gonna run ads to folks actually take a break Appreciate y'all for being here All right, let's do this thing Alright folks, come on back got a cascade badge to uh to win here Cur this dominoes for you. Hey, I appreciate you. Thank you All right folks come on back What's your favorite pokemon generation I'm going to get some hate for this, but it's hands down, six gen X and Y X is the best Pokemon game ever. I'm not a, I'm not a, I'm not a, I'm not a playing for story type of person. I'm a, I'm, I'm there to take names and, and win some, some badges type of person, you know, and Pokemon X had the best online of any Pokemon game ever. in Pokemon X you had the PSS system where somebody in Japan would like walk by, you could tap their name, you could trade with them, you could battle them and then work all the way up to them being on your friends list so that you could talk trash to them while you battled them. That hands down is the best the best system Pokemon has ever had. All right, let's get into it, folks. We have this lovely Cascade badge to get. This one's gonna be a little spicier. If we go ahead and look in here, go to Cascade badge, index.html. We have a JavaScript file. I don't think I fixed the image. Let me check to make sure the image works or not.

No, it's broken. Let's fix the, can somebody figure out why the Cascade badge is not loading. Why is the Cascade badge not loading? I spelled it wrong. Yeah, if we look, this is Cascade, Cascade. That's my, no, I'm not gonna say anything. Cascade, Cascade, Cascade. Cascaste, there we go, let's put a Cascaste. Let's save that, let's go back to make sure it works. Boom, that a lovely cascade badge. All right, always gotta be careful, two things. One thing we haven't really, I haven't done it to y'all yet, but eventually I'm gonna forget the script tag. Remember, if you want your JavaScript to run, you gotta link to it. And so you always have this script tag at the bottom, But I can't always guarantee it's gonna be there. So if you're troubleshooting you're like Leon and I've tried it all it's not working Make sure it's linked Okay, just telling you.

All right, if we look at this cascade badge, we got some erase problems We got some some doozies of a problem here. So I'm gonna put 10 minutes on the clock for this one This is a lot of time because I want you to go as far into as you can feel free to skip around if you need to. Remember, go as far as you can in these 10 minutes, and then we're gonna go over it together. All right. We'll go over it together. We'll talk about some of the homework. We'll talk about a project I want you to work on. And then I think this might be the first time where we actually end early. All right, folks, go at it, 10 minutes. Can I get the badges? Let me see if I can grab them real quick right back the next, video!! You I would love to see the game you've been working on new horizons. Because this is all Harris Heller stream beats. I'm actually in a Pokemon fight club and discord. First rule of Pokemon Fight Club is we don't talk about Pokemon Fight Club.

Geez. Luzic said, what are some specs to be looking for affordable laptop to code with? There is a subreddit called suggest a laptop. Just go there, follow their rules, paste the things they need, and they will literally find you the best laptop for your preferences at your budget. They're they're beasts with it. So I would definitely go there suggest a laptop on reddit Woven this is the cascade badge. Yeah about five minutes and then we're gonna go over it together In a tech interview, what queue would their JavaScript questions fall under? It really does depend. I've seen eight, sevens, and sixes quite frequently. I think once you feel comfortable with sixes, you're ready to like, you can start interviewing beforehand but once you're comfortable with sixes, you're ready for a lot of interviews. Not all of them, but a lot. Remember, a lot of our folks even have technical interviews. I don't understand question three. What you're looking for and we're gonna we're gonna go over in depth is does the index like can the index go? Into that number like is it like can you can't divide by zero so it doesn't count but one one can go in the six Two can go in the 32 Three can't go in the 82 four can't go into nine, but five can go into 25.

So that's what you're looking for We're gonna don't worry. We're gonna break that down if that's to Yeah, I think that's really important. My recommendation for a laptop is hold out as long as you can until you get a job because the job will most likely give you a laptop anyway. So I'm a big fan of getting an old Chromebook, the crispy nuggets at it, an old Chromebook, put Linux on it, and that's enough for web development. An old ThinkPad, an X220, X230, put GNU Linux on it and call it a day. That's enough to get you through learning. You don't have to spend more than $100, $150 if you need a laptop to do well, get a job, and then they'll give you a better one. You need a laptop for interviews? Nowadays, yes, because a lot of them are still remote. Or something that you can write code on, I should say. He attended a virtual conference and won a MacBook Pro. That's awesome. Montana said, or buy it from Costco and return way later. We've talked about, we've talked about the Best Buy Loaner program here on stream before. I have not yet, but I will and it's been a while.

My apologies. That's awesome cloud. So the, so if you're a Best Buy rewards member, you get a month. And then if you're like a, like the next tier up, it's like 60 days. Yeah. Yeah. Costco is probably better because they take it back whenever. Be careful. You're going to get another email. Yeah. I'm releasing too many of the secrets this evening. World's worth. You can do Anki totally in the browser. You don't need to download anything for Anki. Just use the web version.

Yeah, Dragon said after two weeks, they try to stick you a restocking fee. You should be careful. There are certain things that do have restocking fees. That's why the Best Buy loaner program used to be way better, but they kind of caught on. Costco is 90 days for electronics. That's good to know. Yeah. This is not financial advice, folks. make sure you read the policies. I'm down cloud. I think definitely by the end of this cohort, it'd be great to have. All right, 20 more seconds. We're gonna go over it together All righty, come on in come on in let's go over this together folks All right So folks asked, here is my competition badge for the Nintendo Training Tour in 1999. Yes, yes, believe it or not. I don't know where, I actually have two Boulder badges.

So this is the Boulder badge. And I don't know where my other boulder badge or the cascade is because we move some stuff around. I'll probably find it. We take another break, but, um, so I had the cascade badge and then folks, this is it. The mega memory card that has the gen one mu, I have the official certificate of authenticity that matches it as well. I don't know where that's at at the moment, but I have it This is a All right, and it's backed up on an original gen blue cart with a fresh battery I'm gonna say All right, I flex the source is coming out People people ask me Leon is Pokemon thing is this new for you? I'm like nah, son I've been in the Pokemon since this this this is this is this is og Pokemon stuff right here Toys R Us sent out a VHS tape Hyping up the the the franchise before it even came out Before the franchise even came out before toys or us even had anything They had this VHS tape that they sent out and I used to watch that VHS tape every single day I'd be like, this shit's gonna be amazing. And then I couldn't, I didn't get the game when it came out cause it didn't have funds like that. But Johnny, I'm not going to say their last name. They let me borrow their Pokemon blue. That's the only time I ever talked wild to my mama. Cause she was like, Leon, time to go to bed. I'm like, ah, I gotta catch the Pokemons. As I was like sitting underneath the lamp in my living room. So yeah, shout out to Johnny.

Johnny C, I'll just say that, you're a real one. And then eventually I got my Pokemon blue and then it's been in a wrap. All righty, erase your Pokemon party order, which is a list of Pokemon, right, which is a list of Pokemon. Has been leaked to Misty. I forget when I write this stuff, please create a function that reverses your list and prints it out to the console. So when you're battling, you don't want people to figure out your Pokemon order. And so Misty has figured out our party order and we have to reverse our list of names. So I'm hearing some words here. I'm hearing list of names. So far what we learned in JavaScript when we hear like a bunch of names, what am I gonna use here? Yeah, I'm gonna use an array. So I'm gonna have a function that takes in an array and I'm going to want to return the, or sorry, I'm going to want to print this to the console, the reverse of the array. And some folks in chat already saw it. So let's go ahead. Let's create a function.

We're going to call this reverse party, and we're going to take in our party list, and we're going to return the reverse of it. Return, and we could probably just do it like this. PartyList, sorry, I keep saying return. We want to console.log it. Console.log, and we want to console.log PartyList.reverse. Reverse, reverse. Cool. So that should take whatever the array is and reverse it. Now, a lot of folks kind of get tripped up with the reverse because reverse is a what method. It's a method that works with what? Everybody clap your hands. Yeah, it works with arrays. And so some folks get tripped up because they're so used to doing split reverse join, but they don't realize that it's not a string method, it's an array method. That split method is what takes the string and turns it into an array for you to reverse if you're doing that palindrome question that shows up all the time on CodeWars. I keep writing return because I'm so used to CodeWars, me too.

Yeah, I was in a lot. All right, so let's go ahead and make sure this works. Let's go ahead and call our function. Reverse party, and we're gonna pass in an array. And so let's pass in an array of Pokemon, Bulba, Charmander, Pika, Chew, and Butter, for Butterfree. There we go. All right, so let's save this, and let's go ahead and open this one in the browser, make sure it works. And I'm gonna open up the console, I'm gonna refresh. I don't see anything. Oh, I see Butter, Pika, Char, Bulba, there we go. Cool, we called it and we saw that Butter was first, then Pika, then Char, then Bulba. So it has actually reversed our array of Pokemon. Cool. I did the exact same array, that's wild. All right, so that first one done-zo.

Let's keep pushing here. All right. Create, all right, given two integer arrays, A and B, both of length of greater than one, create a program that returns true if the sum of the squares of each element is strictly greater than the sum of the cubes of each element in B. I thought this was Pokemon, I thought we were playing here. All right, let's take it, let's read this out a little bit, see if we can get what the heck's going on here. All right, Leon, no math, also Leon, this mess. We gotta, so the reason why I gotta mix some of these in, I gotta pepper them in, is because this is the shit you're gonna see during interviews, right? The reason why CodeWars is so helpful is not that you get better at programming, not that you can like write code more efficiently, but it's the fact that you can actually understand when these types of questions are being asked to you. Because the first, I don't know, say 100 CodeWars that you do, it's really the phrasing that gets you, right? It's really the phrasing that can get you. And in an interview, right? In an interview where they're saying this nonsense to you and you're a little hype, you're a little, I don't know, a little nervous, right? It can just, it happens to a lot of us. You'll just, you know, it's kind of glaze out, right? And so you want to get comfortable with these phrases, with these terms, with the way of the questions being asked to you.

And that's where Code Wars really can, can help. Eventually we'll get the leet code, of course, but the, the phrasing is something you pick up by doing these code wars over and over again, so it's not a shock to the system when you see it. If you saw this question and you were like, oh, that means you need to do more code wars. You know, it will help with that shock to the system. The phrasing is definitely probably the worst part. Cool. All right, given two integer arrays, when somebody says integer arrays, what does that mean? Two integer arrays is what? What am I just saying there? Yeah, an array of numbers. So I have two arrays that are full of numbers. One is going to be called A, the other is going to be called B, and they're going to both have at least one number in it. So all this means is that we have two array of numbers, one called A, one called B, they're both at least greater, they both have at least one number in them. And we're going to create a program that returns the sum of all the squares of each number in A. So we're gonna add a bunch of numbers together to get a sum, but we're squaring each number that was in the array and then adding it to the sum.

Right, so if we had an array that had two numbers in it, right, two and three, we would square the two, we would square the three, right? So this would be four and this would be nine, and then we would add them together and we would have 13. Right? So we're going to sum all the numbers, but after we squared them. So whenever I know I'm gonna keep like a sum, I'm doing something over and over again, what am I gonna use here? What's the method that screams out in your mind? So yeah, I gotta sum something. Yeah, reduce comes to my brain. I think I'm gonna do two reduces. one reduce for the squares and the first array, and another reduce for the cubes on the second array. And then I'm just going to compare them. So I actually think this is just going to be, I think I can probably like just create a function here. We're going to call this compare square and cube. and we know we're going to pass in two arrays and they have already given us the name for these arrays or the names of our parameters a and b and i'm just going to return the reduction of a and b and just throw a greater sign in there i'm going to have this greater sign so i'm going to i'm going to have the a reduction but a dot reduce on this side and i'm going to see if that's greater than the B reduce on this side, and that's it. So we have to fill in what's in the reduce, but that's the idea.

A will reduce down to a sum, and B will reduce down to a sum, and then I'm going to compare if the A reduction is greater than the B reduction. Cool. We know that our reduce takes in two parameters. We just kind of know that syntax. What are the two parameters that we always have with a reduce job. Yeah, we got our accumulator and our current value. And then all we're gonna do is add to that accumulation. So we know we're gonna keep adding to that accumulation, but what are we gonna add to this accumulation? What are we gonna keep adding to this accumulation? It's not just the current number. What are we doing to that current number? Yeah, we're squaring that current value. So this one we're squaring it. So there are tons of ways to square. We could do math.pal and take in the current value and say do it to the second power.

In this case, we could just do C times C. That would work, that'd be a square, right? And we can also do the other shorthand that we learned, I think a couple of classes ago, of the square, that shorthand for square. So asterisk, asterisk, two is shorthand for squaring. And then just to be safe, I'm gonna put my zero at the end here. And that zero is just gonna help me with what? It's just helping me if there's a certain what. Yeah, it helps with the initial value, specifically of the accumulator. So we don't have to deal with, is it a string? Is it a number? Right, it gives us initial value to start with. It helps us with the type conversion. There's a lot of goodies that we can get by having that number there to start. So we're just gonna put it there and we should be good. Especially since we know that we're adding to the accumulator, cool.

And then the second reduce is almost the exact same thing. We have another accumulator and another current value. And we're gonna add to this accumulator, but this time it's going to be a what? It's not gonna be a square, it's gonna be a what? A cube, exactly. Put our zero there to protect ourselves. And this looks good. I think we can, can I make this smaller just to see it on one line? I definitely, I'll make it bigger again. I just want to have it all one line as we talk about it. Go a little bit bigger. There we go, yeah. So for now, I have it on one line, but we'll make it bigger in a second. So the idea here is we can eventually call this function, compare square and cube, and we can pass in two arrays. And I'm going to pass in two arrays that are exactly the same.

I was gonna do 2 2 2 just to make my maths easier and 2 2 2 here All right. So let's let's break this down I did not study enough my break. No, no. No, this is just code wars tomfoolery here Let's take a look Let's walk through it, we'll, this, we wouldn't be able to see the result on this one, so let's just talk through it first. All right, so this first array, this two, two, two array falls into A. Wherever I see A, it's that first array. So here's this first array, A, and we're running a reduction of it, we're reducing it. And so reduce always returns what? Reduce returns what? A singular value, right? It returns a singular value. So it reduces all the way down into one value. And so we know out of this reduction will be a singular value, right? And so what we're gonna do is we are going to start off with an accumulation that we are gonna start adding to. So the very first time this runs, our 2 is the first value of C.

And we've gone ahead and created an accumulator that starts off at what? 0. We have our accumulator starting off at 0. We're gonna pass in 2. All right, so Zero plus two squared. So that's what? Two squared is what? Four. So we add four to our accumulation. And so now our accumulation is no longer zero, it is now four. And then we run again. We pass two in as the second iteration of C. We're gonna do it again where we square two, which is four. but now we're adding 4 to the previous 4 and we are at 8. The very last time this runs, we pass in 2 again, we're gonna square 2 again, we add that 2 to our accumulation, and we're no longer at 8, we are at 12.

So this first value, this whole reduction, reduces all the way down to what? 12, right? Reduces all the way down to 12. Great. Now let's look at the other side. We have B reduce. So now we're gonna call, if we see B here, we see that B is the second array. Wherever I see B it's that array. So it's the same thing as if I had plugged that array It's the same thing as two, two, two being here, right? We're reducing that array. And instead of having it there, instead of having there, we have the parameter of B. All right. Now, the very first time this runs, our accumulator is at zero and we're going to take our two, we're going to plug it in and two to the third gives us what? 2 times 2 is 4, 4 times 2 is 8. All right, so our first value is 8, and we add that to the accumulation.

So our accumulation is 8 after the first run. Then we know we're gonna pass in 2 again. That's another 8, so plus 8, we're at 16. And then the last 2 gets entered in as C. We wind up generating another 8 adding 8 to 16 and we're at 24 Now we could do it on the abacus if we need to So we can go ahead and start over again, and we're going to go ahead and reduce our All right So, this is, it's an abacus. You know why it's an abacus? Because in the West, we are taught how to count wrong. Here, let me demonstrate to you that you probably count wrong. When I say seven plus five, what do you do? A lot of folks are going to do this, right? A lot of folks are going to do that. A lot of folks in our brain will be like, all right, seven plus five. So that's, that's, we chopped the five into a three that gives us a 10 and then we have the two leftover. So we add the two to the 10, right? That's just like the wrong way to think about math.

Like that's so much extra work to do very simple like math, but that's just like how we grow up being taught math. We are literally taught math wrong. So I'm working on learning how to do math correctly. And that's why I have an abacus on my desk. I want to think about numbers in a better way. Cool, Abacus class. Once I get better at it, I may be. All right, so this is hard if you haven't seen Reduce yet. It is difficult if you are still kind of learning some of the basic methods. We've given a lot of homework that had these methods already in it, and you're gonna see these over and over in Code Wars. You have to know these methods. Reduce just has to be something that you're comfortable with, that you can use over and over and over again. And so make sure if you're not comfortable with reduce, you go to the MDN, you spend time going through it. You make sure that you then practice your reduce methods on CodeWars. You can type in reduce and find problems that just use reduce and practice them over and over and over again, right?

Yeah. Cool. Now everybody's like, wait, how do we count? Leon, you can't leave us like that. Maybe during office hours, I can demonstrate some quick maths to you. All right. So what we did here is we did two reductions, right? We reduced A to a sum, we reduced B to a sum. We are seeing the lovely shorthand syntax, the square and cube. And let's go ahead and make sure this actually works. Cool. Got a console log it, cause we didn't really do anything with the value. Whoop. There we go, all right, let's save it. Let's go back, let's refresh.

All right, and it's false, right? It makes sense that it's false, right? That the cube would be, that the, sorry, that the square would be greater than the cube. We know that that's false, so it worked, right? We know that A squared is always probably gonna be less than b squared when it's the, it is going to be less when it's the same exact numbers. Right? That's all. Cool. Now we could start mixing it up. We could start throwing in other numbers here, right? Like we could keep this two, two, two, make this like four, four, five, right? Save that. And then that's definitely true, right? like the bigger numbers squared is better than the, or sorry, bigger than the smaller numbers cubed. All right, next one here.

Actually, let's just, let's just breathe. I just want to spend one more second on this one and then we'll move on. So we have the idea here of this reduce. The reduce, all it does, And if you're, if you're struggling with reduce, just know it's the same thing. Every single time. I think that's the big thing with these, with these methods is that we think that it's, it's a trick or you're going to get got, no, it's, it's the, it's the exact same thing every single time. Right. And so there's always going to be an accumulator. There's always going to be a current value. Right. Right. There's always going to be greater. There's always been accumulators always going to be a current value. What you do to that accumulator, like do we add these values? Do we subtract them, multiply them, divide them?

That's what can change. So what we decided to do here is that we cube every number, sorry, we square each number and then add it to this pile of numbers, right? So we add it to a sum. We have a sum that's being kept here. We keep adding numbers, summing, summing, summing. Over here, we did the exact same thing. We're keeping a sum, but we're adding the cubes each time. Cube add, cube add, cube add, cube add. No. Should I be up creating a new repository each time I upload my daily code wars challenges? No. You only need like one repo. And then what I recommend is once you have that one repository, just create a new JS file and push your JS file. Yeah. So the idea here is that you want to have like each time you do a code wars, put it into a JS file and then push that to GitHub to get those green squares.

When recruiters look at your, at your, at your GitHub profile and they see those green squares, boom, good to go. Awesome. Today I really felt like a software engineer. Hey, I love to hear it. And I know a lot of folks are from the ketchup crew. So this might still be a little bit new. Don't worry, spend more time on the analysis than you do on trying to solve. Next one. All right. Return a new array. Sorry. Return a new array consisting of elements which are multiples of their own index in an input array. All right. So what we're going to have here is we're going to have an array of numbers. And what we want to figure out is if that number is a multiple of its index.

So let's take a look at that. Let's try to break down what it's being asked and then we'll kind of read into the rest of the problem here. So in this example, we have 22, negative six, 32, 82, nine, and 25. If we put the indexes under them, right? Why did I do that? Boom, there we go. If we put the indexes under them, we would have zero, one, two, three, four, and five. So now what we want to figure out is are these indexes able to divide evenly into the number, right? So like, can these numbers go in? Well, we can't divide by zero. So we're just gonna, that's a no. Can one go into six? Yeah, one can go into six, that's a good one. Can two go into 32? Yeah, so that's a good one.

And three go into 82? Not evenly, no. So it's not a multiple, right? Three's not a multiple of 82, because it can't go in evenly. So that's not a good one. Can four go into nine? Nah, can't go in. Not evenly, so it's not a multiple. And can five go into 25? Yes, it can and it can't even least that's a good one. Whenever you're trying to solve these challenges, not with that attitude, you have to like play with the values they give us. There's a reason why Code Wars gives you these test cases. Even if I have no idea how to solve it, I still play with the numbers and see if I can figure out a pattern, right? To see if I can figure out a pattern. And a lot of times just by walking through the test case, So I go, oh, that's what that meant.

And that's how I figure out what to actually do. So always play with the test cases that they give you because they can be a huge, yeah, exactly, a huge hint as to how to go about solving the problem. By working through these test cases, I now kind of have a better idea. Oh, when they say multiple, they just mean can the number go into it evenly? And so I know a way that I can check to see if a number is divisible evenly. What could we use there? what could we use to see if it's divisible evenly? Yeah, modulus, exactly. Some of the instructions are vague, exactly. And that's why we do Code Wars so much, is that we get used to these vague instructions, these things that are kind of weird, right? And we get more and more comfortable with that terminology. Don't feel bad if the terminology doesn't make sense until you put in that work with Code Wars. That's why we do it. Cool. Cool, so we did that, we know that one goes in evenly, two goes in evenly, five goes in evenly.

We only want those three values. So since I only want those three values, right? Since I only want those three values, what methods could I use here to just give me those three values? Yeah, this is like a good candidate for filter for me. I think a filter is really good here. And so all I'm going to do is filter out the values where the index can divide evenly into the element, right? Like one divides evenly into six, two divides evenly into 32, five divides evenly into 25. So I'm just going to filter out the elements where the index can go into evenly. And so the cool thing about filter is it's going to make this, it's going to make this problem pretty simple if you know what filter gives you. So let's go ahead and create a function here. Is I'm going to call it like is multiple, right? And we're going to pass in an array Okay, and we're just gonna return our array.filter. Now, when filter runs, what does filter grab as it runs? What does filter grab as it runs? Oof, excuse me.

It grabs the element, the index, and the array, okay? The element, the index, and the array. But if I want the element, the index, and the array, I need what for the element, the index, and the array? I need what for the index, sorry, the element, the index, and the array? What do I need if I'm gonna grab the element, the index, and the array? I need those parameters, exactly. So I can just go here. I don't need the array. I just need the element and the index. So I'm just gonna do E and I. E for element, I for index. If I wanted to, I could also grab the array, but I don't really need it for this example. So I'm just gonna grab the element and the index, and then I am going to just do my modulus math that we should feel a little bit comfortable with now. So I'm gonna do E mod I, and if that's equal to zero, then I know that I went into E evenly, right? Right?

Thanks, Pierce. I'm looking for I to go into E evenly. So let's let's run these numbers and see how this works. So the very first time this runs. Let's say we're using this array here The very first time this runs. What is e chat? What is e? Yeah, you would be 22 and I would be what what would I be Yep, it would be zero. And so this does not pass our check. Zero does not divide evenly into 22. We run into some issues with the dividing by zero, right? And so we are going to, doesn't pass the vibe check. So this does not get included in the filter. It's just not included, right? It's just not included.

Cool, let's look at the next one. The next time this runs, E is negative six, right? So E would be negative six and I would be one because that's the index, the negative six and one. One divides evenly into negative six. So that's gonna be included in the filter, right? That'll be included in the filter. That element will be included in the filter. Now remember, filter returns a what? What does filter return? What does filter return? It returns an array, just like map returns an array, filter returns an array. So if you pass the filter, you get added to this new array. So this new array that we're creating now has the negative six in it. Great. The next time this runs, we're gonna grab 32 and its index of zero, one, two.

So 32 and two, we know that two divides evenly into 32. So that means that 32 passes this filter check and goes into the new array that we're creating. Then we have 82 and it's index of three. Three does not go into 82. So it doesn't pass, right? Right? Doesn't pass this check. And so it doesn't get added to new array. Then we have nine and four. Four does not go into nine evenly, so it does not pass this check. Nothing gets added to the array. And then the very last one we have is 25 and five. Five goes into 25 evenly, so it passes this check, right, passes this check. And then 25 is added to this array. So what we would wind up returning, right?

What we wind up returning is this array. This array would get returned. Cool. Could we have used map instead? Sure, you could have. But I think filter is a little bit more applicable here because we are trying to filter out values, right? We are trying to filter out values. You're gonna find that you can really kind of overlap a lot of these methods if you want it to, but it's kind of like a semantic argument, right? We are literally filtering out stuff, so we should probably use filter. Cool. Now, remember, we had homework on all these methods. If you're a little lost here, make sure you go back to those array methods, It's homeworks that are in the following materials. And then this is practicing code wars. And like I said, I don't think all of these had the click tonight. I think maybe some of these you might've been able to get, but it's about being exposed to them, understanding what's going on, spending some time on the analysis that you can start to kind of digest it.

And the array cardio. Yeah, that was pretty helpful too. Cool. All right, last one here. Given an array of integers as strings and numbers, return the sum of all the array values as if they were all numbers. Return your answer as a number. So I know I'm getting a sum of a bunch of numbers, right? I'm getting a sum of a bunch of numbers. What method should be going off in your brain when you see a sum of numbers from an array? Yeah, reduce, exactly. Reduce should be, you should be seeing reduce, reduce, reduce, reduce, reduce, reduce. All right, so let's go ahead and try this. So we're gonna go ahead and create a function here. And we're gonna call this, Sum of array values, yeah, let's just call it sum of values. Cool, we know we're taking in an array and we are gonna return it.

So we're gonna return the reduction of our array. Oops, sorry, reduction of our array. We know that our reduction always has, right? Our reduction always has an accumulator and a current value. We know that we're adding to the accumulator because it's asking for a sum, return the sum. So I immediately just know, this is just something I'm not even thinking right here. I'm just saying, all right, accumulator plus, right? Not even thinking, just adding to the accumulator. And we're going to turn the sum of all array values as if they were all numbers. So that means we're probably going to have some values that are not numbers. Let's go ahead and call this real quick and then we'll finish it. sum of values and let's pass in an array. We'll pass in like five, three, two, and one, right? So let's save this. Let's just add the current value to the accumulator and let's see what we have working.

Let's just see what happens, right? I'm gonna comment out this one up here just so we don't see that run and I'm gonna comment this one out here so we don't see that run. Let's just have a simple reduce here and let's see what happens. Ideally we know that five plus three is eight plus two is 10 plus one is 11. So we should see 11, right? Let's just see what happens. Did I call it? Sum of values. Oh, I didn't finish my reduce. Forgot my parenthesis. All right, let's save it. Let's go back. Let's refresh. All right. Unexpected token, line 27.

Let's see what we got. What am I missing, folks? Oh, I didn't console log it. Oh, and I added an extra when I didn't need it. Boom. There we go. All right. There we go. Let's save this. Let's console log it. Fourth try? All right, so in the console we see 5,321 when it should have been 11. All right, so what's happening here? Yeah, we're getting that concatenation in the house. Concatenation is happening.

So what do we want to do with current value? What are we going to make sure that that is? What do we want to make sure that that is a what? The number. So let's go ahead and use the number method here. All right, so now all of our values will be treated as numbers. Let's go ahead and save this. Let's go ahead and refresh. What? What? Hold on, wait a minute. All of our values are numbers now. Why am I still getting the concatenating happening? Hmm. Yeah.

The start value. Since this is still starting with a string, what is it setting the accumulator to, to start with? What is the accumulator starting with? Starting as a string. So our accumulator starting as a string. So we need that, that savior that It is the zero, but now we will ignore that this is string five. The accumulator will start off as a number and it'll be good. There we go. Now we got our lovely 11. Seventh try. Cool. So we gotta remember that that zero can really save your butt down the line. Um, should we go like, should we go like full code wars brain? So we should, we should, we should never go full code wars. Should we go full cold wars?

Let's let's go full code wars. It's just a R. Alright. There we go. I think we just went full Code Wars here, folks. Let's see if this works. Oh, I didn't change it. Let's change it to S. Boom, we got our 11. Full Code Wars. Oh boy, when you spend a half an hour, sorry, when you spend 20 minutes trying to solve something, your solution is like 40 lines long and then you open up the code wars and it's this. And you're like, what the fuck you look at, you look at, you're like, you look at like your 40 lines and you like, and then you look at their like one line and then you look back and you're like, every time, that's every single time on Code Wars. To this day, this happens to me every single time. All right, let's talk about what happened here. Never go full Code Wars.

I think what we have here is still pretty readable. I like it. So what do we have here? All right, we have a lovely function expression. and we're using our arrow syntax, right? Leon, are you gonna teach us regex? Hell no, don't use regex. If you don't use regex to solve code wars, unless you absolutely have to, even if the number one solution uses regex, don't use it because you're not going to use that like in an interview. Knowing the basics must be helpful, but you should be learning how to solve stuff, not learning how to write regex. Regex is like a way of dealing with strings and a bunch of other weird stuff, yeah. But for Code Wars, fight the urge to use regex and solve them naturally. All right, so let's see what we got here. We named our function S and we have our arrow function where we're taking in an array. So the R is holding our array. We are reducing the array and whatever happens to this reduction is returned because we have a what chat.

What do we have when we're using an arrow function? Yeah, it has an implicit return. So we don't need the return keyword. Whatever this reduce reduces down into, like it's gonna reduce down into an individual value, that value will be returned implicitly. We don't have to say return there. Inside of our reduction, we have our accumulator and our current value. And then we got some JavaScripty stuff here. This syntax, the plus in front of the variable does what? What does that plus in front of our variables do? Urinary operator, hey. Yeah, it's the same thing as wrapping it in number, right? It makes it a number, right? And so here I'm setting the accumulator to be a number. And then here I'm setting the current value to be a number. And unlike everywhere else in JavaScript, the thing that really grinds my gears is that this won't work.

Because for this very specific time and moment in, this very specific moment in time, space actually matters in JavaScript. And so you gotta have that space there, right? Yeah, and so we have a wonderful full code wars brain solution here, but I don't ever go full code wars. Write out stuff with good variable names, with good function names that somebody else was to come along and look at your code and know what the heck is going on. Cool. Alrighty folks, hope you had a good review. I want to talk a little bit about homework real quick and then we're going to get into some Thursday's class, super meaty folks. Get your rest, come prepared. We got some heavy topics to get through as we jump into OOP. So I want you to do one thing before Thursday's class. Normally, I always give homework that is due the week later, but I want you to do one thing between now and next class. In the code for today, there is this lovely rainbow badge, and the rainbow badge is already set up to use the Pokemon API, right? So what I want you to do between now and Thursday, if you are able, is I want you to build something with the Pokemon API. Somebody maybe enters in a Pokemon and you get their type back, or something, just playing with it, get something to work using this API. It's set up so that you can do it.

It's actually set up to have nested calls. So I want you to play with it, just get your APIs. We don't have enough time to get the APIs today. So play with the API work, get something working, bring it back, right? I was really close to ending early, but we didn't. So make sure you work on the Pokemon API between Thursday's class. Due next Tuesday is some reading, some push reading, if you want, and a video to watch. Thursday, we are going through object-oriented programming. So please come rested, ready to rock and roll, and we're gonna have a lot of fun kind of pushing into it. All right, let's do a raid. It's a raid I've been wanting to do for a very long time. They used to stream with us in the OG category of science and technology, but now they're in just chatting. What they do is they're a PhD candidate in chemistry and they do like a bunch of like cool building out of a open source science lab and a bunch of other really cool stuff. So please join me over at Freckled Sciences channel. As always, send them some love, give them some follows, please.

They're an amazing streamer. I'll see you over there. Have a wonderful night. So happy that you're back. So excited that you're back excited to keep pushing We got a lot of good stuff baked in for Thursday next week. Let's get it. But let's raid. Peace everyone Each YouTube

End of Transcript