From Learning New Languages to Learning New Technologies - JSJ 629

Tony Alicea is a Udemy and Pluralsight Instructor. They delve into the crucial topic of understanding and mastering technology, featuring insightful discussions and experiences from our speakers. From the shift in focus from technical problems to effective communication and marketing to the significance of deeply understanding a system rather than just focusing on coding, they provide valuable perspectives on building strong foundations, navigating challenges, and staying current in the ever-evolving tech landscape. They also touch on the importance of curiosity, learning by doing, and the potential impact of AI-generated code. Join them as they explore the nuances of learning and understanding technology in this engaging and thought-provoking episode.

Special Guests: Tony Alicea

Show Notes

Tony Alicea is a Udemy and Pluralsight Instructor. They delve into the crucial topic of understanding and mastering technology, featuring insightful discussions and experiences from our speakers. From the shift in focus from technical problems to effective communication and marketing to the significance of deeply understanding a system rather than just focusing on coding, they provide valuable perspectives on building strong foundations, navigating challenges, and staying current in the ever-evolving tech landscape. They also touch on the importance of curiosity, learning by doing, and the potential impact of AI-generated code. Join them as they explore the nuances of learning and understanding technology in this engaging and thought-provoking episode.


Sponsors

Links 

Socials


Picks

Transcript

Charles Max Wood [00:00:06]:
Hey folks. Welcome back to another episode of JavaScript Jabber. This week on our panel, we have Dan Schupp here.

Dan Shappir [00:00:13]:
Hey. Coming from a warm and sunny Tel Aviv. No rockets falling on my head for a change.

Charles Max Wood [00:00:19]:
Yeah. I I heard you, had a little stuff coming your way, what, yesterday?

Dan Shappir [00:00:24]:
Yes. Interesting times. It it'll come up again in the pics. So, if you're listening in, you know, it's worth waiting for till the end.

Charles Max Wood [00:00:34]:
Yep. Absolutely. But, thank God for the Iron Dome. We'll just put it that way. Steve Edwards.

Steve Edwards [00:00:40]:
How you doing? Coming from a not warm and sunny Portland.

Charles Max Wood [00:00:45]:
And I'm Charles Max Wood from Top End Devs. And, we have a special guest this week. It is Tony Alicia. Tony, do you wanna say hello? Let people know why you're so awesome, all the stuff you've done on Udemy and Pluralsight and all the other places that you show up.

Tony Alicea [00:01:02]:
Hi. Great to be here. Yeah. I'm, 25 years of development, mostly web and database oriented, as well as the psychology of human computer interaction and user experience design. Cool. Cool. Yeah. And I've got about 10 years as a tech educator.

Tony Alicea [00:01:23]:
So if anybody out there does know who I am, it would be based on, probably my Udemy courses principally. I'm a Pluralsight instructor as well. Most popular courses has been, like, JavaScript understanding the weird parts. It's probably the number 1. And, I'll just

Dan Shappir [00:01:40]:
weird parts? Shocker.

Tony Alicea [00:01:43]:
I know. It'd be a

Charles Max Wood [00:01:44]:
shorter book if you listed the not weird parts.

Tony Alicea [00:01:47]:
Exactly. So, So anyway, yeah, that's that's me. Happy to be here.

Charles Max Wood [00:01:52]:
Yeah. Absolutely. I feel like I live in the, what developer education Mecca? Cause Pluralsight's headquarters is like an hour's drive from here. And John Lindquist lives in my neighborhood. So anyway, Yeah. And then it seems like there are a bunch of other places that do kind of the same sorts of things in different ways around here. But, one thing is we get into the topic of how to learn that I'm just gonna put out there is, it must have been what, like 8 years ago, 9 years ago. We had Katrina Owen.

Charles Max Wood [00:02:27]:
Now you all probably don't know her as well, just cause she's, she was in the Ruby community. But, if you've used exorcism.io to learn stuff, she's the person who created that. And, anyway, we had her on and we did a how to learn episode, and it gets downloaded easily more than just about any other episode. I mean, new episodes, especially for JavaScript Jabber get more in a week than that one does, but that's about it. Like everything, everything else just comes in behind it. And if you go look at the stats, it's usually whatever the latest episodes are for JavaScript, Jabber, Ruby, Rogues, and React Roundup. And then it's that one. And then it's the homepage for JavaScript Jabber.

Charles Max Wood [00:03:08]:
So just to give you an idea of how many places are telling people to go listen to that episode, it's definitely a topic that people are interested in. So

Tony Alicea [00:03:16]:
For sure.

Charles Max Wood [00:03:17]:
So yeah. So enlighten us. How how do you learn tech?

Tony Alicea [00:03:21]:
Easy question. No. Right? I think well, for starters, I think it's good to define what we mean when we say that we've actually learned something. That's what I find Uh-huh. Useful because people have different ideas about what they think it means to have learned something. So in the context of software development and I have tips on learning things. But as far as that idea in the context of software development, I would say that you've learned something when you have a precise and accurate mental model as opposed to a vague or inaccurate mental model. Meaning, how do you think the thing that you're using works? And, maybe a more practical definition is that you've learned something when your knowledge and your mental model enable you to effectively deal with novel requirements and debug problems while you're using that tech.

Tony Alicea [00:04:24]:
So the reason I say that I can I have an illustration I like to use? Let's say you've moved to a new city and you wanna learn the streets. When do I say I've learned the streets of the city? Well, if you just use your GPS to get from home to work and you memorize that route, GPS says turn right here, then turn left there, etcetera. You might say, hey. I've learned the route. I've learned the streets of the city. But, really, all you've done is imitate what the GPS is telling you to do. As soon as there's construction on one of those streets, you have no idea what to do. And if your GPS isn't working, now you're gonna start trying to figure a way around.

Tony Alicea [00:05:01]:
If on the other hand, you had looked at the map, you got a feeling for the major streets, the major areas. This is the financial district. This is the business district. And you have an a a mental model of the city. Now as you're using the GPS, you're also refining that mental model, and you end up being able to say, okay. I I know what's happening when I need to go somewhere that I've never been or when I have construction and I need to get around it. I can do that more effectively. And that's the same way with coding.

Tony Alicea [00:05:29]:
When you a lot of people learn a tech or even say this how they wanna learn tech is just by doing, which is everybody learns by doing. That's important. But a lot of content out there even on the Internet is about watch me code, and you code the same thing.

Steve Edwards [00:05:46]:
Mhmm. And

Tony Alicea [00:05:46]:
that's the equivalent of the GPS. You can get from one route to another. But as soon as you have novel requirements, something you know, your boss, whatever it is, comes at you with something you've never seen before or you've never done before in a tutorial or there's a a problem that you've never seen before and now you have to debug it, that's when it shows whether or not you've just been imitating and you have a vague or inaccurate mental model, or you understand to a reasonable degree how this technology works, what it's doing so that you can then use that mental model to reason on how to accomplish a task or fix a problem.

Steve Edwards [00:06:24]:
So yeah. Now this is a topic I've I'm pretty interested in and and have talked about in various places over the years, and I prefer to think about it as along the lines of what you're saying. But the more completely you know what you're dealing with, then you know when something's wrong. Mhmm. Right? If you know if you know that something you know how it's supposed to work, then something's wrong. It's like, okay. That's not right. And then you can figure this is what it should be.

Steve Edwards [00:06:47]:
This is you can narrow down to this is what's wrong and go from there. You know, one of the classic examples that I've heard given before, and I started out my career after college in a bank, and I used to train tellers for a little while. And they didn't do this when I was in there, but I in the past, what they would do to train tellers is they would just have them sit there and count cash. Count cash, count cash, count cash. Then after a while, they throw in a counterfeit. And because you know the the real one so well, you can easily spot when something's wrong. You know, the same is true when you're dealing with tech support with, you know, whole websites. I can remember dealing with a huge one when I was at Fluke, and people would say, well, what's wrong here? And I'd think about it and realize it should be doing this.

Steve Edwards [00:07:32]:
Oh, okay. I bet the problem is right there. Not because I knew what the problem was, but because I knew the base, I knew how it operated, how it should operate, and then I could tell you right away, okay, this is where something's going wrong. So it's not so much to a certain degree when coding, it's gonna be, yeah, how to do things, you know, how to write a function, how to do this, how to accomplish this. But at the same time, you gotta know the tool. And the better you know the tool, then it's a lot easier to be able to figure out what to do with it once you know it.

Charles Max Wood [00:08:02]:
Yeah. I I just wanna jump in on this too just for a second because I've had people, usually the question I get is how do you stay current? Not how do you learn new tech? But, you know, you get pretty quickly into, okay, well, here's how you know what you ought to learn, but then how do you learn it? Right. And, you know, so then you talk about books and videos and all this stuff. And I think, I think the invitation is part of the process. But yeah, at the end of the day, then it's okay. Well, how do I know if I've learned it well enough? And I really liked your definition there where it's, Hey, look, I can find my way around the problems that I'm going to run into. Right. So, you know, I mean, I've been doing most of my experience been in Ruby.

Charles Max Wood [00:08:42]:
Right. And so if I run into a hiccup, I have 7 other ways that I can think of off the top of my head to try and work around the problem. I know at least 6 or 7 different tools that I can use to figure out where the problem even is. And maybe it's just a dumb typo, but yeah, I like that as your level of proficiency. Okay. Can you do this without the training wheels and solve the problems that are gonna come up?

Dan Shappir [00:09:05]:
I have a question about that because your initial definition kind of said that your mental model is accurate, that it actually properly matches the way that the system works. How do you know? I I've seen, especially in web technologies, which tend to be fairly forgiving. I've seen people have really incorrect mental model, yet, you know, somehow managed to muddle through. And, you know, how how do you overcome that situation? How do you realize it it even to begin with that you're in this situation? And then once you realize that you're in it, how do you deal with it?

Tony Alicea [00:09:48]:
Yeah. That's a great question. And and I wanna say first that I agree that invitation is part of the process. It's just as you're imitating, are you reinforcing a bad mental model? Are you only having a vague one? Are you reinforcing a good mental model? And that's a big difference into how useful that imitation will be. But as far

Dan Shappir [00:10:07]:
as continue, I have to still short really short story imitation. So, my first course in the university, the the you know, and I'm talking way back when where people were a lot less compute proficient and computer literate than they were than they are now. So even though it was c s 101 for for some of the students back then, it was literally their first time, you know, working with a computer. And the instor literally wrote on a whiteboard, an example, hello world program. And basically the the first homework was to enter that into the computers in the university and get it to run. Now his name, let's say, was Joe. So he wrote a hello world that basically wrote, hello. My name is Joe.

Dan Shappir [00:10:59]:
Half the students handed in a program which said, hello. My name is Joe.

Steve Edwards [00:11:03]:
Joe. Right.

Dan Shappir [00:11:05]:
So so yeah. Now please go on.

Tony Alicea [00:11:08]:
Yeah. It's a good example. So your your question or your thought about how do you know, I think you made an important phrase, which was you said you muddle through. One of the you could say great things about the job as a developer. It it is possible to muddle through and get things to work without truly understanding what you're doing to a degree. Right? It's possible to have a bad mental model and either because the system is, allows you to or simply because there's so much information out there on the Internet, you know, you eventually, you can kinda figure your way through it. What I would say is that as a community, in my experience and I've been doing this, like I said, 25 years, lots of different dev teams. I know a lot of you guys have been doing this a long time.

Tony Alicea [00:11:56]:
We've normalized banging your head against the wall and not really knowing what's going on and then having a degree of stress maybe even if you're under, you know, some kind of pressure. And that's a degree of normalization that I think other a lot of other professional areas wouldn't have. Like, you wouldn't expect a doctor to muddle through. Right? You would say you need to understand anatomy as opposed to let's try different meds, you know, not knowing what one does or the other. So but we've kind of accepted as a department. Right. And that does happen. But we've kind of accepted

Charles Max Wood [00:12:32]:
this diabetic. And every time I switch doctors, they do this. Right? It's we're gonna try this medicine. Now we're gonna try this medicine. And I'm going, you don't know what they do?

Tony Alicea [00:12:40]:
Yeah. Yeah. That's true. And but but don't we kind of do that as devs all the time? Uh-huh. Right? Like, there's there is a muddle through. When you when you look at a development team, oftentimes in a development team, there'll be somebody. That's the guy you go to when you're trying to debug a problem. Right? There'll be somebody that, oh, in this arena, you know, I can sit here for 2 days and he'll or he or she will come up behind me, look at it, and, like, very quickly be able to figure it out.

Tony Alicea [00:13:09]:
And what I find is those people are the people with the most precise and accurate mental models So whatever it is that you're doing based on experience, based on what they're looking at. So if we're saying I'm going to learn something, I I like to distinguish that from I'm I'm okay with muddling through. And I think a lot of devs have only ex not maybe only ever, but most of their career have only experienced muddling through and have normalized it mentally. This is what it's like. I have a bug, and I bang my head, and I don't understand why, and eventually, we figure it out. And a really, experienced dev team that has a really strong mental model actually has less of that, and therefore is more efficient, less stressed, and and I would say then really learns what the technology is. That's my personal experience. I know

Steve Edwards [00:14:05]:
that.

Charles Max Wood [00:14:05]:
Can I share an example here? In fact it was yesterday. So, in my church, I'm one of the technology specialists, right? So we do everything from helping with like Facebook groups and stuff, but, our stake and a stake is a group of wards and wards are just congregations. Right? So, we get together twice a year, you know, with kind of the larger area and we have a conference. Right? And that's the other thing we do is we set up the audio visual stuff for the conference. And, so the there's another technology specialist and he's been doing this for a while. And so I went and I helped him set things up on Saturday night, in the, the main building where the conference is going to be held, but we were transmitting it to the other building that's over here by my house. And so, you know, I helped him set everything up and I've done enough audio visual stuff. I mean, I've been podcasting for what, like 8 forever.

Charles Max Wood [00:15:02]:
And so, right. So a lot of the stuff was familiar, but then when I came over here, the part of it that I'm not familiar with is the PA system. And so I got everything hooked up to the computer so that I could stream from the other building. Right. I had it hooked up to the, projector. I had it hooked up to the little TV so that people sitting on the roster could see it and I couldn't get it to play through the PA system. And so he helpfully sent over the correct cord so that I could hook the, the projector up to the PA system. And I hooked it up and it still didn't work.

Charles Max Wood [00:15:37]:
And eventually he had to come over and show me what to do. Right. Because I had hooked it up wrong and yeah. You know, now I know how to do it, but you know that the muddling through didn't work. Right? Yeah. I had to have somebody come in and say, no, this end goes in the projector and this other end goes to the PA system. And if you hook it up this way, then, you know, and as soon as I saw it, it was like, oh, right. That's obvious.

Charles Max Wood [00:15:59]:
But anyway

Dan Shappir [00:16:01]:
Yeah. But that's the thing, Chuck, because sometimes, and I've seen this a lot in over my career. It it's when, you know, something doesn't work and you find the expert and you and, you know, you ask, what do I do now? And then he shows you a certain way and you ask why. And they say, well, that's just because that's the way to work. That's just how

Charles Max Wood [00:16:26]:
it works.

Dan Shappir [00:16:27]:
That's just how it works. Yeah. And I literally hate that. Now, obviously, a lot of times that person potentially doesn't really know either. They got this information maybe from somebody else. You know, maybe this is secondhand or thirdhand or what or whatnot. And that's just the way that they've been doing it. And for me, under you know, if if something is really important for me, then I have to understand not only the how, but also the why.

Dan Shappir [00:16:58]:
And I think that's kind of key to the to the whole thing. If if you recall a while back, I think it's over like few years now, we did this whole series of episodes on on React. And instead of talking about, you know, this React API or that React API, we spoke about why React works the way that it does. Why does it have a virtual DOM? What what's what's its role? What's its purpose? What are the implications? Stuff like that. Trying to, you know, understand the the reasoning rather than the specific APIs which are, you know, might change over time. And, you know, and are, you know, you can't really remember them anyway. You can always Google them. So but but the understanding is something much the under understanding the underlying approach is much more fundamental.

Tony Alicea [00:17:51]:
Yeah. I so the first tip that I because I wrote these down so I wouldn't forget. But the very first tip I was gonna give was that, a lot of times, devs learn what and how. What am I going to do and how am I going to do it? But when you really learn something, you should learn why, when, what, and how. Why does it exist? What is the the problems that it's designed to solve? Every technology exists for a reason. Somebody coded it for something. Right? The win win is the what are the best circumstances under which to use this, which helps keep you from, you know, using a tech that maybe isn't the best solution for the problem that's in front of you, and then the what and the how, which is what most people learn, like the APIs and and that, etcetera. Where do you go to find that? Well, I what I find very useful is to go seek out the earliest introduction of that technology out there on the Internet.

Tony Alicea [00:18:50]:
Could be an RFC. It could be a blog post. It could be a conference talk somewhere on YouTube. When was the first time somebody said, hey, introducing and then the tech that you're talking about. Sometimes the documentation will always have it. Some will have it as well sometimes. But you can definitely, in most cases these days, find some original introduction of the technology where they get into, the why. For example, I just, I I had a I I released a course a cup a couple of years ago on HTML and CSS.

Tony Alicea [00:19:26]:
And in the course, we go to the PhD thesis from one of the inventors of CSS where they talk about why CSS works the way it does. And it's fantastic because it gives you that the beginning of a good mental model so that all the things that a lot of developers find weird with CSS actually make a lot of sense.

Dan Shappir [00:19:47]:
Interestingly, we recently had an episode with, Rich Harris, the creator of Svelte. Excellent episode, by the way. I think it was one of our recent best. And we I brought up that I first met him when he gave, like, the the first introductory talk about Svelte. It was Svelte 3. When he just came out, it was coming out with Svelte 3. It was rethinking reactivity. He gave it in a conference I was attending, and it's an amazing talk.

Dan Shappir [00:20:19]:
And if you want to understand, like, the why of Svelte, that was an awesome place to start. And indeed that, you know, that video has something like 350,000 views. And I highly recommend it even today even though they're now rethinking all of it with, Svelte 5 and and runes. Then if you want to learn more about that, you know, you can definitely listen to our podcast with him. But it's it's a great approach what you're suggesting. And and there's also a similar talk about, React, with the person who created React. I forget the name of the talk. It's, Was that Jordan

Charles Max Wood [00:20:57]:
that gave the talk or was it somebody else?

Dan Shappir [00:21:00]:
I forget, and I'll need to check. But he he goes on afterwards to also start talking about, what's that, other program the other programming language. Oh, my head isn't working. Never mind. But, I'll I'll try to find it and post the link if and when I do. But but I totally agree, and and I think it's a it's a great approach. And I've not you know, now that you're you've said it, it seems to make so much sense to me.

Tony Alicea [00:21:29]:
That's great. Yeah. And I I love finding those things. Right? Because then you you set yourself up. Because a mental model is built from the foundation up. What we're what we're doing a lot of times when we're learning via API is we're trying to infer a mental model from, like, the leaves of this decision tree where all the decisions are made on people designing this technology. But if you could start at the roots, somebody had a problem, and they were trying to solve a problem. And if you can be there with them, if you can be, you know, in the head of the people that invented these things, it's going to make it so much easier, to learn everything.

Tony Alicea [00:22:07]:
So that's that's the first tip. The second tip that I have is to be I like to call it be curious about how something works. And what that means is a few things. If you're dealing with front end web technology, look at what's being delivered in the network tab. Right? Look at the things that you're actually using. A lot of people just sit in these abstractions. But the problem is, in order to be able to just sit in an abstraction, the abstraction has to be perfectly contained with no leaks. There does not exist a front end web technology that does not have leaky abstractionness going on.

Tony Alicea [00:22:46]:
You you always have to understand the fundamental. So I'm gonna and I know you guys had a a really great, episode on fundamentals. So my my definition of fundamentals is 1 or 2 abstraction layers below where you're working. So if you're sitting in React, a fundamental would be the browser APIs and JavaScript. Right? Those are fundamentals. So if you can, be curious and look at how are the fundamentals being used with this technology. And that means, like I said, looking at what's in the browser tab, stepping through code beyond your own. That's a great thing about JavaScript libraries and frameworks.

Tony Alicea [00:23:28]:
You can actually step into them and see what's going on, and not being afraid to read source code, which that can be controversial. And I'm not saying you have to read every line of source code for everything. But having a a good model can be so useful. So I just released, a 16 and a half hour React course. And in it, we literally step through React source code. I read every line of React 18 to prep for this course. But it is so useful. It's so incredibly powerful to start to get a mental model and to not see things as just this thing that just happens in the ether, but as just other people's code.

Tony Alicea [00:24:09]:
And that's incredibly powerful. So for, re for React and for any for example, for any JavaScript framework, talking about connecting fundamentals to this abstraction, how do we figure out how a JavaScript framework works? Well, we know one of the fundamental things it's doing is updating the DOM. So you pull you pull down all the code because it's open source. Right? It's a free education. You can pull down all the code for React or any other framework, and you can do a search for something like appendChild, which is a DOM browser API. You know somewhere in the code, wherever it's actually updating the DOM, that it's appendChild or or insert or something else that's gonna happen at the DOM. Find the spot where it's updating the DOM and then look for where that function's being called and then look for where that's function's being called. And all of a sudden, you're gonna say, oh, now I see how it's making these choices.

Tony Alicea [00:25:03]:
It may be complicated. It may not be, like, I I'm gonna read every line and immediately understand it, but you can start to get a feel. One of the things I say in the course is, like, the the the rules of hooks is a thing that people memorize in React. Well, I can't put it in a loop to to to do. And sometimes something that, one of you was mentioning where, well, peep an expert might tell you the answer, but say, watch just why it works. But often, it's because they don't really understand it themselves fully. I see a lot of people say, well, hooks are kind of a thing that, well, they can't be in a loop because they're kind of like arrays or apps different things. If you go in the code, what you see is that a hook is a a series of hooks is a link list sitting on this JavaScript object called a fiber.

Tony Alicea [00:25:48]:
And every time the function runs, it's going down the link list and executing all of these hook functions. So it has to be the same every time. It's just going down a link list. And I I talk about it in the course and we do, you know, diagrams and things. But, ultimately, when you have a a precise and accurate mental model as opposed to a vague or inaccurate one, you can infer the things that other people are memorizing. I can infer the rules of hooks because I understand how it works. Oh, of course, it works that way. Of course, I can't do that.

Tony Alicea [00:26:21]:
You don't even have to tell me that because I understand how how it works. I had another experience recently. Vercel, I think, updated their documentation based on a conversation I had with them on Twitter where they had a Vercel, you know, React server components come out. And the idea is, oh, we're not gonna send JavaScript to the browser for the components that you run-in the server. But if you know how React works, you know that it's keeping 2 big trees, the DOM and this fiber tree, in sync and they have to be complete and match. So there's no way there's not some JavaScript going after server rendering to fill out that tree that React needs in order to do its work. As it turns out, it is. It's called the RSC payload or the the flight data.

Tony Alicea [00:27:10]:
And when you go to Vercel's, like, issues that people submit, there's a bunch of people going, I have all my all of my server rendered HTML is doubled in all these script tags at the bottom. Can we turn that off? And the answer is no because that's how React works. Right? It's but because you know how it works, you look at that and go, yes. That is a cost of initially sending HTML because I need to somehow put together the Fiber Treat. And so when we have that mental model, we're also not surprised. Right? We make better architectural decisions because now we're not just gonna go, I'm gonna switch to this new tech because everybody says it's great. No. We're gonna say, well, how does it work? What is it doing? Oh, I'm actually outputting a bunch of big SVGs and a very little JavaScript I'm using for that.

Tony Alicea [00:28:06]:
This may actually be a bigger download size for my use case. Right? As opposed to a different use case where an RSC would be great. So, again, that's that's like kind of 2 tips in 1 is to be curious, look at what's going on, take the time, and people will say, I don't have time. But the muddling is also time. And in my ex and in my experience, the time you invest in understanding will over, you know, a period of time. Eventually, you will make up that cost and then much greater because you will model less.

Steve Edwards [00:28:43]:
Hey, Chuck. Just as a shout out, you're talking about reading source code. We did an episode exactly on that Yep. Not too long after I started episode 408 to reading source code with Carl Mangazi.

Dan Shappir [00:28:54]:
Yeah. That was an awesome episode.

Steve Edwards [00:28:56]:
Yep. Reading source code and why and how and so on. So Yeah.

Dan Shappir [00:28:59]:
Carl is great. He was a host on React Roundup, I think, for a while. Wasn't he?

Charles Max Wood [00:29:03]:
A while. He was. Yep. Yep.

Steve Edwards [00:29:06]:
So, Tony, I have a question for I wanna clarify something that you sort of skipped over early on when you were talking about learning. You were talking about muddling and how, you know, a dev dev team generally has one person that sort of can come along and look at it and say, okay. This is a problem because they have that better model. There's a big gap between getting from here to here, and to me and I guess what I'm curious to hear is your viewpoint on learning by doing and failing. So you talk about, muddling through and that's sort of a waste of time and how generally you wanna go back and understand, Ideally, in a perfect world, you wanna be able to understand how everything works. So then once you understand that, you can infer what's going on and so on, and I get that. At the same time, based on my personal experience, and I'm like many people, many JavaScript devs or devs of any type, I learned by doing, you know, by getting in and mucking around with something. And and based on my experience, not just with coding, with the FHIR servers, with any other thing I'm involved with.

Steve Edwards [00:30:13]:
Doing something and failing will imprint the right way to do and and learning to do it right. Let me correct that. Will imprint it on my brain and help me remember much more than doing it right the first time. And so, you know, people say practice makes perfect, and my choir director in high school had a had a great sign that said no perfect practice makes perfect. Because if you practice the wrong thing, then you're gonna end up doing the wrong thing later when it really counts. And this is true in athletic competition when you don't have time to think about something you just have to do. So I'm curious to see your your viewpoint on how that fits in where doing it and failing it, doing it okay. Now it works.

Steve Edwards [00:30:52]:
We it's like, the famous quote that's Edison said is, you know, I failed 499 times, but each time I didn't think I failed, I just learned one thing that didn't work. Right? You know it doesn't work, and so then now you finally know what what does work. So my point is doing and modeling does have its benefits. You know, while, ideally, you would wanna go back, and and that's how I am, is wanting to know how everything works. A classic example that I've given before is learning a language. I'm a Spanish speaker, and languages came really easily to me. And if I had wanted to learn more languages, I could. But I have seen there's 2 different way kinds of ways to learn a language.

Steve Edwards [00:31:29]:
There is the what people call, conversational, and then there's the learning the verbs and the and the nouns and the conjugations and the different tenses and all that kind of stuff. So you can learn a conversational learn. Okay. If I say this, it really means this. I'm like, okay. I wanna know the verbs. I wanna know the adjectives. I wanna know the pronouns.

Steve Edwards [00:31:48]:
I wanna know the conjugations. I wanna know the tenses so that I can easily put something together. That's my but not everybody's that way. So I'm rambling, so hopefully all this makes sense. But I guess I just want to get to the point of saying the modeling does have benefits at some point, and I'm to an extent. I'm gonna say it's an extent. I'm curious to

Tony Alicea [00:32:05]:
see what you think. No. I 100% agree. I'm a muddler. Right? We're all muddlers at some point, right, with anything. And, when I I think of it as an iterative process. You have a degree of understanding hopefully from the why and the when, and then you start to model. Right? Maybe you imitate somebody else's code.

Tony Alicea [00:32:27]:
You start to work through it yourself. You come across something. You do it wrong. The issue, I think, is the feedback loop being accurate during the modeling. It is possible to reinforce an an inaccurate mental model because it's possible for you to do something that you think works for reason x. It actually works for reason y, but it worked. So you just say, see, my mental model was correct, when it's actually not. So that's, I think, is the little bit of the danger.

Tony Alicea [00:32:59]:
So, oftentimes, in real in real world, right, in a real world scenario, you're just trying to get it to work because you have a job to do. So you do have to get it. You have to get it working. And if you get it working without fully understanding why it's working, it's not the most comfortable foundation to sit on as a developer. Right? I don't know why this is working, but it is. We've all been there probably, right, at some point in our in our in our lives. But we're also can be under under different pressures. Right? Business pressures, work pressure, client pressure.

Tony Alicea [00:33:34]:
So what I what I like to say is when a team or you as an individual get something working and you have that moment where you do a retrospective on on a problem or on something that you're working on, even if it's just you by yourself. Try to see if you can plug in what just happened back into your mental model. And then the failure will have its maximum benefits. Like, for example, I'm thinking, like, I'm gonna go way, way back. Like, one of the earliest examples I ever had of this in my personal development career. I'm going back to asp.net. Right? That's how far back we're

Steve Edwards [00:34:20]:
that's

Tony Alicea [00:34:21]:
how far back we're going. So asp.net would keep your form data in the form after you submit it even though it was a page refresh. Right? A lot of people didn't care how that worked. But what it actually would do is was there's a big hidden variable, a hidden input in the form that encoded all of your form data so that it could pull it back up again on the refresh. But if you did a form get instead of a post, it would go up in the URL. And you could actually get a URL that was longer than was allowed by the browser. And then when it went to deserialize that data, everything explodes. That's one of those things where you had to figure it out.

Tony Alicea [00:35:03]:
Right? You you do why isn't this form working, this giant form that we're building for this government business? And you look at all these reasons, and then when we finally realized it was the browser, for me, that was like a a fundamental moment in my dev history where it's like, okay. I muddled through. We figured it out. But now I need to plug back into my mental model. This isn't some amazing, oh, the form, the data just stays there. No. Somebody coded so that all that form data gets stuffed into an in hidden input. And then now you gotta think about your fundamentals.

Tony Alicea [00:35:40]:
Now you gotta move an abstraction layer below to see what happens. So when I now my mental model is whenever I'm using I was using, you know, building a form is that that form construction process is also has this other piece to it that I have to think about. And from that point on, I think that really influenced how I dealt with the the the after effects of the muddling. Right? Is what am I learning from the muddling? Is there an abstraction layer below that I can now clarify in my head? Oh, this is how this is working. And then I have to muddle less the next time.

Dan Shappir [00:36:18]:
One thing that I'm a bit concerned about in the context of of this modeling and getting something that works and and leaving it as kind of as is and just moving on is the impact that AI is having and might have where people are using AI to generate some code, get get it to work, and then just move on without really necessarily understanding, you know, the code that AI wrote for them.

Tony Alicea [00:36:50]:
Yeah. I think that's a major problem. People have asked me, you know, as a tech educator, people ask me, should I still be learning to code because of AI? And my statement is now you actually need to understand the code because you're gonna have an AI generated for you. Somebody's still going to have to figure out why it doesn't work. And sure, AIs will get better at debugging over time, but there's always gonna be something novel that the AI doesn't know about, whether it's a new framework or a new technology. Those things take time. Current AIs don't reason. They just predict based on previous code.

Tony Alicea [00:37:22]:
Right? So, really, the danger the dev that's in the most danger, I think, in the AI age, is the dev who just copy paste code without understanding it. Yeah. And learning a tech so that you understand what's happening under the hood, so that you understand how it works. I have a phrase that I've used for 10 years, don't imitate understand, which is don't just follow along. Understand what's happening as you follow along. It it's okay to to learn by doing, but actually learn while you're doing. Right? As opposed to I give the GPS example again. If I GPS my way to 5 different locations in the city, I now have a broader level of knowledge, more APIs, but I still don't have deep understanding.

Tony Alicea [00:38:13]:
Right? I have a vague mental model. And so it is possible to just keep on adding GPS routes to your to your experience in the city and never learn the city and, you know, get away with it. You know, you do okay. But you you're you're gonna run across less dead ends and less turning around and less stress and getting to where you need to on time if you just learned how the city was laid out. That makes sense to expand the illustration.

Dan Shappir [00:38:43]:
Yes. It it certainly does. And and to kind of, exasperate this issue, a lot of web technologies. First of all, the core fundamental web technologies and a lot of the stuff built on top of them like frameworks are actually really forgiving. So for example, if you take, if you look at React and, you know, I review a lot of React code and I see, you know, and I always look at at it from a perspective of performance. And I see, for example, a lot of rerenderings going on. Now rerenderings, you you usually still end up with the correct rendering that you want to achieve. And that's what the developer is looking for.

Dan Shappir [00:39:25]:
Did I is my end state though the the one that I wanted to get to, but they're going through so many renderings in order to get there. And a lot of these are, you know, could have been avoided given a better understanding of how React works and how and when and how it updates stuff.

Tony Alicea [00:39:46]:
Yeah. I've just been talking about this a lot. And it React, I think, because of its nature, actually requires you to understand how it works to use it well, to build performant applications, to avoid foot guns. There's not a ton of, I like to say, do, let me put this the right way. I like to say, make it hard to do the wrong thing and easy to do the right thing. Right? If you're if you're building an abstraction.

Dan Shappir [00:40:21]:
Falling into the pit of success.

Tony Alicea [00:40:23]:
That's another way to put it. Yeah. React React, as popular at is as it is, is not great at that. Right? You you really do need to understand how it works in order to be performant. What it is good at is you can just get something working, right, which is 2 different things. So the degree and and I think that's pretty true with all of these abstractions that we live in as web developers is we just add abstraction layer, abstraction layer on top of HTML, HTTP, CSS, JavaScript, browser APIs, and SQL. Those are yeah. That's our bottom line.

Tony Alicea [00:41:02]:
Everything else for the most part Mhmm. Is just layers of abstraction on top of it. We're rarely introducing a new ability. What we're introducing is somebody else's code that uses those baselines to do something.

Charles Max Wood [00:41:13]:
Right.

Tony Alicea [00:41:14]:
So getting your fundamentals really strong is also going to enable that. So when you look at React, and you look at re renders, that's really connected to pure functions in a lot of ways. Right? Often oftentimes. And it also is connected to understanding, objects and passing by reference. Right? It's understanding shallow versus deep equality. And if you have those fundamentals, then then you can explain how to avoid re renders in the context of the fundamentals, you can actually go look in React source code to me and we I went and did this, and you can find where it shallow compares props. And you can say, oh, there it is. And if the shallow comparison is equal, then it doesn't do this other work again.

Tony Alicea [00:42:04]:
And and now your mental model makes it so much easier to remember how to do these things. And that's maybe the other piece of the puzzle when it comes to muddling versus understanding. When you don't have something to connect to in your mental model, I find that it's easier to forget a point. Don't do this. Do that. We're not good at memorization as as humans. Right? As as people, we prefer, recall versus reminder. Right? So recall is just like, oh, I remember this thing.

Tony Alicea [00:42:40]:
But reminder is, oh, this thing connects my brain to this other thing, and now I remember. Like, you you tie a piece of string to your finger, and now it's a reminder. When you have the fundamentals, those become reminders on top of the abstraction layer. Whereas if you're not connecting back to your mental model, then you end up just trying to remember everything. And that's that's actually really hard. So what I say is, as far as a tip is, how do you even do this? Another tip is find the blogs of people who are building the thing that you're using. You can often find somebody that is explaining it, that's writing a blog post. And sometimes you'll find that blog post has, like, 10 hits.

Tony Alicea [00:43:25]:
Like, people aren't really reading it. It's just somebody that's just working on it, and they're like, hey, we did this cool thing. Go to the repo, find the major contributors, and then go find them online and see if they're talking about it. You can find treasure troves. And inside the source code I mean, I found this inside React 18. Sometimes you can find nice large comment sections where people are explaining themselves because these are just people writing code. Right? So sometimes even the comments in the source code of the thing you're using can be clarified. So that's another way though.

Dan Shappir [00:43:58]:
Okay. An interesting way that I use to try to test my understanding of a topic is to see if I if I can explain it. If and and without going into hand waving, you know, stuff, you know, can can I, you know, if if somebody were to ask me why does something work the certain way, am I able to actually provide a good enough answer and answer that I'm okay with? If I can't, then I cannot really say that I understand that topic.

Tony Alicea [00:44:35]:
100%. Yeah. You under you and not everybody is, has experienced teaching. Right? So there's teaching techniques is one thing, but can you teach it from a standpoint of not just what to do, which I think Steve had mentioned. There's not a person that comes along just as because it works the way it works, but can you say this is why it works that way? Then you actually do. And the hand waving is really interesting because I see this all the time where somebody at a conference told me something or I saw something in a YouTube video, and I think it kinda works this way. But you can tell when it's big. Now you can tell when some whether somebody really understands it or doesn't.

Tony Alicea [00:45:14]:
And that's not a knock against anybody. We we learn over time. Right? Somebody introduces an idea to us, and then you think, okay. I've got this kind of vague notion now. That's cool. And then over time, we get deeper and deeper. That's just the iterative nature. It's not bad, right, to have a vague notion.

Tony Alicea [00:45:32]:
It's just that our goal is to have a more precise notion.

Dan Shappir [00:45:37]:
And to be aware of the fact that your your current level of understanding is vague. Now you might decide for a particular topic that's good enough for now. Obviously, I can't know everything, and I do need to prioritize my time and effort. So maybe it's okay for me to just have a vague understanding of a specific you know, let's say it's a framework that I'm not currently using. So I I want to understand its benefits. Maybe, like, dabble with it a little bit, but I'm not gonna invest any significant effort in it. But if I'm going to say this is something that I'm going to be using regularly at work and this is a core, you know, aspect of my job description, then I'm going to delve into that. I'm I'm really going to try to get a good understanding.

Dan Shappir [00:46:29]:
And a lot and again, it works for me because I actually kind of an am an extrovert. I like to talk. I I will often actually just schedule internal talks within my company even to explain a concept to the other developers. And in and, you know, getting there requires me to become proficient in that particular topic.

Tony Alicea [00:46:52]:
Yeah. 100% agreed. And I I think that that distinction between I need this for a moment, and I'm going to use this more often is also a good way of determining, how deep do I need to go. If you're going to learn a new framework and you're gonna build an application with it, then you wanna go deeper. You know, if you npm install some little library that does something that, you know, has many, many downloads and everybody knows works and is fairly innocuous, then maybe you don't have to go that deep. Right? It's we're all we're all limited on our time and our energy. So sometimes people hear this kind of discussion, and I find people push back. It's like, I don't have time.

Tony Alicea [00:47:37]:
You know, I don't have time for all this. And again, I say, well, how much time are you gonna be spending in this thing? And that means how much time you're gonna be muddling through or or struggling with a problem. Then you're you're pulling from the future is another way to call it. You can buy that time from the future right now and help yourself in the future. And that doesn't mean you're not going to make mistakes, fail, run across problems. All it means is that as you iterate on that, you you find a problem that challenges your assumptions. We all make decisions on assumptions, but I think I know how this works. I have a set of assumptions in my head, and I make a choice.

Tony Alicea [00:48:17]:
So we come across something that challenges our assumption with the tech. Well, there you go. There is the there is the hole in your mental model. You just found it. So now we're gonna go try to fill it in at the sources that we can, whether it's stepping through code or or finding somebody online. In some cases, you can go to a Discord and and people that are working on this tech are available to answer questions, which is amazing. Right? So you can or or or some other, you know, place like Facebook or Reddit or something like that. So I think it's it's also, important to note that we're not alone in the endeavor.

Tony Alicea [00:48:53]:
There are other people out there who who can also help us to understand.

Charles Max Wood [00:48:58]:
I just wanna chime in because, I think there's another reason to be doing what you're talking about and being proactive and picking up this other stuff, and that is that, in fact, there's a comment on, YouTube from Ari and he says, no one has the patience anymore though they want now. But the point here is, is it's for me, like what motivates me is not the, well, if I learned this now, then I'm going to have built up all of the building blocks. Right. Or I've, I've got kind of the what framework fitness, you know, cause I'm, I'm, I'm into running and stuff. Right. And so I'm thinking I've built up the stamina and the skills and right. I know how to make it through a long distance run. For me, it's also part of the reason why I go out to run or do whatever else I'm doing is that there's a certain aspect of the kind of person I want to be.

Charles Max Wood [00:49:51]:
There's a certain aspect to the kind of discipline that I want to have. And this is just another manifestation of that for me. Right? So it's, yeah, it's, it's good that I can, you know, I can get in there and I can muscle through a program, a problem, and that I know how to handle. Oh gosh, I have a blister on my foot or a figurative programming blister in my code. Right. But there's the other part of it. That's just, I want to be excellent at what I do, and this is just table stakes for that. Right? I want to be just the top notch developer.

Charles Max Wood [00:50:24]:
I can be a top end dev if you will. And so Uh-huh. Right? The this this is part of that. And this is part of that philosophy for me is just, okay, you know what? I'm going to get in and understand it now. Am I ever going to have to dig into this code and write something against it? Probably not. But like you're saying, it does help me understand what's going on and that ups my game and it helps me become the kind of programmer and manifest the kind of person I wanna be.

Tony Alicea [00:50:52]:
That's that's such an interesting statement. And I I've I've had plenty of students over these years. And so now you get into kind of a human issue. We all are gonna fail and muddle and muscle through. You know, nothing against that at all. Nothing. It's a necessary part and it's valuable. I do find that sometimes a person's willingness to dig in actually has to do with their self view as a developer.

Tony Alicea [00:51:19]:
Kinda like, I do a lot of done a lot of tutoring of kids in math over the years. And you have kids who just say I'm bad at math.

Charles Max Wood [00:51:27]:
That's my son. It drives me crazy.

Tony Alicea [00:51:29]:
Yeah. And it's and when you go and look and help them, you realize the book is terrible.

Steve Edwards [00:51:34]:
Uh-huh.

Tony Alicea [00:51:34]:
Right? It's it's it's not teaching them well, but they instead make it a problem with themselves. And I think that out there, in in my experience, there are devs who got themselves a job, you know, maybe they have some impostor syndrome, and they see themselves as this is how I have to do it because I'm not capable of understanding any deeper than this.

Charles Max Wood [00:51:57]:
Right.

Tony Alicea [00:51:58]:
And my statement is the same as those kids who say they're bad at math. You've just been taught poorly. It's not you. That's the message I use often give to my students. In that, as instructors of technology, we often have suffer from something called the curse of knowledge, which is a user experience design concept. That once you know something, it's very hard to remember what it's like not to know that thing.

Steve Edwards [00:52:23]:
Yep.

Tony Alicea [00:52:24]:
So you may have people at your job online, and they're talking to you. And they're using words that sound big and complicated, and they're not. But you just don't know the vocabulary. And so now you're you're they're lost in the conversation. So I have this thing in my courses for years where I just call it the big word alert, where as soon as we hit a phrase that you may not know, we stop and we explain it, and then we move on. Because you're totally capable of understanding this. Vocabulary is not intelligence. Right? It's just vocabulary.

Tony Alicea [00:52:56]:
So we as as as developers are often taught poorly because teaching is a whole different skill than coding. So you may feel like you're incapable of understanding at a deeper level. But if you start to approach it little by little from building your mental model and you work on your fundamentals, then the better your fundamentals are, the better you can read source code, the better you can step through code and understand what's going on, And you'll start to develop self confidence. And that's what I've seen happen with people is that they're like, you know what? I I feel like I can understand this. And I started digging around in source code. And and I saw this and I saw this technique I never knew you could do in JavaScript. And so I started doing it myself. That I love that.

Tony Alicea [00:53:45]:
Because that is the kid who says he's bad at math realizing in an hour explained a different way that he can actually get it. And I think that there's a lot of devs out there that looking for that experience.

Charles Max Wood [00:53:57]:
Well and to your point, I mean, this is what I've gone through with my son with his math classes. Right? Is he'll be like, I just don't get it. The teacher didn't explain it right. Blah blah blah blah blah. Right? And so we'll sit down, and we'll work through a few problems. Right? Because I I happen to be very good at math. Right? And so, you know, or at least I have confidence. And I mean, I, I did the math competitions in, in high school and, you know, all of that stuff.

Charles Max Wood [00:54:20]:
I have a degree in, computer engineering. And so I had to take the advanced math classes. So I don't know if good at math is so much as the I've just done a lot of it. And so I see the patterns. Right. But whatever the case is. Right. And so we work through a few of them.

Charles Max Wood [00:54:33]:
Well, this isn't how my teacher told me to do it, but does it make sense to you? Why? Yes. Yes, it does. Okay. We'll do 3 or 4 more of these and then come back to me with where you get stuck on any of them. And inevitably, on the 3 or 4 of them, he works out 2 or 3 of them, and the last one has some little niggly trick to it that is like, okay. You've gotta think about this in this way, and then the light comes on again and you go through the same process in a smaller way.

Tony Alicea [00:54:59]:
Yeah. And I've had the exact same experience. And I think the difference is memorizing. Right? Because the the class and the math class will say, use this formula.

Charles Max Wood [00:55:08]:
Mhmm.

Tony Alicea [00:55:09]:
And then they're given a novel problem, right, where it's not very clear how to use the formula. Right. But when you go backwards and go, well, actually, this formula represents this triangle. Let's draw the triangle. Or the this formula represents this happening on the number line. Oh, that's what that means. And then now there's a mental model to rely on, to lean on when dealing with novel circumstances. And I I think it's one to one with development.

Dan Shappir [00:55:35]:
But and and here's kind of the thing. With development, to an extent, it's always a a novel circumstance. You're you're not solving a textbook problem where there's a textbook solution. You know, the whole point is you're creating new software where that software did not exist before. Now, you know, obviously, we're collect creating a lot of similar solutions. You know, frameworks exist because there's such a huge overlap between the

Charles Max Wood [00:56:00]:
problems that you're solving

Dan Shappir [00:56:02]:
and design patterns exactly. But still, at the end of the day, there is something unique about what you're building compared to every other program that's ever been written. You know, it might just be the color of the UI, but it's still unique. So so that I think is a really key aspect. And and Henry just made another interesting aspect. He said that, devs all are all also to learn only what they need to get a work a job. Nothing nothing more. Nothing ancillary.

Dan Shappir [00:56:35]:
So and and to be honest, to to some extent, I really can't blame them. I mean, if you're a junior looking to find a job and on and there's just so much to learn, you know, it's kind of, you know, it's easier for us to an extent to senior. We we've seen it all. But you're just coming into the field and and so many devs have so little experience. You know? Like, I I don't know. Like, the median experience is, like, what, 2, 3 years? So, you know, how do you deal with the quantity? How do you prioritize?

Tony Alicea [00:57:08]:
Yeah. That's a great question. And I thought about this one before this, this recording. And I think it I think that really is a practical question. If you do not prioritize based on social media, please. Because social media

Charles Max Wood [00:57:30]:
Thank you. Thank you. Yeah. Where is it on the hype cycle? It's right at the top. Go for it.

Tony Alicea [00:57:38]:
Yeah. Exactly. So the funny thing is if you're on social media, you will be led to believe that all 100% of DevJobs is building new stuff on the latest and greatest thing. If you've actually been a developer for any good period of time, you'll realize that a good portion of your job or jobs out there is maintenance of things that already exist. I have a course. My first course I ever made was on AngularJS, not Angular, AngularJS. Do you know that course is still popular? Why is that course still popular? Because there's a bunch of AngularJS apps out there that need maintenance that people aren't rebuilding yet, that are probably very important to some company. So the prioritization is basically what jobs are available and what are you going to be working on in those jobs.

Tony Alicea [00:58:26]:
So, yeah, there's plenty of React jobs out there. Right? Because React's been around a long time. Not because React is the latest and the greatest. It's just there's a lot of existing software or existing tooling. But you may look up a job, and it's something that's not the latest and greatest. And that's okay. You know, if you if you were to post it out there on social media, they might say, oh, well, you're gonna be hurting yourself in the future for future jobs and things like that. My response to, I need to know this latest and greatest abstraction in order to be, get a good job is show up your fundamentals.

Tony Alicea [00:59:01]:
Because if you shore up your fundamentals, you can learn anything, any abstraction on top of the fundamentals.

Dan Shappir [00:59:07]:
Amen. Yep. Yeah. That that I always look for that. Whenever I interview, I'm looking for a person that has a good grasp, that has the capability to learn. You know, the fact that you happen to memorize a particular technology is a lot less interesting for me than the your ability to, you know, learn new stuff as it comes your way.

Tony Alicea [00:59:32]:
Yeah. It's, I'm also a Spanish speaker, and I learned the language as an adult. And so I I kind of relate it. I think Steve was mentioning it. You may not know every word in the Spanish dictionary. You may not know the entire vocabulary. But if you understand conjugation and sentence structure Mhmm. You're gonna be able to add vocabulary very easily.

Tony Alicea [00:59:58]:
But if you just memorize words and phrases with no concept of sentence structure, you have a much harder time. So getting the fundamentals is your sentence structure, your grammar. It's your grammar of the web. And now all of these things, whatever framework it is, and, you know, maybe like one over the other, it's fine. It's about ergonomics and about how it works and its goals. Great. But it's still just an implementation. Right? It's still just vocabulary on top of the grammatical structure of the web itself.

Dan Shappir [01:00:29]:
Yeah. But web fundamentals looks less appealing in your butt in your resume than,

Tony Alicea [01:00:37]:
Yeah. Yeah.

Charles Max Wood [01:00:39]:
I want to add a couple of things to this. So, you know, to the, spoken language example, I took French for 6 years in junior high and high school. Right. And I was fairly proficient. My grandmother was French and so I would go practice with her. I just sit and chat with her. And I wasn't great at it by any means, but the fundamentals are the same in all of the romance languages, like Spanish or Italian. And when I was 18, I got a call from the church to go serve a mission in Italy.

Charles Max Wood [01:01:08]:
And so, you know, I went to a missionary training center and they taught us Italian for 8 weeks. And then, you know, dropped us in the middle of the country where you realized you really didn't know Italian. But the point is, is that because all of those concepts were the same, I picked it up a lot quicker than a lot of the other people, because, you know, it didn't matter that I had spent all the time doing react romance language. Right. I could pick up Vue or, you know, French and learning Italian. And so it really does help because the more you see, and the more you have some of the similar problems solved, yeah. A lot of these pieces fall into place. But the other thing is, is that, and this is to your point of what are you going to use? Right? I knew for 2 years I was gonna use Italian because I was gonna live there.

Charles Max Wood [01:01:50]:
Right? And to a certain extent, though, I also want to extend this to what you want to eventually be using. Right? And so some people they're just like, I've coached. I don't know how many people. Right. And one poignant example that I had, there was a guy that was working for a company and he's like, look, this is a great company, but they're using X JS. I don't even, I don't know if you guys even remember it. It's his oldish framework. It's kinda got some dot net roots.

Charles Max Wood [01:02:16]:
It was really clunky. I did a little bit of work in it, way back in the day. And, anyway, it, he, he felt stuck, right? Because he knew that nobody else. Right? Finding another job using XJS was just not gonna be a thing for him. And so that's where I was encouraging him. Okay. Right. So if you're working in Angular JS and you're like, well, maybe my next job will be Angular, like Angular 15 or 16 or whatever they're on now.

Charles Max Wood [01:02:42]:
Right. Go learn it. Right. Go learn it. And then, and then you can parlay that into that next position that you want to be in, make that your current position. Right? And I encourage people to do this all the time. I want to be a well known developer. All right.

Charles Max Wood [01:02:59]:
Well, you know, that's not a programming framework, but go to toastmasters, right? Or, I want to write a book. Okay. Well start writing a blog every day and start building those skills. Right? It, this applies to everything. But but the point is is that, you know, it doesn't just have to be what am I gonna use, but what am I gonna use in the next dream job? That may be what you're spending some of your time on.

Tony Alicea [01:03:23]:
Yeah. A 100%. It's the job that I have and the job that I want Mhmm. Basically. Right? And and so the be open I say, when you show up your fundamentals, you can be open to any job that you have because it's always gonna be building on those fundamentals, and it'll make it easier to have the time to learn the thing for the job you want. Right. Because your your time is limited. Right? And if you whatever your personal circumstances are, in order to make best use of that time, let's say I I wanna learn whatever the new thing is, and I don't use it at my current job, but that's where I wanna be.

Tony Alicea [01:04:04]:
Okay. How quickly can you learn the new thing will depend on how good your fundamentals are. That's so true. Yeah. And then so it may take you months versus literally weeks, right, as far as a difference or days in some cases because you can just look at it and go, oh, this coder did a thing. And, essentially, you sit at the level of the person who invented it instead of sitting an abstraction layer above where you don't really understand what's happening. Another illustration I like to use is that of a a drain. If you drop something down the drain in your sink and you have no mental model of how plumbing works, it's like, oh, well, it's gone.

Tony Alicea [01:04:48]:
But if you understand how plumbing works, you might have a chance of getting to it. And if you're a guy that works for the city and understands how the whole sewer system works, you have an even better chance. Right? So it's it's how how long will it take you to retrieve the thing? Depends on your mental like, the depth of your mental model. So learning and implementing anything is is just time. And and these frameworks have a lot of crossover.

Charles Max Wood [01:05:14]:
Mhmm.

Tony Alicea [01:05:14]:
These concepts are not, like, 100% unique to every framework. They're implementing it in different ways. There's different quirks. There's different,

Dan Shappir [01:05:22]:
speech doing signals.

Tony Alicea [01:05:24]:
Yeah. Signal signals is a great example. I want to learn SolidJS or I wanna learn signals in Angular or QUIC. Well, you can learn if you know JavaScript well, signals is just implemented in JavaScript. It's not a new web techno I mean, there is a a a proposal now for signals in the browser, but, it's it's just some JavaScript code. You could make your own signals. Now, you know, maybe you probably shouldn't do that because other people are doing much more robust ones. But if you understand it conceptually as just other people's JavaScript, you can learn any of this stuff much quicker.

Tony Alicea [01:06:02]:
Yep.

Dan Shappir [01:06:03]:
Mhmm.

Charles Max Wood [01:06:04]:
Alright. Well, we're we're kinda getting toward the end of our scheduled time. Is there anything else like I'm just thinking, you know, something that is fundamental to understanding how how do I learn, what do I learn, that kind of a thing that we haven't touched on yet.

Tony Alicea [01:06:20]:
I think, honestly, I think curiosity is and I mentioned it before, but I really do think curiosity is is the differentiator. You're going to ultimately do better the more curious you are as to how something works. And because the more curious you are as how something works, the more motivated you'll be on how something works. So working on building curiosity usually comes from experience. You know, you you the first time you break something down and realize how it works and you get that huge light bulb, that's addictive. You're gonna wanna go back to that feeling. And so work on you know, even if you're not motivated too much, try it for something, some aspect of something you use in your work every day. Feel that light bulb moment, and that will help you go back to it again.

Charles Max Wood [01:07:13]:
I love it. Honestly, that curiosity makes it more fun anyway.

Tony Alicea [01:07:17]:
It's true.

Dan Shappir [01:07:19]:
Alright. One of the main reasons that I love this field that we're in is that it's like solving a riddle, like, every day. People are paying me to solve riddles. And and the that that curiosity and that sense of accomplishment is something that I'm really addicted to.

Tony Alicea [01:07:40]:
Yeah. And the riddle is cross discipline as well. Right? I I'm I'm the director of education for a company called the Smythe Group, s m y t h. And I worked with a lot of these people for a long time. And you have devs and you have user experience and you have, DevOps and you have all these things. But getting all of it to work together well, and that's another aspect of understanding and learning tech, is the more curious you are, the better your team dynamics will be. Mhmm. The the easier time you'll have interacting with other people on your teams, including other developers and other disciplines.

Tony Alicea [01:08:12]:
It it turns into less of this kind of vague notion of how things work into a complete notion of how things work. And that actually makes it easier to have nice interactions, enjoyable interactions with your team. At least that's that's my experience, in my work with those folks and my work over the past, you know, over many years. It it just has a it just is beneficial overall.

Dan Shappir [01:08:38]:
So before we stop, I think we owe it to Henry. He's made so so many excellent comments throughout this episode. He raises a question specifically about the WordPress community, but you might apply it to anybody who's working in within legacy tech. Like, is the WordPress community curious? Or is, you know, if if I'm, like, kind of, quote, unquote, stuck in some legacy framework, how curious, am I?

Tony Alicea [01:09:07]:
That's a it's an interesting question. I think my experience is that your curiosity will yield less stress and faster production as a as a developer. So even if you're, let's say, a WordPress, and I've seen this happen. You're using some kind of CMS, and you're kinda stuck in that place. But you can be the person that figures out the problem really fast. For example, in you might have a a CMS where other people are writing content, and you're kind of working on the tooling for them to write that content and the widgets and whatever else. And they manage to do something that just breaks a page. The curiosity comes in now or again, with the fundamentals.

Tony Alicea [01:09:55]:
What's happening with the CSS? Can I make the HTML more semantic and accessible while I'm doing this? What is WordPress generating? What are the problems with the with the way WordPress generates HTML? How can I maximize my use of it? There are places you can find that. I've seen it happen. Right? You can be a a dev in a situation like that, and it's maybe not the latest and the greatest, but you can still say, this is still somebody else's code. This is still somebody doing something for me, and I can still see these problems not as these huge frustrations, but as opportunities for me to step an abstraction layer below and figure out how to solve these problems much more quickly because these problems are my stressors. Like, I don't wanna be spending my time with these problems. So so another way of saying it was figure out what your stressors are in these technologies even if they're legacy, and be curious about how to solve those stressors more quickly.

Dan Shappir [01:10:54]:
And I would like to add to that is that in some cases, you know, if people are just looking to, deploy something and then move on, it's it's a legitimate approach, but it becomes a race to the bottom because you're dispensable. There's nothing unique about you. On the other hand, if you're that person who is able to delve deeper and be able to solve the sticky problems and be able to integrate those legacy techno technologies for for example, with some new stuff that's coming out, that gives you an amazing leg up. I knew this guy, like, what, 20 something years ago. He was one of the last a s 400 developers, like, certainly in Israel, but probably in the world. Those of you who are not familiar, it's this legacy system from IBM. It was really popular back in the day, but then kind of fell off as, you know, as as the PCs replaced it. And he just he didn't he didn't just understand AS 400 better than anybody else.

Dan Shappir [01:12:07]:
He knew how to integrate them with new and modern technologies. So organizations that had AS 400 systems, when they brought him in, he could he it was beyond just keeping the lights running. It was also a stepping stone to the future. He would show them how they could take their existing system, integrate it with new so, services and capabilities that would eventually enable them to actually move off those a s 400 into those new technologies. But along the way, he made a ton of money.

Tony Alicea [01:12:43]:
Yeah. And this is an excellent point, and I've seen this multiple times. Somebody will in my own coursework, I always try to teach fundamentals up. Right? And so somebody will will come to me and something as satisfying for me as somebody will say, I went to work. I I didn't really get if what you were teaching me was useful, but I went to work the next week and I was able to solve this problem super fast. And the thing is that when you're the person that solves the problem faster, there's no guarantees. Right? There's no guarantees on jobs. But if if I'm the boss and I'm looking at a dev team and one of my members of that dev team is the person that bounces around and quickly helps people figure out problems because they're so good at understanding what's actually happening, integrating old systems, all of these things, their their fundamentals up.

Tony Alicea [01:13:32]:
That's not the first person probably I'm gonna think about when the the company has economic difficulty to to start laying off. Again, no guarantees. But you do help. You help your, there's a difference between getting a job and keeping a job. And maybe that's the big that's that's to me, it's kinda like the clincher. People are so worried about the getting a job, but all of these things that we're talking about help you keep the job.

Charles Max Wood [01:13:58]:
Yeah. I I wanna throw one more thing in, especially on the WordPress question. Right? So I've I've gone through a bunch of iterations with top top end devs, and we've been on WordPress twice. And the second time, I actually had to write a plugin to manage having multiple podcasts on the same system and all this stuff. Right. And then I've also worked with other organizations. Right? So right now I'm the vice chair for the Utah County Republican party and our websites on WordPress, right? The state parties, the website is also on WordPress incidentally, and I've been doing some stuff with that. Right.

Charles Max Wood [01:14:34]:
And so what's really been effective there yeah. Am I doing anything technically innovative? No. But these organizations that have gone from, we just need a web presence. Right? Which is where a lot of people reach for WordPress. Right? So they reach for WordPress and just, okay, I put up a theme, I filled in all the blanks, and I have a website. Now it's, hey, how do we engage people? How do we serve the people who need our resources? How do we right? And so it's much more of this communication and marketing problem than it is a web and technical problem. And so the innovation and the innovators of cur curious thought is as much, how do I put something in front of people that's gonna give them what they need as it is? How do I find the right plugins or combination of things or write my own code to to effectively do what needs to be done? And so the curiosity doesn't have to look like, I'm not using plugins. I'm writing my own code.

Charles Max Wood [01:15:32]:
It doesn't have to look like, you know, I I'm, I'm doing things the way everybody else does it. You can do everything the way everybody else does it, but because you have a unique grounding in your problem or in the thing they're trying to solve, whether external or internal, and you can be curious about, okay, how do I take this to the next place? And what that may mean is that you start picking up skills beyond the technical skills, right? So now it's okay, what's going on in the wider world of marketing. What's going on with the wider world of outreach, prospecting sales, you know, whatever other function this, WordPress site supports. And then you start coming back and saying, okay, now what are the solutions? And your curiosity technically might be, there are 8 different membership plugins that I can use, which one best fits my problem. And then from there, it's okay. Well, how can I make this better fit my problem so that it works best for the people who are gonna use it? And so, yeah, you're not out there reinventing or inventing some new technology. But what you are doing is you're finding that novel way of solving the problem with the tools that already exist that now that you understand the problem better. Right? You you have all the pieces to bring together, if that makes sense.

Tony Alicea [01:16:49]:
And this I've spent many years straddling the line between user experience design and development. And that that is really the sweet spot, I think, as a developer. What we're what we're there to do is solve problems. Mhmm. We're not there to try to figure out the the code to to work. Like, the code working is part of the job, but you're actually there to solve the problems that the software is is solving. So the even if you're in a legacy system, get to know it really well so that you're spending most of your time with, hey. Is it accessible? Hey, is it oh, there's a there's a problem that they're trying to solve and they can't figure it out.

Tony Alicea [01:17:27]:
I know that we can solve this problem this way. And it's not about implementation, like, how can I do it in the code? It's more about what's the right solution to solve that problem. And that can be very satisfying. Absolutely.

Charles Max Wood [01:17:38]:
Henri asked also what to do when the plugins create tech technical hurdles. And I don't know exactly what he's seeing, but what

Steve Edwards [01:17:45]:
I've seen, especially in WordPress,

Charles Max Wood [01:17:45]:
is that sometimes your plugins Yeah. How does WordPress work? How does it put this together? How does

Tony Alicea [01:17:55]:
it Yeah.

Charles Max Wood [01:17:56]:
How does WordPress work? How does it put this together? How does it load the plugins? What order does it load them in? You know, how does it execute the code that comes in the plugins? Right? And so when you understand those, then it's okay. So what's probably happening is is I'm seeing this functionality stomp on that functionality. And now that I understand how everything goes together, here's why it's probably happening.

Tony Alicea [01:18:17]:
Yep. And it goes back to that initial question. Right? It's not what and how. It's why, when, what, and how. And if you can answer all those 4 questions, your development life will change.

Charles Max Wood [01:18:27]:
Yeah. Alright. We're we're really getting up to our hard stop. So I'm gonna push this over to PIX. This has been awesome, Tony. Before we do PIX, where do people find you online?

Tony Alicea [01:18:39]:
Okay. So Anthony alicea.comalicea. My new course, you could find it understanding react .com. If you wanna spend that time with me, I put a j s Jabber coupon in there for for people too. The smythgroup.com, s m y t h, is the company that I'm I'm working with as well that helps dev teams be their best selves. Some interesting things there. Yeah. So those 3 planes.

Tony Alicea [01:19:04]:
And then on Twitter, I'm Anthony p, p as in Paul or Peter, alicea, a l I c e a.

Charles Max Wood [01:19:11]:
Awesome. Alright. We're gonna do the picks. We'll let you go last. That way you can kind of see what we're talking about here. I have a joke for Steve before he does his picks. And and I've heard this one before, but somebody told it and they thought it was hilarious, which made me think it was hilarious again, because they were just laughing about it for like 20 minutes. But, the joke is how do you catch a unique rabbit?

Steve Edwards [01:19:33]:
Can I give you an answer?

Charles Max Wood [01:19:34]:
Yeah.

Steve Edwards [01:19:35]:
You need up on

Charles Max Wood [01:19:37]:
him. Uh-huh. How do you catch a tame rabbit?

Steve Edwards [01:19:39]:
Tame way.

Charles Max Wood [01:19:41]:
You need up on him. Yeah. Exactly. Alright. Go ahead, Steve. What are your picks?

Steve Edwards [01:19:46]:
Okay. I have one pick, one dad joke for today, and it's a little longer one, but it it's it's well worth the the wait. So there were 3 kingdoms, each bordering on the same lake. For centuries, those kingdoms had fought over an island in the middle of that lake. One day, they decided to have it out once and for all. The first kingdom was quite rich and sent an army of 25 knights, each with 3 squires. The night before the battle, the knights jousted and comorted as their squires polished armor, cooked food, and sharpened weapons. The second kingdom was not so wealthy and sent only 10 knights, each with 2 squires.

Steve Edwards [01:20:18]:
The night before the battle, the knights caborted and sharpened their weapons as the squires polished armor and prepared dinner. The 3rd kingdom was very poor and only sent one elderly knight with his sole squire. The night before the battle, the knight sharpened his weapon while the squire, using a noosed rope, slung a pot high over the fire to cook while he prepared the knight's armor. The next day, the battle began. All the knights of the first two kingdoms had cavorted a bit too much. One should never cavort while sharpening weapons and jousting. Hold on. I'm getting my sound effect here.

Steve Edwards [01:20:50]:
And could not fight. The squire of the 3rd kingdom could not rouse the elderly knight in time for the combat. So in the absence of the knights, the squires fought. The battle raised well into the late hours, but when the dust finally settled, a solitary figure limped from the carnage. The lone squire from the 3rd kingdom dragged himself away, beaten, bloodied, but victorious. And all that just goes to prove the squire of the high pot and noose is equal to the sum of the squires of the other two sides.

Dan Shappir [01:21:23]:
Oh, man. Joke.

Steve Edwards [01:21:26]:
Wow. That was a long road to hoe, but well worth it.

Charles Max Wood [01:21:30]:
That was awesome. Yeah. Amazing. Dan, what are your picks?

Steve Edwards [01:21:33]:
And then oh, here's I got one more dad. Sorry, Tony. My my

Dan Shappir [01:21:36]:
I wake.

Steve Edwards [01:21:37]:
Is dad jokes. But, so interviewer. Says forget everything you learned in college. You won't need it working here. Me. But I didn't go to college. And he said, well, then you're unqualified for this job.

Dan Shappir [01:21:51]:
Yeah.

Charles Max Wood [01:21:52]:
That's too close to the truth for me to laugh at it.

Dan Shappir [01:21:57]:
Anyway, so I've got 2 picks. I'll start with the first one is, this show that we're watching on Netflix. It's called Ripley. It's spelled r I p l e y. It's really interesting kind of out there. It's black and white. It's about this, grifter in the sixties that goes to Italy to, you know, on a mission for this wealthy family to return their kind of, wayward son. And it goes into really odd and dark places.

Dan Shappir [01:22:30]:
But, you know, it's it's it's really interesting. We're enjoying it and it but it's it's kind of out there. So it's like I said, it's called Ripley. So that would be my first pick. My second is, I mentioned, the fact that, you know, yesterday, as of the time of this recording, Iran fired a bunch of, rockets and well, actually missiles at at Israel. So something like a 170 drones, something like, like, a 110 ballistic missiles, some cruise missiles and whatnot. And Israel was actually with the help of, others like the US and Jordan and other countries was able to actually shoot down the vast majority. Something like 99% out of all the rockets fired, something like, 7 made it in.

Dan Shappir [01:23:26]:
And, the reason that I'm I'm kind of mentioning it in in, you know, the the relation it has to me is that when I served in the army, I was actually in the Israeli army. I was actually heavily involved in the, experiments for the ARROW anti ballistic missile. So, actually shooting down the ballistic missiles, you have, like, a layered defense system. You have the you use different ways to shoot down different things like the drones or the cruise missiles. But for the ballistic missiles, you actually want to intercept them in outer space if possible, which is kind of pretty amazing. Think about that. You're you're you're shooting down missiles in in outer space. And, like I said, I was heavily involved in the in the, the test for the, for the arrow anti missile, missile.

Dan Shappir [01:24:19]:
And now it's really gratifying to see this, you know, protecting my country and saving lives. So, you know, that would be my my second pick. Although I'm not sure what I'm picking. And, those are my picks for today.

Charles Max Wood [01:24:35]:
Yeah. As a freelancer, sometimes my projects don't ever get used. I guess it's pretty gratifying to seeing it used in that way on that level. So that's awesome. I'm gonna pick. I I've got a bunch of picks today, and so I'm just gonna just work through them. My first pick, I usually pick a board game or a card game. This one's a card game.

Charles Max Wood [01:24:56]:
It's called Doomlings. And, it's it's kind of loosely based on kind of genetic genetics. So you have different traits. You have trait cards that you collect is effectively how you win. You get however many points they say they're worth at the end. So some of them it's this is worth 1 for every one of them you have. Right? So if you have 12, then you get 12 points. Some of them it's it starts as worth 17 points, but every trait card you have diminishes its worth by 1.

Charles Max Wood [01:25:25]:
Right? And so then you're trying to play other trait cards that allow you to discard trait cards that you have or play them on other people or things like that anyway. And there are different colors. And so some of them give you bonuses for having more of one color than another. Some of the trade cards allow you to penalize other players. And what you do is effectively you have 3 catastrophe cards in the age deck. And so every time you hit a catastrophe, it has some effect. Right? So you have to get rid of 1 of your trade cards or you have to get rid of 1 of a certain color and you, it usually decreases your gene pool, which is your hand size. And then at, at the 3rd catastrophe, whenever it shows up the game's over and you do the game end effect on that card, unless somebody has something that tells

Dan Shappir [01:26:09]:
them that you choose. This is getting really complicated.

Charles Max Wood [01:26:12]:
That's the whole game. That that is the whole game. As a board game weight of 1.75, so it's pretty easy to pick up for a casual gamer. I mean, and then I basically just told you all the rules right there in like 1 minute. Yeah. It sounds a little complicated altogether, but if you sit down and play through it once, it's, it's pretty easy to pick up. It's definitely something that I think my 8 year old could play though. I don't know that she'd really get the interplay between some of the trade cards.

Charles Max Wood [01:26:38]:
But yeah. Anyway, it was a fun game. Played it with my 12 year old. We had a good time. So I'm gonna pick Doomlings. And then, I have a couple of other picks. One of them is an app, and this is one that my wife and her friends were playing with each other, and then she got all my kids on it. And so I got on it because I wanted to participate with them on it.

Charles Max Wood [01:26:58]:
It's called Finch, and it's a self care app. And so, what you do is every every time I get into it, it asks me how I'm doing. Right? How motivated are you? Or how do you feel right now? Or something like that. And then you can put a bunch of tasks in, and they're usually supposed to be self care tasks. But I've been putting tasks in for things like, do an hour of sponsorship outreach or do an hour of just regular developer outreach. I usually do both of those on LinkedIn. Or, you know, my truck had a bunch of garbage in it. So it was removed at least 1 piece of trash from the truck every day.

Charles Max Wood [01:27:32]:
Right? And then you get points for that and you send your Finch on adventures and he grows up and stuff like that. And you can send, encouragement and things like that to the the other people that you're connected to. And so, anyway, if you want to pick it up, it is I think it's finchcare.com. Yeah. Finchcare.com. It's an iPhone and Android app. I'll put the link here in the, comments on YouTube and Facebook. And then, if you want to add a friend to your they call it your tree town.

Charles Max Wood [01:28:09]:
You can, you just have to have their code. So I'm gonna put my, Finch code in there as well. And so if you get Finch and you wanna add me to your tree town, right, so that you can send me encouragement and I can send you encouragement. In order for me to be able to do it for you, you have to send me your code too, but that's fine. You could just email me or something, and I'll I'll add you to my tree town. I don't I don't particularly care. But yeah. So it's just kind of a fun way to be friendly to other people.

Charles Max Wood [01:28:38]:
And so I'm gonna pick that. And then, I've decided that I'm gonna run another marathon this year. It's been about 5 years since I ran a marathon. And so I'm using a system called TrainingPeaks. It's free. They do have a paid version and it gives features that are kind of nice. I used to have the paid version, but I don't anymore. And then the nice thing about TrainingPeaks is you can go and buy a training plan.

Charles Max Wood [01:29:01]:
So I already owned a 16 week, training plan for, marathon. And so I plugged that in. The marathon I wanna run is, St. George and that's at the beginning of October. And so 16 weeks is the middle of June. And so I just picked up another plan for $5. That's a 10 ks plan and it's an 8 week plan. And so it finishes.

Charles Max Wood [01:29:24]:
And then I have a week, 1 week break, and then I get right into the marathon plan, but it just gives me that workout so I can go do it. And, so yeah. So I like to go out for 45 minutes. My first workout's 30 minutes. So I'm gonna go walk for 15 minutes and then run 30, the 30 minute workout that it gives me. So anyway, really dig training peaks. And so I'm gonna pick that as well. It's just a lot of, I guess, self care, live your best life kind of stuff.

Charles Max Wood [01:29:49]:
And then the last pick is, 75 hard. I'm gonna do that again. I've done that, like, 3 or 4 times now, and it's awesome. There's a full live hard program that comes on after it. Right? So you do 75 days, and then you can do the other 3 phases. Last year, I made it through phase 1 and just had trouble getting started again because there's a mandatory break between phase 1 and phase 2. And so I think this year, I'm just gonna keep doing the stuff even though I can't track it for the 30 days. And that way, when I get back into it, I'm not so out of practice on the habits that right.

Charles Max Wood [01:30:25]:
That I can just stick with it. And I think that's kind of the idea is, you know, even if you Slack off for a little while, do you have the discipline to get back on and go? So, I'll I'll put links to training peaks and 75 hard in the, in the the comments, and we'll let Tony share some pics with us.

Tony Alicea [01:30:46]:
Yeah. Well, you guys usually mention some board gaming stuff. I'm a big board gamer. I'm also a tabletop RPG game master. So I wanted to give my picks on

Charles Max Wood [01:30:56]:
Let's be friends.

Tony Alicea [01:30:58]:
I wanna get my picks on how to get into it or get your family into it, kids, friends. My favorite, real quick, for board gaming, Forbidden Desert by Matt, Lee Cotton, who did who did, Pandemic and other games like Forbidden Island. There's a new one Forbidden Jungle, but Forbidden Desert is still my favorite by far. Cooperative game, you can tell a story with with the kids. You can it's it's fantastic and the game is very different every time

Charles Max Wood [01:31:25]:
you play. So to stand out of that game.

Tony Alicea [01:31:29]:
Yeah. So love that. And then when it comes to tabletop RPGs, if you wanna get into that, 2 recommendations. There's something called Fate Accelerated Edition. Fate is a tabletop structure. Accelerated Edition is a very fast, easy way to run just about any story you wanna run with with some dice. There's even a bunch of kids RPGs that are built on top of it, but it's also great for adults. So Fate Accelerated Edition, FAE, is great.

Tony Alicea [01:31:56]:
And I also highly recommend Tales from the Loop, which is absolutely fantastic. There's, like, free music you can find online that goes with it. There's great, imagery that you can use with it, but it's basically kind of like a cross between Stranger Things and the goodys where your kids solving mysteries. Absolutely wonderful RPG, Tales From the Loop. And there there was also a TV show. It's based on some art, some artwork and things, but, the the RPG is is absolutely fantastic way to get into it. So those are my picks.

Charles Max Wood [01:32:27]:
Awesome. I I kind of expected you to pick Gloomhaven or something.

Tony Alicea [01:32:32]:
You know, I am I I I like my big heavy board game as a big Lacerta guy. I've actually, I have some some stuff out there I've built. If you go to games with tony.com, I've I've built helpers and solo modes and stuff like that. But I am I really love certain themes. I love sci fi.

Charles Max Wood [01:32:51]:
Okay.

Tony Alicea [01:32:51]:
I love adventure. Those are the themes that really appeal to me.

Charles Max Wood [01:32:55]:
Awesome. Yeah. Well, next time we're both at a conference, we'll have to fit whatever games we can in our bags and see how it goes.

Tony Alicea [01:33:02]:
Sounds good.

Charles Max Wood [01:33:03]:
Alright. Well, thanks for coming. This was fun. Yeah.

Tony Alicea [01:33:05]:
I had a great time. Thank you for inviting me.

Dan Shappir [01:33:08]:
Yeah. It was excellent. Thank you very much.

Charles Max Wood [01:33:10]:
Alright, folks. We're gonna wrap it here. Until next time, Max out.
Album Art
From Learning New Languages to Learning New Technologies - JSJ 629
0:00
01:33:18
Playback Speed: