INIT

Episode 17: Super Advanced JavaScript 4 Total N00bz

Published:

In this gnarly podcast episode, we got Seth Whiting and Jake Pacheco, dude! Seth's the coding champ from Portland, Maine, riding the code wave for a solid 10 years. And there's Jake, the freshest coder in town, clocking in at 5.5 months, all the way from Augusta, Maine, man.

They're chatting about their coding journey, bro, and how they're both learning the code game together. Jake's even helping his girlfriend ride the coding wave, which is totally rad. They dive into React, props, and how they're leveling up their coding smarts.

Then they drop some knowledge on destructuring in JavaScript, a way to make your code super chill by simplifying how you grab object stuff without those pesky dots. It's like a shortcut to cleaner, sleeker code, dude.

Next up, they're talking asynchronous JavaScript, where stuff happens all at once. Seth breaks it down, explaining async and await, and why they're like the lifeblood of web development. And don't forget error handling and promises, man, crucial stuff in the coding world.

Through it all, they're preaching consistency and perseverance in your coding journey. It can get wild, but stay stoked, and you'll ride the code wave like a pro, bro!

Special thanks to Diarrhea Planet for our intro and outro music and @SkratchTopo for our artwork.

(Auto-Generated) Episode Transcript:

Seth Whiting: Hey everyone, I'm Seth Whiting and I am a developer from Portland, Maine and I've been coding for about 10 years now. And

Jake Pacheco: I'm Jake Pacheco, I am a barber from Augusta, Maine and I have been coding for about five and a half months now.

Seth Whiting: Five and a half months.

Do you feel like you know any more now than you did five and a half months ago? Yeah. Yeah. I mean,

Jake Pacheco: yeah. Yeah. I mean, even just fundamentals wise, but, but yeah, no, I'm, I'm actually pretty stoked about. It lately, I've been thinking about it cause I, Seth is, I mean,

apparently I think of you in the same way that I think of my girlfriend. So here we are. No, I, but I, Chelsea has been coding with me lately. And which is sweet. I, but she's like a few I don't know, a few lessons back in in. Codecademy, but it's, it's kind of cool because whenever she needs help, I can actually come over there and like, chime

Seth Whiting: in.

Jake Pacheco: And it's, it's been kind of sweet to be able to do that and like, like, she'll be like, ah, it's just not going through and I'll like, look over and I'll just be like, oh, yeah, it's this, which is like, I didn't think I would ever get there. So it's, it's just, that's. That's been probably where I see it the most is when I when I'm like kind of helping her out I'm like, oh man, like I I I get what what is going on

Seth Whiting: in this.

You know what I mean? Yeah, that's awesome Yeah, yeah,

Jake Pacheco: so that's been really cool. Yeah. Yeah, and just been uh Going going deep into this react

Seth Whiting: jargon Yeah. Yeah. How's, how's the like the introduction into the world of React been? Yeah. It's, it's

Jake Pacheco: been good. I mean, it was really a, a crash course on the the live coding sessions that we did.

Right. Which is great, but it's, it's been one of those things where I've been like doing it now in Codecademy's lessons. Mm hmm. And. I, I, I know a lot of it already, which is really cool. Like, it was like, oh yeah, yeah, I know, like, you know, I calling to different components that I've set up and stuff like that, like they're, they just got into that stuff.

And I was like, yeah, I knew all of this stuff. And then. Just understanding the HTML and, and some of the CSS and stuff and how all of that is written together and stuff like, I don't know, that, that was, that's pretty cool that I already kind of, got it just from the, the live coding stuff.

Seth Whiting: Right. Yeah, but the live coding stuff is like.

I was sort of just like blasting through a lot of it and like, wasn't really expecting you to like retain much of it, but just sort of like getting some, like the, I want to say like muscle memory or whatever, like, obviously you're not going to get muscle memory from just doing it once and like, kind of just blasting through it or whatever, but like you will kind of see it in action and then Code Academy kind of like explains like.

Here's what is actually going on. Yeah. Yeah. I mean, but some things

Jake Pacheco: in there, like when, when we were doing the live coding are self explanatory, like you're, you're writing in a file called Jake and a component called Jake. And when you export default Jake you have to import that into your other file.

What do you have to import?

Seth Whiting: Import Jake, okay,

Jake Pacheco: and it would be what import Jake as.

Seth Whiting: Cool guy. Yeah, yeah. As

Jake Pacheco: cool guy. But like, it's like, it's, isn't that like forward slash period or period forward slash space, whatever.

Seth Whiting: It depends on where it is. That's just like your file path. Yeah. Quote unquote, relative file path from wherever you are, like whatever file you're writing it in.

Yas.

Jake Pacheco: But I. But yeah, so just certain things like that, like that were just kind of like, you just pick them up and you're like, Oh yeah, that makes sense. It makes sense that you'd have to have these talk to each other somehow. Yeah.

Seth Whiting: Yeah. So yeah, did some of that.

Jake Pacheco: And then I did some stuff with attributes, which I think we had touched on a while ago.

Yeah. And it might've been off of podcast. When we were working on some like on click and on hover things, and I might be thinking of something else, but I think it was attributes. And. I, I, I think that it, it was that the same thing, Seth, like on mouse over, you'd, you'd like change the color or something would that be considered an attribute or what

Seth Whiting: would that be considered?

So there, there, there is like an on click attribute that you can use for a lot of a lot of like JSX elements and maybe even all of them, I don't know if any of them like ban you from using that. But I don't think that there's an on hover one

Jake Pacheco: or was it on mouse over?

Seth Whiting: Yeah, like mouse over like they let me think here.

If you do on mouse over like that sounds like you'd be using like an event listener to me, which is something

Jake Pacheco: that's something else entirely. Okay. Yeah, because that is what we were doing was, yeah, because we were just working on like making a thing look cool and making it so when you moused over it would fade in from white or whatever.

But so those aren't the same things, even though they're written kind of similar,

Seth Whiting: it seemed anyways. Like they,

Jake Pacheco: the pattern in my head, in my head,

Seth Whiting: I was

Jake Pacheco: like, Oh, I wonder if this is

Seth Whiting: what I did before. You can definitely do an on click event listener, but then you can also have like an on click attribute to your to your component which is it would kind of like, I guess it would work similarly, but you would write it.

Very differently. Okay. That makes sense. Yeah, yeah.

Jake Pacheco: That, that makes sense. I, I guess, I guess that flows really well into the differences of why to use props or use arrays differently. Cause like they, they seem to, they seem to kind of do a very similar thing or like it seems that way anyways, but is it, could you maybe give us a good definition of either or?

Seth Whiting: Yeah. Bye. So it's kind of, it's kind of apples and oranges. They're not really equivalent. And like conceptually speaking, they're not, they're not really like, you wouldn't really compare those two things. And what I mean is like, you could feasibly compare it to like an object. Because the objects do come into play with them, but so attributes are things that you add to your HTML, but also your JSX because JSX is basically like the JavaScript version of HTML.

Yeah. So if you have like a div tag. In JSX or HTML, and then you have like a style, a style attribute on that div tag that that is an attribute. So yeah, you would do like the angle bracket and then the word div and then space style equals blah, blah, blah. Okay. That thing where like you're saying something equals something within the, the tag, the HTML tag, that's, that's how you know that's an attribute.

Okay, yeah,

Jake Pacheco: no, I, I think that we might have gotten a little mixed up here. I, I was talking about cause I've been learning about props. Okay. And, like, props versus arrays. Was my question, but I don't know if what you're just talking about was leading into explanation about props.

Seth Whiting: It, it, it does, it does, it does.

But it's, it's also like a false, like equivalency for props and arrays as well. Yeah,

Jake Pacheco: I just know that you can call to, to a single prop in another function or something, can't you? Like if you just like, if you add prop as the argument. Then you can include certain props in the, the function that you're about to write or something.

Seth Whiting: Yeah. I think that's, I might be on my stuff. Yeah, yeah, yeah. So basically what we're getting into here is the concept of parent components and child components. Yeah. And if you have a parent component. That has some data in it, like, like an array or like, a, a string, even just any variable. So if you, if you say like name equals Jake, so, and then you have like your, you said, this is like a list component say, and that's your, your parent component, and then within your parent component, you have like, a whole like list of child components.

And each of those child components are called person, for instance. So you have like five different person like HTML tags that like JSX tags. So instead of them being called div, they're called person with a capital P because that's how you name your components. So this is a child component that you have written or that you are about to write.

And you're passing the attribute name equals Jake, and then you have a person underneath that, that says person space name equals Chelsea, you know, name equals Seth and so on. So you'd have like the, you know, your whole list of people and they, they have attributes of names. And then in your person component, which is usually going to be in a different file.

You access the name attribute via a prop, so the attributes on the parent component that are feeding into the child component become props in another component.

Jake Pacheco: Okay. All right. All right. That didn't, that wasn't, yeah, I didn't understand that. So, hey, hoopla.

Seth Whiting: But, but, so here's, here's where, like. I think where you're getting a little confused where, like, you're talking about arrays and versus props. I think what you're actually thinking about is objects versus props.

Okay. And the way that you access your props in the child component is when you write your child component and you open up Your parentheses so that your child component is going to be written as a function nowadays, like you have functional components and so you'll write that as like function space person, and then open parentheses, or you could do const person equals open parentheses and then the arrow function.

So you could write it as. The function keyword kind of function or the arrow function kind of function. Yeah. Either way, you're going to have some parentheses that you open up. And with react components, it's just always understood. And this is something that's specific to react. It's always understood that you are going to be able to access the props for that component as the first.

Argument within those parentheses so and that's just something that react does for you. They give you access to your props and as the first argument. So within those parentheses, you could just. Type the letter A and that would be equal to your props, or you could type the word props and that would be equal to your props.

Yeah, yeah, they,

Jake Pacheco: they have, they have us writing in props right now. And that's how I understood to make it so you could actually. See your props or access those but are you saying basically that it automatically does that no matter

Seth Whiting: what you put in that? Yeah, so it's it's basically you're you're declaring a variable that that they are going to assign the value of your props So you could call it props.

You could call it a you could call it like you could call it attributes if you wanted to confuse yourself, but I'm already doing fine, but the, the point is, it's just like a variable that you're declaring. Yeah. And but the value of that variable is like pre assigned for you via like the magic of react.

So that it's, that can be confusing when like react does something for you. It's like. Well, this is JavaScript, right? Like, why is it behaving, you know, in a, a way that only react behaves. It's just, it's just, it's just what it is. It comes with react. Yeah. But I mean, I

Jake Pacheco: don't know. I think that's kind of cool.

It means that, so basically if I'm understanding react and everything all together now, like in those are your modules, right? Are like

Seth Whiting: your that the,

Jake Pacheco: what builds up react, is that what it's called? Or a bunch of like,

Seth Whiting: modules. Is that what they are?

Jake Pacheco: I think you have the wrong word. What's the right word,

Seth Whiting: Seth?

Oh, oh, you mean, you mean like the, the, the things that React gives you to work with? Yeah, exactly. Yeah, I mean, you could call them modules and they might call them modules in, in Codecademy, maybe. I'm

Jake Pacheco: going to wing it and call them that. But, but what I'm, what I'm trying to get at is it's cool that it's That within all of that code, it's like automatically, Hey, by the way, when this happens, it does this, like, I, I think that's a positive, a positive, if anything, I mean, yeah,

Seth Whiting: no, for sure.

It's, yeah, yeah, it's hopeful. Yeah. Yes, for sure. But like, no question. Yeah. But I get what you mean, where it could be like like.

Jake Pacheco: Is, is, should I expect all JavaScript to react this way? No,

Seth Whiting: exactly. Yeah. Just with react. Yeah. Yeah. Cause like if you declare another function within your component, like it, it's not going to pass anything for you.

You need to pass everything, you know? Yeah. So to get, to get back to what I was talking about, so like you could, you could call and basically when you open that. Those parentheses at the top of your component, like when you're declaring your component, it gives you the props within those parentheses and you can access it by just Writing any word there.

And then if you, if you call it props, which you should, like, if, if you're going to call it anything, you should call it props because that's like semantically correct, then you can access all of your attributes by doing props dot name. Yeah. Yeah. That's going to give you the value of Jake. Yeah. Or, or the value of name.

Yeah. The value of the name attribute that you passed. Another thing that you will often see, and, and, and by the way, getting back to that, it, because it's like props. name, and that's how you get the value that tells you that props is an object. Okay. Yeah. Dot notation to access its properties. Okay.

Alrighty.

Jake Pacheco: So that's probably what I was confusing myself right there. Okay. That makes sense. It's just, it's these. It's just so many words to learn. Yeah. And what they all mean. But yeah, no, that makes perfect sense, though. Yeah, I was curious about that. And it's, Back to what you said earlier, or what you were asking earlier, where it's like, do you feel like you've learned anything?

Like, it's funny, because Because I am who I am. I like to listen to the older podcasts that we've done. And I like to pick myself apart and,

Seth Whiting: But anyway, that's just,

Jake Pacheco: that's just me on a Sunday, you know what I I was listening to, yeah, I mean, pretty much every episode that I've listened to all the episodes we've released so far where, I mean, it was a few months back now.

And. It's kind of awesome. That like, I'll ask a question on it. Like old school me well, a younger, a younger, more bright eyed Jake,

Seth Whiting: Young and naive Jake.

Jake Pacheco: Yeah. Young and naive blinded by love. He'll ask a question. And nowadays I'm like, Oh, that's not how you do that, Jake. Like, it's just kind of cool to see, like, it's, I don't know that it's, it's actually, I'm noticing that I'm like, Oh man, like, and then you'll explain something.

And I'll be like, that's exactly right, Seth. Obvious, but it's like, but still, it's like kind of cool that I can like critique. I mean, well, you too, I mean, well, just to be like, be like, Oh, that's what he, cause like, I'll remember you saying that stuff, like, and putting it the way that you do, but at the time I didn't understand it.

So it doesn't really like the information doesn't, you know, flow in my brain

Seth Whiting: yet. So

Jake Pacheco: I'll hear you say it again. And now that I know more and I'm like, Oh man, that is such a good, like, Transcribed A good way of saying that which is cool, a good analogy and stuff. So, hey, kudos, Seth, you know, it's it sounds good to me.

But yeah, no, I just, I just

Seth Whiting: thought that that was kind of cool recently.

Jake Pacheco: I've been like noticing that it's like, I'll be listening to it. And usually Chelsea's in the car with me and I'll just be like. Like I'll, I'll old me will have said something and I'm like, ah, I was like, that was wrong. That ain't right.

Like, like finding an, an old Facebook post from ages ago that you'd get canceled for. That's not how you should have said that. Yeah.

Seth Whiting: But

Jake Pacheco: every once in a while, those memories haunt me. No, they're not. They're never that bad. They're never that bad. The worst thing will be like a joke about like, I don't know. I don't know, something trivial.

Seth Whiting: But nothing, nothing. Go ahead and say it now. Canceled. Oh

Jake Pacheco: man, it's brutal. I have one. I have one in my hand.

I'm not going to say it. I'll say it out loud later. It's not, it's not like,

Seth Whiting: it's... Yeah. All right. That's funny.

Jake Pacheco: It could be set on like, it's always studying in Philadelphia. So it's not that bad. It's not like

Seth Whiting: that. Yeah. It's not. And yeah.

Jake Pacheco: Anyways, you put me on the spot now I have to like, let people know that it's like, it's not that bad.

It was just a 16 year old Jake was a, it was a man who could say whatever he

Seth Whiting: wanted. Yeah, yeah. Not no mass. So let me think here. So, yeah, and sometimes you'll see like when you do, when you do props, when you. Access your props, you, you will sometimes see people do what's called destructuring and this may be getting like, don't worry if you don't completely understand this, but it's probably easier to understand this if I explain it in a different way where immediately after you declare your function and like you're, you're inside of like the body of the function now, so like within the curly braces on the first line after that, you could say, Const and then curly braces name equals props.

Yeah, yeah,

Jake Pacheco: yeah, I think I've done this before, but continue.

Seth Whiting: Yeah, so that's for destructuring. Okay. So that gives you access to name as a variable everywhere else within that file after that. So you can, instead of saying props. name, you can just say name. Oh, that's

Jake Pacheco: cool. Yeah. I didn't, I didn't get that.

Like, I didn't understand that when they were doing it. Now it makes sense, but I didn't, I didn't understand that in Codecademy.

Seth Whiting: Yeah. So it's, it's, it's giving you access to all of the different properties of that object, the props object. And you, you could do that with name. And then like, if you, if you passed another attribute called Age, you could do name, so const curly braces, name, comma, age, and you could have access to both of them.

And you can do that with like, you know, 20, 20 different props, 20 different like attributes that you passed and that become props. And you could just,

Jake Pacheco: Basically separate them all by commas, and it'll just pass all of them, or like, it'll introduce those into the component that you're

Seth Whiting: working on. Yeah. So instead of...

All throughout your file saying props dot name. Yeah, it keeps you,

Jake Pacheco: it keeps you from having to do dot notation over and over and over again.

Seth Whiting: That's cool. So, and then to take it one level further. Oh man. Instead of saying like const person equals and then parentheses props and then the arrow function instead of grabbing it by the word props.

And then on the next line saying, like destructuring it by saying props, like curly braces, all of your props equals props. You can actually destructure it right within those parentheses. So

Jake Pacheco: in the, in the kind of, I would call it an argument, but is that the argument space? It feels like, it feels like I'm writing it like an argument, but

Seth Whiting: yeah, exactly.

So, so like in like regular functions, those are called. Arguments. Arguments. Okay. But in, like, React components, they refer to them as props because they're slightly different. Well, it's not even slightly different. It just automatically

Jake Pacheco: defaults to props, but it's your argument

Seth Whiting: space still. Well, the thing is, you can, the props object is your first argument.

Yeah, and then you could have another argument that and that wouldn't be a prop. Yeah. Yeah.

Jake Pacheco: Yeah, that's right. I figured that's I understood that from when what you said earlier when you said it's your first argument that yeah, you calling it the first means that there can be a

Seth Whiting: second third. Yes. Yeah, whatever.

Yeah, and I, I could be wrong, but I think that they automatically assign the second prop as well. And I think that they automatically assign it to Children, which we won't, we won't get into, but but regardless that, like, all I'm trying to say here is like, they automatically assign the first one. And I think they already, I think they also automatically assigned the second one.

Anyway, your first argument is the props. And that means that when you open your parentheses, you can then immediately open some curly braces and access name, age, whatever else. Yeah. Yeah. Curly braces. So you don't, you don't have to do anything about like, you don't have to write the word props anywhere.

Yeah. Yeah. It's just, yeah. From that.

Jake Pacheco: So is that just like, would they call that a, I mean, you just call that an argument, right? You're not destructuring anything or

Seth Whiting: anything. You're just, you are destructuring because you, that's still,

Jake Pacheco: Oh yeah. Okay. That's how you, yeah. That's how you know. Okay. Cool. Cause I was wondering about that because I noticed that they, like, man, they just be throwing curly braces anywhere in these codes, like where, well, wherever it needs JavaScript, wherever JavaScript is doing a thing, it seems like you're throwing curly braces in there.

So I was

Seth Whiting: wondering about that. Like, I, I want to be careful about that because. It's really just for when you're opening the body of a function or accessing, like doing something with objects specifically. Oh, it's object specific?

Jake Pacheco: Yes. Okay. Alright, I didn't know that because like that's, that's what I was wondering is like, because I've used it a couple times at this point and I'm like, okay, like.

Is this just whenever I utter a word of JavaScript, I have to have it in curly braces? No. But it isn't. Okay, cool. Well, that makes it so much less of a, I mean, there's moments like this, Seth, where it's like, there's something that is a mystery to me. And it's like, it feels vast because it's a mystery.

And it's like, oh man, like, how the heck, like, how many... I'm just going to be bright and curly braces all over the place, you know, because I don't

Seth Whiting: understand yet. You're just like, what's with all the curly braces? What's with all the curly

Jake Pacheco: braces, guy? Yeah. So it's, yeah, that's cool. Yes. I was just,

Seth Whiting: yeah. So when you, when you are, when you're declaring, yeah, so when you're declaring objects, you, you would say like const.

Person equals, or let, let me move away from person. That might be kind of like, confusing because I've been using that before any, any objects. So you could say like const cat equals, and then you open your curly braces. That's how you have you declare an object. That's also how you destructure an object, which is like you put the curly braces before the equal sign.

And then the name of the object after the equal sign, you kind of like doing it in reverse, you know, like you, you kind of structure it by putting the, the variable name before the equals and then the curly braces, and then give it all of its properties and then. To get all of those properties via destructuring, you, you put the curly braces before the equal sign, grab all of the properties, and then have it equal to the object.

Does that make sense? Yeah.

Jake Pacheco: Yeah. That makes sense. You're just kind of reversing. Yeah. In a way.

Seth Whiting: Yeah. Yeah. So let me, let me take it even one step further. Oh man.

Jake Pacheco: Here

Seth Whiting: we go. And tell you about how you would do this with arrays because you do it the same way. So when you declare an array, you say const, like dogs equals and then square brackets.

And then have like Sparky, Spot, Bido, whatever, just like a, a comma separated list of strings that are like equal to whatever you want in that particular. Example, I, I was saying their names but it could be, you know, you could say like their ages instead. And the only thing is like, you don't say like name, colon, whatever.

Cause that would be an object. You just have it be sort of like understood, like this array is an array of whatever I want, you know, it's just a list of whatever I want. Yeah. So the way that you, if you wanted to, you could destructure that array. By doing const and then square brackets, and then you could say, like, name one, name two, name three, and then equals dogs array, and then wherever you spit out name one, name two, name three.

It would be Sparky, Spot, Fido. Yeah. Yeah. Yeah. Huh. I get what you're saying. I think. Yeah.

Jake Pacheco: Yeah. I mean, it's, you know, it's, it's one of those things where I think future Jake will go. Yep. That makes perfect sense. Yeah. Yeah. But, but yeah, I still think I, I do get what you're saying in the sense, but it. Yeah, because you can call to

Seth Whiting: a, like,

Jake Pacheco: a certain part of the array also, right?

So it's like, the array might be five names, and if I call to number zero, or two, that, or, or zero, or one, or whatever, then it's gonna just pull that one up. Or are you saying that it would just pull all of them up for name one, name

Seth Whiting: two, name three? So basically you're, you're, when you destructure or destructure an array and you're saying like the, the first, first thing in the list of your like destructuring things, if that makes sense, is going to be equal to like the, it's going to be the equivalent of like dogs array square bracket zero.

Okay. That's at the first spot. Yeah, yeah. So the first, the first thing is going to be at the zero index. The second thing is going to be at the one index, you know, and so on. Yeah. Yeah.

Jake Pacheco: Okay. So, yeah, I get what you're saying now, I think. So I guess what confused me is when you were like, name one, name two.

That I'm like, well, how would you call to it in the array? Which is like name one. Yeah. You know what I mean? Yeah. It doesn't understand that name is the thing unless you have it as labeled as name,

Seth Whiting: right? Yeah. So like you're, you're basically declaring a variable that is assigned to the value of, you know, the first thing in that array, if that makes sense.

So you can call it name one, or you could call it like. You know, property one. Yeah, yeah. Or whatever.

Jake Pacheco: You're calling it this, and then you're calling to the actual, right? Yeah. Okay. Alright, alright. That's just it. I was like, wait a minute. I was like. I was

Seth Whiting: just confused. I was. Yeah. Probably a lot of other people are confused too.

Yeah, it's, don't worry about it. Yeah. Like you can totally, yeah, but you like, and, and, and, you know, just so that everybody knows it's perfectly fine to access properties in array by doing it. The, the, the other way, which is like dog's array square bracket zero, you know, then, you know, it's the first thing in there in the array, you don't need to destructure.

Arrays, you don't need to destructure objects. You can, you can totally use dot notation for objects too. And that's perfectly acceptable. Yeah. It's just like some people prefer to destructure because it's like, you don't need to do something dot something else. Yeah. You can just do that. Something else.

Yeah.

Jake Pacheco: I guess a question is, is this one of those things where if you saw it from another coder, you, you might be like, Hey, by the way. No, you could do this. No, it wouldn't. It wouldn't. It wouldn't be a thing where you'd go. Ah, this could be written better or anything. No, it doesn't. It doesn't matter as much.

Seth Whiting: Right. It doesn't matter as much. And like I. I tend to destructure things whenever I can. I just like, I just like doing that.

Jake Pacheco: I mean, it seems shorter in a lot of ways and it seems more cleaner. It seems cleaner. I guess,

Seth Whiting: but there are definitely definitely use cases where it doesn't make sense at all to do that.

Like, I actually want this whole object and like, or like, I want most of the properties of this object except for like this one I mean, in that case, you can do another little tricky thing, but regardless, like you can say, like, I want specifically like this one property of this object, but I also want the whole object.

So I'm just going to do the whole object and then access that one property by doing object dot property. Yeah. If that makes sense. Yeah. So that kind of thing. And also destructuring arrays. You, you don't see it a lot and you probably don't use it a lot, like you would more likely use like the, the bracket notation for, for getting the properties of arrays.

Yeah. Now,

Jake Pacheco: I, I, I'm, I'm, yeah, I'm just, I, I'm also kind of curious. Could you

I'm going to try to explain something that I don't fully understand, which is fun. So, could I also

destructure? And then in my function or whatever, like, like what is it? Pop for an array to get rid of one of them. I think that's, once you pop and then write the number that you want to get rid of or something, is that what it is? Cause I know there's pop push, there's pop push. There's

Seth Whiting: another one.

Yeah. Anyways, anyways,

Jake Pacheco: I, can I, can I continue the, the either dot notation? To, to remove, like, if I didn't want the full array, if I wanted all but, like, one, could I call to all of it, and then just add, hey.

Seth Whiting: Get rid of this one. Yeah, so, there's, there's things, there are ways to do that via destructuring.

Okay, yeah, that's

Jake Pacheco: what I was kind of wondering. If you didn't want to import all of it, if you wanted to import all but a couple or something, that way you can mention them all but a couple over and over again without destructuring?

Seth Whiting: Yes. Yeah. So basically like you, you could, you could write your destructuring kind of like statement in a way where like you, you write the, the two things that you don't want in your curly braces.

So you're destructuring those two things. And then. The comma, and then what you would do is do dot, dot, dot, and then whatever you want to call it, like, usually you will call it like rest, like the rest of the stuff. So by writing dot, dot, dot rest, that'll give you everything in the object, except for the two things that you specifically structured out.

Jake Pacheco: Huh. That's interesting. I didn't know that existed. That's cool. Yeah. Yeah. Yeah. I was just, I was just curious about that. Interesting.

Seth Whiting: Yeah. It's pretty useful. Yeah.

Jake Pacheco: It seems like it would be, I mean, just, just for, you know, so you're not just retyping the same thing over and over again and stuff like that's kind of sweet.

So I guess another question then would be, are there other things that you can destructure or is it pretty much just like. Arrays and props.

Seth Whiting: Arrays and objects. Arrays and objects, I mean. Yeah, and those, those are, those are, as far as I know, the only things that you can destructure, although strings You might be able to destructure because you can do array like things with strings.

Yeah, you can, you can kind of treat strings as a arrays. I know in a lot of cases this might not be one of them, but I'm wondering if if you do like const like a b c d like square bracket a b c d e and then equals in parentheses Or not in parentheses, sorry, in quotation marks, Jake. I wonder if A, B, C, D, E would give you J, A, K, E, and then nothing like E would be undefined.

J, A, K, E. I can't. A, B, C, D, E. Who knows? That's four. Yeah. I forgot how to count for a second. It's okay.

Jake Pacheco: I I've done that multiple times on this podcast. Seth and I work outside of this. Okay. So, you know, I'm sorry. I'm sorry. We're not perfect.

Seth Whiting: Let's see if you can destructure strings.

Jake Pacheco: He's finding out.

Seth Whiting: Can you destructure strings in JavaScript?

It takes a minute.

Well, aren't you just a curious one? Unfortunately, you cannot destructure strings in JavaScript directly like you can with arrays or object. However, you can treat a string as an array like object and access individual characters using array like syntax. For example, let str equals hello lad, a, b.

Aren't you just a curious one? Unfortunately, you cannot destructure strings in JavaScript directly.

Jake Pacheco: Don't repeat it. You

Seth Whiting: got it right. Who does? I, did I? Yeah, that's what it sounded

Jake Pacheco: like. Okay. She said that you cannot. You can call to each string I'm not gonna, I'm not gonna, I just heard it, but she, but she literally spelt out the first letter or whatever.

So I think, I think you got it right, buddy.

Seth Whiting: Okay. Who does? And you know what I didn't at first,

Jake Pacheco: but yeah, well, yeah, because she said she started it with you can do objects and arrays. But then you can also do it similar like you can call to string similarly to the way you can do an array or something like that.

She's, she, she kind of explained. It sounded to me through my my baby coder ears that you

Seth Whiting: got it right. Wait, hold on. I need to, I need to,

Jake Pacheco: he needs to know he can't, he can't let it go. Come on.

Seth Whiting: How do you destructure strings in JavaScript? Takes so long. It takes

Jake Pacheco: a minute, it's okay. It has to type it, it has to send it.

It's sending it around the world, Seth. Give it a break. Well honey,

Seth Whiting: to destructure a string in javascript, you can use the built in destructuring assignment syntax. First, you'll want to enclose the string in square brackets and assign it to a variable. Then, you can use the object destructuring syntax to access specific characters in the string.

For example, let's say you have the string hello world. You could destruct It, it only, it, it only goes to like six To destructure a string in javascript you

Jake Pacheco: can use the X amount of This is that to this

Seth Whiting: is that to, you'll want to enclose the string in square brackets and to sign it. I need to, I need to do some more work on this.

Is

Jake Pacheco: that this is that that, that token limit

Seth Whiting: that you're running into? Yeah. It's the token limit. That's what it's, yeah. Oh, I know,

Jake Pacheco: I know

Seth Whiting: because we talked about it, so it sounded like you can do it, but you need to like set it up mm-hmm. differently than you normally would. Yeah. That's what it sounded like to me.

Mm-hmm. . I mean, I was hoping to get to the bottom of it immediately,

Jake Pacheco: but But we got to like, halfway to the bottom

Seth Whiting: of it. Yeah, not hit the token limit.

Jake Pacheco: Oh, almost made it another, another joke. Wouldn't be good. 16 year old Jake would have said it. Anyways,

Seth Whiting: anyways. Yeah. By the way, that was our new robot co host.

Yeah. That she's what's its name? I don't know. I think I, so she's, she's programmed to sound like a. Southern, like an elderly Southern woman. Yeah.

Jake Pacheco: A robot that was programmed by an elderly Southern woman is what it's kind of going for, because it sounds like a robot, but it's diction is very Southern,

Seth Whiting: right?

Yeah. I went to I went to college in Nashville and there is like the sweetest, like. Older Southern woman, in the cafeteria and she, she like checked you out and check you in to the cafeteria and stuff. And her name was Miss Tanya. And she always called everybody baby. And it was like, it was like, I already have grandmas that I love and I wouldn't replace them, but I want another one and I want it to be you.

Jake Pacheco: Yeah, that's so funny. The other day I was at a Where was I? I ran into like Big Lots or something. I think it was Big Lots. And an older lady called me baby. And, and dude, it, it

Seth Whiting: spun me. I was like, Yeah, you don't see that much in Maine. Like, like, yeah,

Jake Pacheco: but I don't know. I'm not used to it. I'm just not used to it.

But it's funny because my apprentice is from Arkansas.

Seth Whiting: Okay. So he has, like, a,

Jake Pacheco: a southern accent, and man, do we just, like, laugh about it all the time. Like, yeah, he'll just say like the most like wholesome. Oh, oh god. Darn it. Like it's like, oh, man

Seth Whiting: Ted lasso type. It's it's

Jake Pacheco: yeah, exactly exactly and he's unbelievably kind He's a very very good person and and that he's getting you know We're we're breaking him down to make him a little bit more mean but it's it No, no, he's such a sweetheart.

Seth Whiting: But but yeah, I'm calling the robot miss Tanya Miss Tanya.

Jake Pacheco: That's, that's a very sweet, like, homage to Miss Tanya. Yeah. Yeah. It's a very cute robot, too. And it has, like, buildings in the background. We'll, we'll post a picture of it or something. You guys will see it at some point, but it is very cute. I saw it, I was like, oh, I like this.

It's, it's

Seth Whiting: got good vibes. Yeah, I need to up the token limit, I think. Yeah. Yeah. Anywho. And I was thinking to speed it up. Yeah. I mean, it's,

Jake Pacheco: yeah,

Seth Whiting: it's, it's, it's, hey, you just built the thing,

Jake Pacheco: you know, it's like, what if we, what if we had these kind of expectations out of babies?

Seth Whiting: You know, I do, I do,

Jake Pacheco: my baby's got to be reading

Seth Whiting: now, no, how to destructure strings in JavaScript.

Yeah.

Jake Pacheco: What are these loser babies?

Seth Whiting: No, they're

Jake Pacheco: good

Seth Whiting: babies.

Jake Pacheco: Anyways, anyways, I, so I had a few notes

Seth Whiting: written down today.

Jake Pacheco: And asynchronous JavaScript is something that I haven't run into yet. And I'm wondering if we should talk maybe a little bit about it just to kind of breeze over gloss over what it is because hopefully by the next episode, I will have finished the full React course in Codecademy and we can start to work on the asynchronous JavaScript course in Codecademy.

And we'll have more to kind of expound upon at that point, but I right now. You want to give us, give us an idea of what it, because I've, I've heard it mentioned a few times and I've seen, obviously there's a course on it and stuff but I have no idea what,

Seth Whiting: what it does or is, or yeah. Yeah.

Jake Pacheco: So

if this is out of left field too, you can just say no,

Seth Whiting: no, not at all. It's really important. And it's, it's like you, you, if you're doing app development specifically, you definitely need to know. How to do it and what it is and how to do it and like how to work with it and blah, blah, blah. The thing the thing is I asked miss tanya about asynchronous javascript and she basically said And it's you know, this she's always right i'm wrong here, but She basically said the opposite of what I of how I would describe it.

So the thing is the way that it's like defined is Allowing things to happen at the same time. So, when you're doing synchronous stuff, basically you're saying like, Do this, then this, then this, then this. Mm hmm. Asynchronous. Allegedly is do all of this stuff at the same time, you know, like, but the way that you actually use it is kind of the opposite of that and, and like people, you know, who fully grasp this are probably like somebody could explain this to me.

And it would make sense to me eventually, I'm sure, like I could ask Ms. Tanya five more times.

Jake Pacheco: Write it in the comments or whatever you're on. Message us, do something to be like, Hey, I am the genius that knows the actual, the true reason for asynchronous JavaScript's definition.

Seth Whiting: Yeah. So in knowledge. In practice, the, the way that you use it is say, do this thing.

And then once this thing is done, do the other stuff. And the way that you write it, usually like modern Java, JavaScript, you would say you just declare a function called like get data or whatever. And then within that function. Or, or sorry, when you, when you declare that function, you declare it as an async function, which is short for asynchronous.

So you'd say const getData equals, and then before your parentheses, you'd say async, parentheses, and then error function. And then open up your, your body and then do, do step within the body. And specifically the step that you're going to be doing is when you're writing it, you're going to say like const data equals, and then you use the word await and then write, like you'd like call a function that like takes a minute to execute basically.

Okay. So that's called async await. That's like that. That they kind of go hand in hand, like you can't, you can't write the word await and, and have it work without having the word async at the top of your function, like without declaring an async function. Yeah. Huh. So when you do const data equals await.

You're usually going to be using what's called a fetch, and that's when you hit an API endpoint, you hit that via a function called fetch that's built into JavaScript now. It didn't used to be, but it is now. And when you, when you fetch an API endpoint, like, you know, Test. com slash API slash dogs or whatever, that's going to give you like a list of dogs eventually, but it takes a second for, for you to like, reach out to some server somewhere, grab the information, send it back, and then it gives it to you in.

Usually like a JSON object. So, or, or if you don't know what JSON is, it's basically just an object. So

you await that and then you do your other stuff. So that to me sounds like you're not running things at the same time.

Jake Pacheco: All at the same time. Cause, yeah, because the other stuff isn't run until that comes back because you're, you're, so maybe it's instead of, instead of organized in a way that kind of if this happens, let this happen.

It's kind of timed instead, in a way.

Seth Whiting: Yeah.

Jake Pacheco: I mean, and, and so if you wanted, you could have them all do the functions all at once, but you don't do that because that's not how you nor that's not how you would write it, but you could, instead of, instead of normal JavaScript, it. Is forced, it's limited to having to, you know, go through the whole thing.

You know what I mean by that? Does that make sense at all? It might not. It might not, like, Cause you're talking about the await thing, but maybe the await thing maybe they're talking about, like, it has the ability to not, to do it without the await. And it could just do it all at once,

Seth Whiting: if it wanted. Yeah, like, maybe, maybe, like, maybe what I'm missing is, like, The, the fetch thing, if you don't write.

Wait, yeah, then it's not going to wait for anything. It's just going to do the other stuff and throw it all out there. You get, you get the result whenever you get it or whatever. Yeah.

Jake Pacheco: Yeah, I'm saying, I'm, I'm not saying that's like a correct way. I'm just saying maybe they define it that way because they're just like, Oh, you could do all this.

It's like, yeah, but you don't, so like, why are you bringing it up? But like, , so meaning, meaning that the robot is wrong and Seth is right, is what I'm

Seth Whiting: trying to defend here. Seth, no, miss Tanya's always right? Yeah. Yeah. But so, so yeah, like basically you grab the data and then you do something with it.

You know, you have to wait for the data to get there before you do something with it. Okay. So that's kind of like how you use asynchronous. JavaScript. Yeah.

Jake Pacheco: So you're kind of, writing, writing the timeline rules for the JavaScript versus writing the JavaScript and it just doing it

Seth Whiting: automatically. Yeah.

Jake Pacheco: Kind of. Does that kind of make sense?

Seth Whiting: Yeah. Yeah. Yeah.

Jake Pacheco: All right. Yeah.

Seth Whiting: All right. So, but then you can, you can also do like a lot of. You, you can do a lot of async mm-hmm. stuff in a row. Like once you get the data, then access some properties of that and then make another a p I call based on the properties of that.

You, you, yeah. The, the initial data that you got. Yeah. And then you do another one

Jake Pacheco: after that. It kind of reminds me of that time we were talking about the keeper app and using what's it called, a p I.

Seth Whiting: Chat GPT's

Jake Pacheco: API in order to find enclosure sizes or enclosure setups or whatever and you were like, oh yeah, but you'll run into that token problem where, you know, if you, if someone types in ball python and it sends out to, you know, to chat GPT, hey, Ball Python enclosure, then it's going to charge me every time someone searches ball Python.

And then I was like, well, could you make it? So instead of just automatically sending out, it could send out to my database first to see if I already have that. If it doesn't, then it can send out to chat, GBT, and then it can retrieve that. It can save it in my database and give it to the person. Right.

Seth Whiting: Yeah. And

Jake Pacheco: that's kind of, it's kind of the idea, right? Where it's like, yeah. And, and that's, that's, I, I, yeah, I almost just. Talked about something I, I, I had mentioned asynchronous JavaScript and that's kind of why we are talking about this. I had mentioned it off episode and that's why I was talking about when I, when I was like, I feel like it's kind of like understanding how to, that I use the word algorithms, but how to write something that I don't know, like is an actual solution to something.

Like that's, that's what that feels like

Seth Whiting: kind of is

Jake Pacheco: like, it's a solution to, to like, Needing an answer and checking another file for answers while you get another answer is like a way

Seth Whiting: you can use that kind of a thing. Yeah. Yeah. Yeah. So if you, if you, if you were to write that, you would say like, like API data, like your, your own API data, like, yeah, like keeper data equals.

Await, and then the fetch to your own API. And then if that comes up with nothing, like if keeper data equals undefined or null or whatever, then await the chat GPT API fetch. Yeah. And then go, go off of that. Yeah. Yeah. That's exactly. That's okay. All right.

Jake Pacheco: Hey, I was talking about that a while ago.

That's kind of, I mean, but that's just made sense how that would work, but yeah. I didn't know the whole, any of the await

Seth Whiting: stuff or any of that. Yeah. That's cool. So, so to kind of take that in another level deeper or whatever, there's another way that you could write that, which is. Instead of writing async function and then opening up the, the, the body, you could just write a regular function and still have the, the fetch or, or whatever asynchronous like function that you're trying to call.

So like you could, you could just do fetch, you know, the API endpoint. And then after that function, like after the close parentheses of when you're calling that function. You would do dot then and then open another set of parentheses and that the first argument that that gives you that that then function gives you is what you would have gotten if you did the const data equals.

Fetch. Huh. Wait, fetch. Yeah. So, it, it, when you do the then, the first argument, you could name data and work with it within the body of, of that then function, the, the same way that you would have worked with it if you were like the other way with the fetch and all that stuff. Async and await. And await.

Yeah, that's what

Jake Pacheco: I meant. Alright. Huh. Interesting. So that's just like a cleaner way to write it basically?

Seth Whiting: Not cleaner. Or just,

Jake Pacheco: is it just like the thing we were talking about earlier with the dot notation

Seth Whiting: versus the... Yeah, so there, there are certain use cases for... The then stuff that would make sense and, you know, in, in certain, in certain cases, then, but I would say it's cleaner to write it with the, the async and await you're not kind of like.

Only working with the data, basically, you only have access to the data within the parentheses of that then function. All. Yeah. So, so basically like, if you want to work with that data outside of those parentheses, basically it's, it's, it's, it just kind of like feels freer, I guess. Yeah. Yeah. I'm trapped in the parentheses.

Yeah. But along with, then you also have access to. Something called catch, which is if the, if you typed the API endpoint wrong, like if you, if you left out a letter, like spelled something wrong, and then it would give you an error and it would never, it would never hit the dot then like function, like it would never give you the data.

Yeah. And if you didn't have a dot catch, you, you wouldn't really. No, what's up or whatever? Yeah, the first argument of the dot catch is an error It just gives you like an error message basically, so all right

Jake Pacheco: is is this what you were talking about maybe? episode or two ago when you were like What are you putting out there for?

Error something it was like what

Seth Whiting: was it? It was error handling. Yeah.

Jake Pacheco: Yeah. Yeah, it's kind of like that.

Seth Whiting: Yeah. Yeah Yeah, this has to do with error handling. Yeah Yeah, I I

Jake Pacheco: know that that like, you know puts up like a little thing on the actual screen that says like hey error yeah, just so people know that something's actually going on but Like, so this is covered under that kind of where it's like, it'll kind of help the coder find an error when there is one.

Yeah. Huh. Interesting.

Seth Whiting: That's cool. Yeah. So then along with then and catch, you have one other like function property that they give you which is a dot finally. And that, that will call that, that will, you'll. It will, you will hit that stage of like the, the asynchronous, you know, workflow, whether it errors out or not.

So if you have like a, if you have like a loading state on your component, you could call like set loading is equal to true before you ever call your like fetch, and then you could do set loading is equal to false. At the, at the finally part, because whether, whether you actually got the data or you got like an error, you still wanted to stop loading.

Like you don't want it to load forever. Yeah, that makes sense. So you could say loading is equal to false in both your then statement and your catch statement, or you could just do it once in the dot finally. Yeah, yeah,

Jake Pacheco: that makes sense. Yeah. Yeah, I think that makes sense because that means that in in both of those other statements It would show it.

It would be false It would shut it off Or you could just do it at finally and it would just shut it off at the end of when whenever things come into

Seth Whiting: fruition Or whatever. Yeah. Yeah, huh?

Jake Pacheco: Interesting. So how broad is Is asynchronous JavaScript, does that cover a lot of it? Or is it like, am I gonna dip my toe and realize that it's a an ocean

Seth Whiting: So like with JavaScript , so there's there's definitely, definitely a lot more to it. Mm-hmm. , the main thing that we didn't get into was like, how to write your own asynchronous functions. Mm-hmm. . So like, we've just been talking about like accessing asynchronous data basically. Mm-hmm. . But there, there are ways to write functions that are like intended to be weighted on if that, if that makes sense.

Yeah. Okay. Intended to be weighted on. Yeah.

Jake Pacheco: So. I'm just trying to, I'm trying to, I'm just trying to like,

Seth Whiting: okay. Alright, so like,

Jake Pacheco: do you mean that as in there are functions that are Waiting to happen until something waiting for something to happen before they can happen or

Seth Whiting: like, let me give you an example real quick.

So, like, if you, if you have like a a kind of like processing intensive, like function that you, that you need to write and you have like another function that you need to, to like. Call immediately after that, like process intensive thing has run, then you basically need to set it up as an async, like as a, like a function that is going to be called.

Like asynchronous, asynchronous. Yeah. So the, the way that you would do that is with something called a promise. Like you, you there's like, I guess it would be technically like an API in JavaScript and it's sort of like, an API in a way that's like different than the way that we normally talk about it.

But basically it's just like a pre written function that JavaScript gives you. To, to work with, and that's called a promise and basically you can, you, the way that you set up a promise is you say like, like heavy process or something equals, and then you'd write the word new space and then capital promise.

And that's sort of like calling a class basically. And. And within that promise, the first argument that it gives you, or sorry, yeah, the first argument that it gives you is resolve. And the second argument that it gives you is reject. And so within, so that would be like promise, open parentheses, and then open another set of parentheses, which is the, within that you write resolve comma reject.

And then close the parentheses equals arrow function and then open up the body of your like your function that you're, you're writing here. So

then you write all of your process intensive code like that will take a minute, like not a minute, but like a couple seconds or a second. And then at the bottom of that, you would do, you would call resolve and then open and close parentheses. And that's, that's like how you know you're finished.

Basically. And then if, if you have a, a case within your code where like, Oh, I know that if this thing exists, then something went wrong or something, or like, if this thing doesn't exist and something went wrong, then you can call reject open and close parentheses. And that will like, that will return like an error when, when you eventually call this function.

So, So then when you have set all of that up, you would then in your async function, when you're like writing the body of that function, you can call this like process intensive function that you just had that you just wrote as like const data equals, I forget what I called it. Like. Process, heavy function or whatever.

Yeah, yeah, yeah. Heavy process function you do equals a weight process, heavy function. Mm-hmm. and then af and then after that, whatever you wanted to call after that, that whole thing. Brand. Yeah. Yeah. So yeah, so all of that is basically to say like the the fetch function that I was talking about before where you can like access a p i endpoints and stuff.

Yeah. Yeah. That's written as a promise. Ah huh. Like that, that whoever, like set up that like fetch functions like in Yes. You know, the, the W three or whatever, like, yeah. High up body or whatever. They set it up as a promise because like you await promises and that's what what you actually like get. So, So that's like how you, that's how you set up the things to be awaited on the thing, the things, everything that you await.

Is a promise is a promise. Yeah. Huh.

Jake Pacheco: That's, that's kind of funny. You're awaiting promises. It's a, it's, it's, it's written. It's, it's a smart way to write it though, because it's memorable. Like I can remember like that makes sense to me.

Seth Whiting: Yeah. There's like, I promise I will eventually give you data. Just wait.

Yeah. Okay.

Jake Pacheco: I'm waiting on it. Yeah. Yeah. I like that. Yeah. That's what I mean. Like, I, I kind of, I appreciate it when things like click like that, you know,

Seth Whiting: Sweet. All right. Yeah, I'm sure nobody like followed that promise. No, no, I mean, but like you will get into it and then you'll be like, oh, that's what he's talking.

Yeah,

Jake Pacheco: exactly. Which is what I kind of wanted this to be is kind of a small introduction into it. And then like the next episode, I think will be a lot more. Into some asynchronous and some just other stuff that I will have learned by that point,

Seth Whiting: right? And for like other people following along, if you're, if you're kind of lost to that promise stuff, if you take the, the asynchronous JavaScript course on Codecademy, which I did, like, that was one of the ones that like, really, like, changed my like, career.

Yeah. Yeah. It's like, I went on to Codecademy and took the asynchronous JavaScript course. And then I was like, Oh, I understand. Like a lot more now and like, it can do a lot more now, like that allowed me to do a lot more really quickly. And like fully understand, like. How to write like API calls and stuff like what you do a lot when you're writing an application.

Yeah,

Jake Pacheco: yeah. I also wanted to just let everyone know where I am at currently. I am in Learn React course on Codecademy. I'm at 41%. The lesson currently is props and yeah, I just wanted to let people know just in case that they were following along, like I said, within the next week, week and a half I should finish that entirely.

And then I'm going to be jumping on over to asynchronous JavaScript. Unless Seth has a different idea for me, if he wants me to jump on to something

Seth Whiting: else. No, no, that sounds like a good plan. Yeah, okay, sweet.

Jake Pacheco: But yeah, that's where we be. And yeah, I, I, I think that's, that's all of the questioning that I have for tonight, unless you have any other thoughts or anything like that.

Seth Whiting: Nope. No, don't just you know, I keep, keep swimming. Just keep at it. I mean,

Jake Pacheco: it's, I, I've been preaching it to Charles, just like, Hey, just keep going. Even if it seems like, you know, not, not the most fun thing and it's like, it's. It's a a means to an end and eventually, like where I'm at right now, which obviously I'm still so new at it, but like, just where I'm at right now, it's not such a struggle learning things when they explain something, I don't, I don't really need to read it five times anymore, which is pretty sweet because I was listening to a, you know, maybe episode five or something is out when this came out.

And like, it's. It was bleak. And I remember that, that rut where it's like, man, like I don't, I just want to understand, but it's, it's so hard to even, I don't even know what half these words are at this, at this point I read something and it's like, ah, yeah, I get what they're asking me to do. Which just to get to that point, it's like starting to understand how a car works.

Sure. I need to understand the names for all of the parts still, but. I understand kind of how the whole thing works, at least a little bit. I don't know, so when they explain something to me, I'm, I'm dumbfounded that that had a name instead of being dumbfounded as far as like, okay, what, you know, right, right.

It's like, yeah, this is doing this, this and this. Like now I'm like, oh, I didn't know it was called that but it makes sense that it's doing that. You know what I mean? Yeah, which is which is pretty huge. So it gets easier is all I'm saying. It

Seth Whiting: does get easier Right, like like you were saying like you there are definitely points like not not just like a single point but several points where you're gonna be like Like I just don't I don't really want to do this anymore.

It's a drag. Yeah. If you can power through those, like, yeah, the consistency will pay off. Like consistency is key. You know, just do a little bit. You know? Yeah. I mean, if you

Jake Pacheco: can a little bit, yeah. If you can't do a little bit every night, do it every few nights. If you can't do it every few nights, do it once a week, make sure that you do it at least once a week.

Like that's what I've been trying to do with myself. Cause Yeah, but we're getting there and and I appreciate anyone listening and I appreciate you, Seth. As always. Thank you so much, man.

Seth Whiting: Yeah. Thanks for listening. Thanks for talking.

Jake Pacheco: Yeah. I hope everyone has a great week or weekend in the future when you're hearing this and, yeah, have a good

Seth Whiting: day.

All right. See ya.