WEBVTT

1
00:00:06.400 --> 00:00:10.480
Hey, folks, welcome back to
another episode of JavaScript Jabber. This week

2
00:00:10.519 --> 00:00:14.560
on our panel we have Dan schupp
here. Hey, coming from a warm

3
00:00:14.560 --> 00:00:18.160
and sunny Tel Aviv. No rockets
pulling on my head for a change.

4
00:00:19.359 --> 00:00:23.359
Yeah, I heard you had a
little stuff coming your way. What yesterday?

5
00:00:24.399 --> 00:00:28.480
Yes, it was interesting times.
It will come up again in the

6
00:00:28.519 --> 00:00:32.920
picks, So if you're listening in, you know it's worth waiting till the

7
00:00:33.000 --> 00:00:37.159
end. Yep. Absolutely, but
thank God for the Iron Film. We'll

8
00:00:37.240 --> 00:00:42.079
just put it that way. Steve
Edwards, how you doing? Coming from

9
00:00:42.159 --> 00:00:49.159
a not warmon sunny Portland. And
I'm Charles Maxwood from top End Evs and

10
00:00:49.399 --> 00:00:53.799
we have a special guest this week. It is Tony Alicia. Tony,

11
00:00:53.840 --> 00:00:56.640
do you want to say hello?
Let people know why you're so awesome all

12
00:00:56.679 --> 00:01:00.560
the stuff you've done on you to
me and plural site and all the other

13
00:01:00.640 --> 00:01:03.599
places that you show up. Hi. Great to be here. Yeah.

14
00:01:03.680 --> 00:01:12.000
I'm twenty five years of development,
mostly web and database oriented, as well

15
00:01:12.040 --> 00:01:18.879
as the psychology of human computer interaction
and user experience design. I've got about

16
00:01:18.879 --> 00:01:22.760
it. Yeah, and I've got
about ten years as a tech educator.

17
00:01:23.280 --> 00:01:27.120
So if anybody out there does know
who I am. It would be based

18
00:01:27.159 --> 00:01:33.079
on probably my you to me courses. Principally I'm a plural site instructor as

19
00:01:33.120 --> 00:01:37.760
well. Most popular courses has been
like JavaScript Understanding the Weird Parts is probably

20
00:01:37.760 --> 00:01:45.319
the number one, and JavaScript Weird
Parts shocker. I know a shorter book

21
00:01:45.359 --> 00:01:49.599
if you listed the not weird parts
exactly. So anyway, yeah, that's

22
00:01:49.719 --> 00:01:53.480
that's me. Happy to be here. Yeah, absolutely, I feel like

23
00:01:53.159 --> 00:02:00.840
I live in the What Developer Education
mecca because it's headquarters is like an hour's

24
00:02:00.920 --> 00:02:07.200
drive from here, and John Lindquist
lives in my neighborhood. So anyway,

25
00:02:07.800 --> 00:02:10.159
yeah, and then it seems like
there are a bunch of other places that

26
00:02:10.240 --> 00:02:14.520
do kind of the same sorts of
things in different ways around here. But

27
00:02:15.520 --> 00:02:17.639
one thing as we get into the
topic of how to Learn that I'm just

28
00:02:17.639 --> 00:02:23.360
going to put out there is it
must have been what like eight years ago,

29
00:02:23.520 --> 00:02:29.039
nine years ago, we had Katrina
Owen. Now you all probably don't

30
00:02:29.080 --> 00:02:32.680
know her as well just because she's
she was in the Ruby community, but

31
00:02:34.719 --> 00:02:38.479
if you've used Exorcism dot io to
learn stuff, she's the person who created

32
00:02:38.479 --> 00:02:43.080
that. And anyway, we had
her on and we did how to Learn

33
00:02:43.080 --> 00:02:47.479
episode and it gets downloaded easily more
than just about any other episode. I

34
00:02:47.479 --> 00:02:51.840
mean, new episodes, especially for
JavaScript Jabber, get more in a week

35
00:02:51.879 --> 00:02:55.199
than that one does. But that's
about it. Like everything else just comes

36
00:02:55.199 --> 00:02:59.280
in behind it. And if you
go look at the stats, it's usually

37
00:02:59.639 --> 00:03:02.639
whatever the latest episodes are for JavaScript
Jabber, Ruby Rogues, and React round

38
00:03:02.719 --> 00:03:07.680
up, and then it's that one, and then it's the homepage for JavaScript

39
00:03:07.759 --> 00:03:10.439
Jabber. So just give you an
idea of how many places are telling people

40
00:03:10.479 --> 00:03:14.960
to go listen to that episode.
It's definitely a topic that people are interested

41
00:03:15.039 --> 00:03:19.360
in, so for sure. So
yeah, so enlighten us. How do

42
00:03:19.400 --> 00:03:27.039
you learn tech? Easy question,
now, right, I think well,

43
00:03:27.159 --> 00:03:30.560
for starters, I think it's good
to define what we mean when we say

44
00:03:30.599 --> 00:03:37.560
that we've actually learned something until I
find huh useful because people have different ideas

45
00:03:37.599 --> 00:03:43.000
about what they think it means to
have learned something. So in the context

46
00:03:43.080 --> 00:03:46.639
of software development, and I have
tips on learning things, but as far

47
00:03:46.680 --> 00:03:51.960
as that idea, in the context
of software development, I would say that

48
00:03:53.199 --> 00:03:59.479
you've learned something when you have a
precise and accurate mental model, as opposed

49
00:03:59.520 --> 00:04:02.560
to they or inaccurate mental model,
meaning how do you think the thing that

50
00:04:02.599 --> 00:04:11.319
you're using works, And maybe a
more practical definition is that you've learned something

51
00:04:12.319 --> 00:04:18.319
when your knowledge and your mental model
enable you to effectively deal with novel requirements

52
00:04:19.079 --> 00:04:25.160
and debug problems while you're using that
tech. So the reason I say that

53
00:04:25.480 --> 00:04:27.920
I have an illustration I like to
use. Let's say you move to a

54
00:04:27.920 --> 00:04:30.680
new city and you want to learn
the streets. When do I say,

55
00:04:30.720 --> 00:04:34.439
I've learned the streets of the city. Well, if you just use your

56
00:04:34.480 --> 00:04:40.000
GPS to get from home to work, and you memorize that route, the

57
00:04:40.040 --> 00:04:43.480
GPS has turned right here, then
turn left there, etc. You might

58
00:04:43.519 --> 00:04:46.800
say, hey, I've learned the
route. I've learned the streets of the

59
00:04:46.839 --> 00:04:50.279
city. But really all you've done
is imitate what the GPS is telling you

60
00:04:50.279 --> 00:04:56.279
to do. As soon as there's
construction on one of those streets, you

61
00:04:56.360 --> 00:04:58.879
have no idea what to do,
and if your GPS isn't working, now

62
00:04:58.879 --> 00:05:01.560
you're going to start trying to figure
way around. If, on the other

63
00:05:01.600 --> 00:05:03.920
hand, you had looked at the
map, you got a feeling for the

64
00:05:03.959 --> 00:05:08.560
major streets, the major areas,
this is the financial district, this is

65
00:05:08.560 --> 00:05:14.399
the business district, and you have
a mental model of the city. Now,

66
00:05:14.839 --> 00:05:16.959
as you're using the GPS, you're
also refining that mental model, and

67
00:05:17.000 --> 00:05:19.639
you end up being able to say, Okay, I know what's happening.

68
00:05:19.639 --> 00:05:24.600
When I need to go somewhere that
I've never been, or when I have

69
00:05:24.720 --> 00:05:28.160
construction and I need to get around
it, I can do that more effectively.

70
00:05:28.199 --> 00:05:31.399
And that's the same way with coding. When a lot of people learn

71
00:05:31.879 --> 00:05:35.720
a tech or even say this,
how they want to learn tech is just

72
00:05:35.839 --> 00:05:40.600
by doing, which is everybody learns
by doing. That's important, But a

73
00:05:40.600 --> 00:05:43.600
lot of content out there, even
on the internet, is about watch me

74
00:05:43.720 --> 00:05:46.720
code, and you code the same
thing, and that's the equivalent of the

75
00:05:46.759 --> 00:05:50.959
GPS. You can get from one
route to another. But as soon as

76
00:05:50.959 --> 00:05:55.360
you have novel requirements, something you
know, your boss, whatever it is,

77
00:05:55.399 --> 00:05:58.319
comes at you with something you've never
seen before, or you've never done

78
00:05:58.360 --> 00:06:02.000
before in a tutorial, or there's
a problem that you've never seen before,

79
00:06:02.040 --> 00:06:06.079
and now you have to debug it. That's when it shows whether or not

80
00:06:06.279 --> 00:06:11.279
you've just been imitating and you have
a vague or inaccurate mental model, or

81
00:06:11.839 --> 00:06:15.839
you understand to a reasonable degree how
this technology works, what it's doing,

82
00:06:16.639 --> 00:06:21.240
so that you can then use that
mental model to reason on how to accomplish

83
00:06:21.279 --> 00:06:26.079
a task or fix a problem.
So, yeah, now this is a

84
00:06:26.160 --> 00:06:30.279
topic I've I'm pretty interested in and
have talked about in various places over the

85
00:06:30.360 --> 00:06:33.279
years, and I prefer to think
about it as along the lines of what

86
00:06:33.279 --> 00:06:38.079
you're saying. But the more completely
you know what you're dealing with, then

87
00:06:38.120 --> 00:06:42.879
you know when something's wrong right.
If you know that something, you know

88
00:06:42.920 --> 00:06:45.399
how it's supposed to work, then
something's wrong with like Okay, that's not

89
00:06:45.519 --> 00:06:46.800
right, and then you can figure
this is what it should be. This

90
00:06:46.839 --> 00:06:50.399
is you can narrow down to this
is what's wrong and go from there.

91
00:06:50.879 --> 00:06:55.480
You know. One of the classic
examples that I've heard given before, and

92
00:06:55.560 --> 00:06:59.399
I started out my career after college
in a bank and I used to train

93
00:06:59.480 --> 00:07:02.720
tellers for a little while, and
they didn't do this when I was in

94
00:07:02.759 --> 00:07:06.319
there, but in the past what
they would do to train tellers is they

95
00:07:06.360 --> 00:07:10.560
would just have them to sit there
and count cash, count cash, count,

96
00:07:10.600 --> 00:07:13.560
cash count cash. Then after a
while they throw in a counterfeit.

97
00:07:14.439 --> 00:07:18.560
And because you know the real one
so well, you can easily spot when

98
00:07:18.600 --> 00:07:23.759
something's wrong. You know the same
is true when you're dealing with tech support,

99
00:07:23.879 --> 00:07:27.519
with you know, whole websites.
I can remember dealing with a huge

100
00:07:27.519 --> 00:07:29.920
one when I was at Fluke and
people would say, well, what's wrong

101
00:07:29.959 --> 00:07:31.160
here? And I think about it
and realized it should be doing this.

102
00:07:31.240 --> 00:07:34.240
Okay, I bet the problems right
there, not because I knew what the

103
00:07:34.279 --> 00:07:40.079
problem was, but because I knew
the base, I knew how it operated,

104
00:07:40.319 --> 00:07:43.079
how it should operate, and then
I could tell you right away,

105
00:07:43.120 --> 00:07:46.600
okay, this is where something's going
wrong. So it's not so much to

106
00:07:46.600 --> 00:07:49.680
a certain degree when coding, it's
going to be yeah, how to do

107
00:07:49.759 --> 00:07:51.600
things. You know, how to
write and function, how to do this,

108
00:07:51.639 --> 00:07:54.680
how to accomplish this, But at
the same time, you got to

109
00:07:54.720 --> 00:07:57.519
know the tool, and the better
you know the tool, then it's a

110
00:07:57.600 --> 00:08:00.600
lot easier to be able to figure
out what to do with it once you

111
00:08:00.639 --> 00:08:05.000
know it. Yeah. I just
want to jump in on this too,

112
00:08:05.160 --> 00:08:09.199
just for a second, because I've
had people Usually the question I get is

113
00:08:09.240 --> 00:08:11.040
how do you stay current? Not
how do you learn new tech? But

114
00:08:11.439 --> 00:08:15.639
you know, you get pretty quickly
into okay, well here's how you know

115
00:08:15.680 --> 00:08:18.040
what you ought to learn, But
then how do you learn it right?

116
00:08:18.519 --> 00:08:20.519
And you know so then you talk
about books and videos and all this stuff,

117
00:08:20.519 --> 00:08:24.480
and I think, I think the
imitation is part of the process.

118
00:08:24.439 --> 00:08:26.560
But yeah, at the end of
the day, then it's okay, Well,

119
00:08:26.560 --> 00:08:28.720
how do I know if I've learned
it well enough? And I really

120
00:08:28.839 --> 00:08:35.399
liked your definition there where it's hey, look, I can find my way

121
00:08:35.440 --> 00:08:39.159
around the problems that I'm going to
run into, right, so you know,

122
00:08:39.240 --> 00:08:41.519
I mean, I've been doing most
of my experiences been in Ruby,

123
00:08:41.600 --> 00:08:46.039
right, and so if I run
into a hiccup, I have seven other

124
00:08:46.080 --> 00:08:48.440
ways that I can think of off
the top of my head to try and

125
00:08:48.440 --> 00:08:52.679
work around the problem. I know
at least six or seven different tools that

126
00:08:52.720 --> 00:08:54.600
I can use to figure out where
the problem even is. And maybe it's

127
00:08:54.639 --> 00:08:58.960
just a dumb typeo, but yeah, I like that as your level of

128
00:09:00.000 --> 00:09:03.879
proficiency. Okay, can you do
this without the training wheels and solve the

129
00:09:03.879 --> 00:09:05.639
problems that are going to come up? I have a question about that,

130
00:09:05.759 --> 00:09:13.440
because your initial definition kind of said
that your mental model is accurate, that

131
00:09:13.559 --> 00:09:20.879
it actually properly matches the way that
the system works. How do you know.

132
00:09:22.480 --> 00:09:26.600
I've seen, especially in web technologies, which tend to be fairly forgiving,

133
00:09:28.320 --> 00:09:33.559
I've seen people have really incorrect mental
model, yet you know somehow managed

134
00:09:33.600 --> 00:09:39.600
to model through. And you know, how do you overcome that situation?

135
00:09:39.720 --> 00:09:43.320
How do you realize it even to
begin with that you're in this situation?

136
00:09:43.440 --> 00:09:46.039
And then once you realize that you're
in it, how do you deal with

137
00:09:46.120 --> 00:09:50.159
it? Yeah, that's a great
question. And I want to say first

138
00:09:50.679 --> 00:09:56.559
that I agree that invitation is part
of the process. It's just as you're

139
00:09:56.600 --> 00:10:00.960
imitating, are you reinforcing a bad
mental model? Are you only having a

140
00:10:01.000 --> 00:10:03.200
vague when are you reinforcing a good
mental model? And that's a big difference

141
00:10:03.240 --> 00:10:09.360
into how useful that imitation will be
because I have to the short, really

142
00:10:09.399 --> 00:10:18.799
short story imitation. So my first
course in the university the you know,

143
00:10:18.840 --> 00:10:24.159
and I'm talking right back when where
people were a lot less computer proficient and

144
00:10:24.240 --> 00:10:26.559
computer literate than they were than they
are now. So even though it was

145
00:10:28.039 --> 00:10:31.399
CS one oh one, for some
of the students back then, it was

146
00:10:31.480 --> 00:10:35.080
literally their first time, you know, working with a computer. And the

147
00:10:35.200 --> 00:10:43.399
inster literally wrote on a whiteboard an
example Hello World program and basically the first

148
00:10:43.399 --> 00:10:50.279
homework was to enter that into the
computers in the university and get it to

149
00:10:50.360 --> 00:10:54.639
run. Now, his name let's
say was Joe. So he wrote a

150
00:10:54.759 --> 00:10:58.879
Hello World that basically wrote, hello, my name is Joe. Have to

151
00:11:00.120 --> 00:11:05.080
students handed in a program which said
hello, my name is Joe. So

152
00:11:05.320 --> 00:11:11.399
yeah, now please go on.
Yeah, that's a good example. So

153
00:11:11.519 --> 00:11:16.360
your question or your thought about how
do you know? I think you made

154
00:11:16.399 --> 00:11:20.200
an important phrase which, as you
said, you muddle through. One of

155
00:11:20.240 --> 00:11:24.120
the you could say great things about
the job as a developer. It is

156
00:11:24.200 --> 00:11:28.159
possible to muddle through and get things
to work without truly understanding what you're doing

157
00:11:28.279 --> 00:11:31.679
to a degree. Right, It's
possible to have a bad mental model,

158
00:11:33.440 --> 00:11:39.279
and either because the system is allows
you to or simply because there's so much

159
00:11:39.440 --> 00:11:43.240
information out there on the internet,
you know, eventually you can kind of

160
00:11:43.240 --> 00:11:46.679
figure what your way through it.
What I would say is that as a

161
00:11:48.360 --> 00:11:50.039
community, in my experience, and
I've been doing this, like I said,

162
00:11:50.039 --> 00:11:52.960
twenty five years, lots of different
dev teams. I know a lot

163
00:11:54.000 --> 00:11:58.600
of you guys have been doing this
a long time. We've normalized banging your

164
00:11:58.600 --> 00:12:03.600
head against the wall and not really
knowing what's going on, and then having

165
00:12:03.600 --> 00:12:05.799
a degree of stress, maybe even
if you're under you know, some kind

166
00:12:05.799 --> 00:12:13.879
of pressure, and that's a degree
of normalization that I think other a lot

167
00:12:13.879 --> 00:12:18.679
of other professional areas wouldn't have.
Like you wouldn't expect a doctor to muddle

168
00:12:18.720 --> 00:12:22.799
through, right, you would say
you need to understand anatomy, as opposed

169
00:12:22.799 --> 00:12:26.039
to let's try different meds, you
know, not knowing what one does or

170
00:12:26.039 --> 00:12:30.200
the other. So but we've kind
of accepted as development, right, and

171
00:12:30.240 --> 00:12:33.960
that does happen. But we've kind
of accepted diabetic And every time I switch

172
00:12:33.039 --> 00:12:35.720
doctors, they do this, Right, we're going to try this medicine.

173
00:12:35.759 --> 00:12:39.120
Now, we're going to try this
medicine and I'm going you don't know what

174
00:12:39.159 --> 00:12:43.240
they do? Yeah, yeah,
that's true. And but but don't we

175
00:12:43.320 --> 00:12:46.480
kind of do that as devs all
the time? Right, Like there's there

176
00:12:46.559 --> 00:12:50.960
is a muddle through when you when
you look at a development team. Oftentimes

177
00:12:52.000 --> 00:12:54.559
in the development team, there'll be
somebody that's the guy you go to when

178
00:12:54.559 --> 00:12:58.559
you're trying to debug a problem.
Right, There'll be somebody that in this

179
00:13:00.960 --> 00:13:03.399
You know, I can sit here
for two days and he'll or she or

180
00:13:03.399 --> 00:13:07.600
she will come up behind me look
at it and like very quickly be able

181
00:13:07.639 --> 00:13:13.440
to figure it out. And what
I find is those people are the people

182
00:13:13.519 --> 00:13:16.399
with the most precise and accurate mental
model. So whatever it is that you're

183
00:13:16.440 --> 00:13:22.200
doing based on experience, based on
what they're looking at. So if we're

184
00:13:22.240 --> 00:13:28.559
saying I'm going to learn something,
I like to distinguish that from I'm okay

185
00:13:28.639 --> 00:13:33.320
with muddling through. And I think
a lot of devs have only not maybe

186
00:13:33.360 --> 00:13:37.279
only ever, but most of their
career, have only experienced muddling through and

187
00:13:37.360 --> 00:13:41.840
have normalized it mentally. This is
what it's like. I have a bug,

188
00:13:41.279 --> 00:13:46.000
and I bang my head and I
don't understand why, and eventually we

189
00:13:46.080 --> 00:13:52.320
figure it out. And a really
experienced DEV team that has a really strong

190
00:13:52.399 --> 00:13:58.279
mental model actually has less of that
and therefore is more efficient, less stressed.

191
00:14:00.440 --> 00:14:03.120
And I would say, then really
learns what the technology is. That's

192
00:14:03.159 --> 00:14:09.000
my personal experience. It can I
share an example here, in fact,

193
00:14:09.039 --> 00:14:15.519
it was yesterday. So in my
church, I'm one of the technology specialists,

194
00:14:15.639 --> 00:14:18.440
right, So we do everything from
helping with like Facebook groups and stuff.

195
00:14:18.840 --> 00:14:24.799
But our steak and a steak is
a group of wards and wards are

196
00:14:24.840 --> 00:14:28.840
just congregations, right, So we
get together twice a year, you know,

197
00:14:28.919 --> 00:14:31.759
with kind of the larger area,
and we have a conference, right,

198
00:14:33.360 --> 00:14:35.120
And that's the other thing we do
is we set up the audio visual

199
00:14:35.159 --> 00:14:41.240
stuff for the conference. And so
there's another technology specialist and he's been doing

200
00:14:41.279 --> 00:14:43.279
this for a while, and so
I went and I helped him set things

201
00:14:43.360 --> 00:14:48.159
up on Saturday night in the main
building where the conference was going to be

202
00:14:48.159 --> 00:14:52.840
held, but we were transmitting it
to the other building that's over here by

203
00:14:52.879 --> 00:14:56.120
my house, and so, you
know, I helped him set everything up.

204
00:14:56.159 --> 00:14:58.919
And I've done enough audio visual stuff. I mean, I've been pot

205
00:15:00.080 --> 00:15:05.080
casting for what like eighteen forever and
so, right, so a lot of

206
00:15:05.080 --> 00:15:07.519
the stuff was familiar, but then
when I came over here, the part

207
00:15:07.519 --> 00:15:11.159
of it that I'm not familiar with
is the PA system. And so I

208
00:15:11.200 --> 00:15:15.320
got everything hooked up to the computer
so that I could stream from the other

209
00:15:15.360 --> 00:15:20.039
building. Right, I had it
hooked up to the projector. I had

210
00:15:20.080 --> 00:15:22.399
it hooked up to the little TV
so that people sitting on the rostrum could

211
00:15:22.600 --> 00:15:26.919
see it. And I couldn't get
it to play through the PA system,

212
00:15:26.759 --> 00:15:31.639
And so he helpfully sent over the
correct chord so that I could hook the

213
00:15:31.639 --> 00:15:37.039
the projector up to the PA system, and I hooked it up and it

214
00:15:37.039 --> 00:15:39.039
still didn't work, and eventually he
had to come over and show me what

215
00:15:39.159 --> 00:15:43.679
to do right, because I had
hooked it up wrong. And yeah,

216
00:15:43.720 --> 00:15:46.000
you know, now I know how
to do it, but you know that

217
00:15:46.120 --> 00:15:50.080
the muddling through didn't work right.
Yeah, I had to have somebody come

218
00:15:50.080 --> 00:15:52.080
in and say, no, this
end goes in the projector and this other

219
00:15:52.200 --> 00:15:56.200
end goes to the PA system and
if you hook it up this way,

220
00:15:56.320 --> 00:15:58.240
then you know. And as soon
as I saw it, it was like,

221
00:15:58.320 --> 00:16:02.639
oh, right, that's obvious anyway. Yeah, but that's the thing,

222
00:16:02.799 --> 00:16:08.039
Chuck, because sometimes, and I've
seen this a lot in over my

223
00:16:08.200 --> 00:16:14.759
career. It it's when you know
something doesn't work and you find the expert

224
00:16:15.080 --> 00:16:18.320
and you and you know, you
ask what do I do now? And

225
00:16:18.360 --> 00:16:22.360
then he shows you a certain way
and you ask why, and they say,

226
00:16:22.399 --> 00:16:26.600
well, that's just because that's the
way it works. You know,

227
00:16:26.639 --> 00:16:30.720
that's just how it works. And
I literally hate that. Now. Obviously

228
00:16:30.879 --> 00:16:37.360
a lot of times that person potentially
doesn't really know either they got this information

229
00:16:37.600 --> 00:16:41.799
maybe from somebody else, you know, maybe this is secondhand or third hand

230
00:16:41.919 --> 00:16:45.559
or what or what not, and
that's just the way that they've been doing

231
00:16:45.600 --> 00:16:51.399
it. And for me, understand, you know, if something is really

232
00:16:51.480 --> 00:16:56.519
important for me. Then I have
to understand not only the how, but

233
00:16:56.600 --> 00:17:00.240
also the why. And I think
that's kind of heat to the to the

234
00:17:00.279 --> 00:17:03.839
whole thing. If if you recall
a while back, I think it's over

235
00:17:03.960 --> 00:17:08.720
like a few years now, we
did this whole series of episodes on on

236
00:17:08.880 --> 00:17:15.920
react uh and instead of talking about
you know this React API or that React

237
00:17:15.960 --> 00:17:19.920
API, we spoke about why React
works the way that it does, Why

238
00:17:19.920 --> 00:17:25.000
does it have a virtual dawn?
Why what what's what's its role? What's

239
00:17:25.000 --> 00:17:27.759
its purpose? What are the implications? Stuff like that, trying to you

240
00:17:27.799 --> 00:17:34.960
know, understand the reasoning rather than
the specific APIs, which are you know

241
00:17:36.160 --> 00:17:40.799
might change over time and you know
and are you know you can't really remember

242
00:17:40.839 --> 00:17:45.079
them anyway, you can always google
them, so, but but the understanding

243
00:17:45.640 --> 00:17:51.039
is something much The under understanding,
the underlying approach is much more fundamental.

244
00:17:51.680 --> 00:17:55.119
Yeah. So the first tip that
I because I wrote these down so I

245
00:17:55.160 --> 00:17:59.039
wouldn't forget, but the very first
tip I was going to give was that

246
00:17:59.640 --> 00:18:04.519
a lot of times devs learn what
and how what am I going to do

247
00:18:04.599 --> 00:18:08.039
and how am I going to do
it? But when you really learn something,

248
00:18:08.279 --> 00:18:14.599
you should learn why, when,
what and how? Why does it

249
00:18:14.680 --> 00:18:18.319
exist? What is the problems that
it's designed to solve? Every technology exists

250
00:18:18.319 --> 00:18:22.720
for a reason. Somebody coded it
for something, right. The win win

251
00:18:22.920 --> 00:18:26.160
is the what are the best circumstances
under which to use this? Which helps

252
00:18:26.240 --> 00:18:30.000
keep you from, you know,
using a tech that maybe isn't the best

253
00:18:30.200 --> 00:18:34.279
solution for the problem that's in front
of you. And then the what and

254
00:18:34.319 --> 00:18:37.839
the how, which is what most
people learn, like the APIs and that,

255
00:18:38.000 --> 00:18:42.119
et cetera. Where do you go
to find that? Well, what

256
00:18:42.240 --> 00:18:48.559
I find very useful is to go
seek out the earliest introduction of that technology

257
00:18:48.640 --> 00:18:52.880
out there on the Internet. It
could be an RFC, it could be

258
00:18:52.920 --> 00:18:56.160
a blog post, it could be
a conference talk somewhere on YouTube. When

259
00:18:56.240 --> 00:19:02.559
was the first time somebody said,
hey, introducing and then the tech that

260
00:19:02.640 --> 00:19:06.640
you're talking about. Sometimes the documentation
will always have it will have it as

261
00:19:06.640 --> 00:19:11.720
well sometimes, but you can definitely
in most cases these days, find some

262
00:19:11.880 --> 00:19:19.000
original introduction of the technology where they
get into the why. For example,

263
00:19:19.039 --> 00:19:25.319
I just I had I released the
course a couple of years ago on HTML

264
00:19:25.359 --> 00:19:30.000
and CSS, and in the course
we go to the PhD thesis from one

265
00:19:30.039 --> 00:19:33.119
of the inventors of CSS where they
talk about why CSS works the way it

266
00:19:33.160 --> 00:19:38.079
does, and it's fantastic because it
gives you that the beginning of a good

267
00:19:38.160 --> 00:19:41.920
mental model, so that all the
things that a lot of developers find weird

268
00:19:41.960 --> 00:19:48.880
with CSS actually make a lot of
sense. Interestingly, we recently had an

269
00:19:48.920 --> 00:19:53.960
episode with the Rich Harris, the
creator of Swelt. Excellent episode, by

270
00:19:53.960 --> 00:19:59.440
the way, I think it was
one of our recent bests. And I

271
00:19:59.559 --> 00:20:06.680
brought that that I first met him
when he gave like the first introductory talk

272
00:20:07.480 --> 00:20:11.720
about SVELT. It was Felt three
when he just came out. It was

273
00:20:11.759 --> 00:20:15.160
coming out with Swelt three. It
was rethinking reactivity. He gave it in

274
00:20:15.200 --> 00:20:19.119
a conference I was attending, and
it's an amazing talk and if you want

275
00:20:19.160 --> 00:20:25.559
to understand like the why of SVELT, that was an awesome place to start.

276
00:20:25.640 --> 00:20:29.319
And indeed that you know, that
video has something like three hundred and

277
00:20:29.319 --> 00:20:33.960
fifty thousand views, and I highly
recommend it even today, even though they're

278
00:20:33.000 --> 00:20:37.480
now rethinking all of it with the
selt vive and ruins. And if you

279
00:20:37.519 --> 00:20:41.440
want to learn more about that,
you know, you can definitely listen to

280
00:20:41.440 --> 00:20:47.079
our podcast with him. But it's
a great approach what you're suggesting and there's

281
00:20:47.160 --> 00:20:52.559
also a similar talk about React with
the person who created React. I forget

282
00:20:52.640 --> 00:20:57.839
the name of the talk. It's
Jordan's they gave the talk, or was

283
00:20:57.880 --> 00:21:03.279
it somebody else? I forget,
and I'll need to check. But he

284
00:21:03.279 --> 00:21:10.640
he goes on afterwards to all to
start talking about what's that other program that

285
00:21:10.960 --> 00:21:15.759
programming language? Oh, my head
isn't working. Never mind, but I'll

286
00:21:15.759 --> 00:21:18.960
try to find it and post a
link if in what I do. But

287
00:21:18.960 --> 00:21:22.759
but I totally agree, and I
think it's a it's a great approach.

288
00:21:22.839 --> 00:21:26.680
And I've not you know, now
that you're you've said it, it seems

289
00:21:26.720 --> 00:21:30.359
to make so much sense to me. That's great. Yeah, And I

290
00:21:30.640 --> 00:21:36.680
love finding those things right because then
you you set yourself up because a mental

291
00:21:36.720 --> 00:21:40.440
model is built from the foundation up
what we're what we're doing a lot of

292
00:21:40.440 --> 00:21:44.799
times when we're learning via a PI
is we're trying to infer a mental model

293
00:21:44.880 --> 00:21:48.720
from like the leaves of this decision
tree where all the decisions are made on

294
00:21:48.839 --> 00:21:53.440
people designing this technology. But if
you can start at the roots, somebody

295
00:21:53.480 --> 00:21:57.200
had a problem and they were trying
to solve a problem, and if you

296
00:21:57.200 --> 00:22:00.680
can be there with them, if
you can be in the head of the

297
00:22:00.680 --> 00:22:06.279
people that invented these things. It's
going to make it so much easier to

298
00:22:06.359 --> 00:22:10.240
learn everything. So that's the first
tip. The second tip that I have

299
00:22:11.480 --> 00:22:17.319
is to be I like to call
it, be curious about how something works.

300
00:22:17.319 --> 00:22:21.960
And what that means is a few
things. If you're dealing with front

301
00:22:22.079 --> 00:22:26.279
end web technology, look at what's
being delivered in the network tab right,

302
00:22:26.359 --> 00:22:30.319
look at the things that you're actually
using, a lot of people just sit

303
00:22:30.400 --> 00:22:34.640
in these abstractions. But the problem
is, in order to be able to

304
00:22:34.759 --> 00:22:38.640
just sit in an abstraction, the
abstraction has to be perfectly contained with no

305
00:22:38.759 --> 00:22:42.240
leaks. There does not exist a
front end web technology that does not have

306
00:22:42.319 --> 00:22:48.079
streaky abstractionness going on. You always
have to understand the fundamentals. And I

307
00:22:48.079 --> 00:22:53.680
know you guys had a really great
episode on fundamentals. So my definition of

308
00:22:53.720 --> 00:23:00.519
fundamentals is one or two abstraction layers
below where you're working. So if you're

309
00:23:00.559 --> 00:23:04.079
sitting and react, a fundamental would
be the browser, APIs and JavaScript,

310
00:23:04.799 --> 00:23:12.519
right, those are fundamentals. So
if you can be curious and look at

311
00:23:12.599 --> 00:23:18.960
how are the fundamentals being used with
this technology, and that means, like

312
00:23:18.000 --> 00:23:22.799
I said, oh, looking at
what's in the browser tab, stepping through

313
00:23:22.880 --> 00:23:27.559
code beyond your own. That's a
great thing about JavaScript libraries and frameworks.

314
00:23:27.640 --> 00:23:32.359
You can actually step into them and
see what's going on, and not being

315
00:23:32.359 --> 00:23:36.279
afraid to read source code, which
that can be controversial, and I'm not

316
00:23:36.319 --> 00:23:40.240
saying you have to read every line
of source code for everything, but having

317
00:23:40.759 --> 00:23:45.200
a good model can be so useful. So I just released a sixteen and

318
00:23:45.200 --> 00:23:51.880
a half hour React course and in
it now we literally step through React source

319
00:23:51.880 --> 00:23:55.359
code. I read every line of
React eighteen to prep for this course.

320
00:23:56.440 --> 00:24:02.359
But it is so useful. It's
so incredibly power to start to get a

321
00:24:02.400 --> 00:24:06.039
mental model and to not see things
as just this thing that just happens in

322
00:24:06.079 --> 00:24:10.759
the ether, but as just other
people's code. And that's incredibly powerful.

323
00:24:11.000 --> 00:24:15.799
So for React and for any for
example, for any JavaScript framework, talking

324
00:24:15.799 --> 00:24:22.119
about connecting fundamentals to the substraction,
how do we figure out how a JavaScript

325
00:24:22.240 --> 00:24:26.200
framework works? What we know one
of the fundamental things that's doing is updating

326
00:24:26.240 --> 00:24:30.160
the dom. So you pull down
all the code because it's open source,

327
00:24:30.240 --> 00:24:33.519
right, it's free education. You
can pull down all the code for React

328
00:24:33.640 --> 00:24:37.000
or any other framework, and you
can do a search for something like a

329
00:24:37.039 --> 00:24:41.359
pen child, which is a DOM
browser API. You know, somewhere in

330
00:24:41.400 --> 00:24:47.920
the code wherever it's actually updating the
dom that is a pen child or insert

331
00:24:48.039 --> 00:24:49.920
or something else that's going to happen
to the dom. Find the spot where

332
00:24:49.920 --> 00:24:55.880
it's updating the dom, and then
look for where that functions being called,

333
00:24:56.319 --> 00:24:59.359
and then look for where that's functions
being called. And all of a sudden

334
00:24:59.359 --> 00:25:03.279
you're going to say, oh,
now I see how it's making these choices.

335
00:25:03.720 --> 00:25:07.279
It may be complicated, it may
not be like I'm going to read

336
00:25:07.279 --> 00:25:11.720
every line and immediately understand it,
but you can start to get a feel.

337
00:25:11.039 --> 00:25:15.359
One of the things I say in
the course is like the rules of

338
00:25:15.400 --> 00:25:18.640
hooks is a thing that people memorize
and react, well, I can't put

339
00:25:18.680 --> 00:25:22.799
it in a loop to do.
And sometimes something that one of you was

340
00:25:22.880 --> 00:25:26.640
mentioning where well, an expert might
tell you the answer, but say,

341
00:25:26.640 --> 00:25:29.559
well, that's just why it works. But often it's because they don't really

342
00:25:29.599 --> 00:25:32.240
understand it themselves. Fully, I
see a lot of people say, well,

343
00:25:32.279 --> 00:25:34.640
hooks are kind of a thing that
well, they can't be in a

344
00:25:34.680 --> 00:25:40.839
loop because they're kind of like a
raise or different things. If you go

345
00:25:40.880 --> 00:25:44.640
in the code. What you see
is that a hook is a series of

346
00:25:44.640 --> 00:25:48.119
hooks, is a link list sitting
on this JavaScript object called a fiber,

347
00:25:48.680 --> 00:25:52.880
And every time the function runs,
it's going down the link list and executing

348
00:25:52.079 --> 00:25:56.319
all of these hook functions. So
it has to be the same every time.

349
00:25:56.759 --> 00:26:00.319
It's just going down a link list. And I talk about it in

350
00:26:00.359 --> 00:26:03.200
the course, and we do,
you know, diagrams and things, But

351
00:26:03.359 --> 00:26:07.920
ultimately, when you have a precise
and accurate mental model, as opposed to

352
00:26:07.960 --> 00:26:14.480
a vague or inaccurate one, you
can infer the things that other people are

353
00:26:14.519 --> 00:26:18.799
memorizing. I can infer the rules
of hooks because I understand how it works.

354
00:26:18.799 --> 00:26:21.759
Oh, of course it works that
way. Of course I can't do

355
00:26:21.799 --> 00:26:25.160
that. You don't even have to
tell me that, because I understand how

356
00:26:25.720 --> 00:26:30.400
it works. I had another experience
recently. Versell, I think, updated

357
00:26:30.440 --> 00:26:36.000
their documentation based on a conversation I
had with them on Twitter where they had

358
00:26:36.039 --> 00:26:40.480
a verseell. You know React server
components come out and the idea is,

359
00:26:40.480 --> 00:26:42.440
oh, we're not going to send
JavaScript to the browser for the components that

360
00:26:42.440 --> 00:26:47.039
you run in a server. But
if you know how React works, you

361
00:26:47.160 --> 00:26:52.400
know that it's keeping two big trees, the DOM and this fiber tree in

362
00:26:52.559 --> 00:26:56.759
sync and they have to be complete
and match. So there's no way there's

363
00:26:56.799 --> 00:27:03.559
not some JavaScript going out server rendering
to fill out that tree that React needs

364
00:27:03.799 --> 00:27:07.440
in order to do its work.
As it turns out it is. It's

365
00:27:07.440 --> 00:27:11.160
called the RSC payload or the flight
data. And when you go to oursells

366
00:27:11.880 --> 00:27:17.279
like issues that people submit, there's
a bunch of people going, I have

367
00:27:17.519 --> 00:27:22.279
my all on my server rendered HTML
is doubled in all these script tags at

368
00:27:22.279 --> 00:27:26.400
the bottom. Can we turn that
off? And the answer is no,

369
00:27:26.559 --> 00:27:30.640
because that's how React works, right, It's but because you know how it

370
00:27:30.640 --> 00:27:33.920
works, you look at that and
go, yes, that is a cost

371
00:27:36.119 --> 00:27:41.440
of initially sending HTML because I need
to somehow put together the fiber tree.

372
00:27:41.079 --> 00:27:48.119
And so when we have that mental
model, we're also not surprised, right,

373
00:27:48.160 --> 00:27:51.920
we make better architectural decisions because now
we're not just going to go I'm

374
00:27:51.920 --> 00:27:55.400
going to switch to this new tech
because everybody says it's great. No,

375
00:27:55.480 --> 00:27:57.039
we're gonna say, well, how
does it work? What is it doing?

376
00:27:57.480 --> 00:28:03.599
Oh, I'm actually outputting a bunch
of big svgs and a very little

377
00:28:03.640 --> 00:28:08.559
JavaScript I'm using for that This may
actually be a bigger download size for my

378
00:28:08.799 --> 00:28:11.920
use case right as opposed to a
different use case where an RSU would be

379
00:28:11.960 --> 00:28:18.480
great. So again, so that's
like kind of two tips in one is

380
00:28:18.519 --> 00:28:22.519
to be curious, look at what's
going on. Take the time, and

381
00:28:22.559 --> 00:28:30.799
people will say I don't have time, but the muddling is also time and

382
00:28:30.160 --> 00:28:36.160
my and in my experience, the
time you invest in understanding will over you

383
00:28:36.160 --> 00:28:40.240
know, a period of time,
eventually you will make up that cost and

384
00:28:40.279 --> 00:28:44.640
then much greater because you will muddel
less. Hey check, just as a

385
00:28:44.680 --> 00:28:48.119
shout out, you're talking about reading
source code. We did an episode exactly

386
00:28:48.160 --> 00:28:51.319
on that. Yeah, not too
long after I started it, Episode four

387
00:28:51.359 --> 00:28:55.359
A Way to Reading source Code with
Carl Mangazi. Yeah that was an awesome

388
00:28:55.400 --> 00:28:59.359
episode. Yep, reading source code
and why and how and so on.

389
00:28:59.480 --> 00:29:02.880
So yeah, Carlo is great.
He was a host on React Roundup I

390
00:29:02.880 --> 00:29:07.759
think for a while a while he
was yep. Yeah, So Tony,

391
00:29:07.799 --> 00:29:10.559
I have a question for I wanted
to clarify something that you sort of skipped

392
00:29:10.599 --> 00:29:14.079
over early on when you were talking
about learning and you were talking about muddling

393
00:29:14.839 --> 00:29:19.039
and how you know, dev team
generally has one person that sort of can

394
00:29:19.079 --> 00:29:22.759
come along and look at it and
say, okay, this is a problem

395
00:29:22.799 --> 00:29:27.160
because they have that venture better model. There's a big gap between getting from

396
00:29:27.200 --> 00:29:30.319
here to hear and to be And
I guess what I'm curious to hear is

397
00:29:30.359 --> 00:29:38.440
your viewpoint on learning by doing and
failing. So you talk about muddling through

398
00:29:38.960 --> 00:29:41.799
and that sort of waste of time, and how generally you want to go

399
00:29:41.839 --> 00:29:45.559
back and understand. Ideally, in
a perfect world, you want to be

400
00:29:45.559 --> 00:29:48.799
able to understand how everything works.
So then when you understand that, you

401
00:29:48.839 --> 00:29:53.079
can infer what's going on. And
so I get that at the same time,

402
00:29:53.519 --> 00:29:57.359
based on my personal experience, and
I'm like many people, many Java

403
00:29:57.960 --> 00:30:02.680
script or devs of any type,
I learned by doing, you know,

404
00:30:02.920 --> 00:30:07.599
by getting in and mucking around with
something. And based on my experience,

405
00:30:07.880 --> 00:30:11.119
not just with coding, with the
fire servers, with any other thing I'm

406
00:30:11.119 --> 00:30:17.440
involved with doing something and failing will
imprint the right way to do and learning

407
00:30:17.440 --> 00:30:19.880
to do it right let me correct
that will imprint it on my brain and

408
00:30:19.920 --> 00:30:23.799
help me remember much more than doing
it right the first time. And so

409
00:30:26.079 --> 00:30:29.119
you know, people say practice makes
perfect. And my choir director in high

410
00:30:29.119 --> 00:30:33.200
school had a great sign that said
no perfect practice makes perfect because if you

411
00:30:33.240 --> 00:30:34.960
practice the wrong thing, then you're
going to end up doing the wrong thing

412
00:30:36.039 --> 00:30:38.680
later when it really counts. And
this is true in athletic competition when you

413
00:30:40.400 --> 00:30:42.599
don't have time to think about something, you just have to do. So

414
00:30:42.799 --> 00:30:48.759
I'm curious to see your viewpoint on
how that fits in where doing it and

415
00:30:48.799 --> 00:30:53.640
failing and doing it okay now it
works. It's like the famous quot that

416
00:30:53.960 --> 00:30:57.039
Edison said is you know I failed
four hundred and ninety nine times, but

417
00:30:57.079 --> 00:31:00.519
each time I didn't think I failed. I just learned one thing that didn't

418
00:31:00.519 --> 00:31:03.119
work. Right, you know it
doesn't work, and so then now you

419
00:31:03.240 --> 00:31:07.599
finally you know what does work.
So my point is doing in muddling does

420
00:31:07.640 --> 00:31:11.160
have its benefits. You know a
while ideally you would want to go back.

421
00:31:11.200 --> 00:31:15.400
And that's how I am is wanting
to know how everything works. A

422
00:31:15.440 --> 00:31:19.200
classic example that I've given force learning
the language. I'm a Spanish speaker and

423
00:31:19.319 --> 00:31:22.559
languages came really easily to me,
and if I had wanted to learn more

424
00:31:22.640 --> 00:31:26.839
languages, I could. But I
have seen there's two different way kinds of

425
00:31:26.880 --> 00:31:33.559
ways to learn a language. There
is the what people call conversational, and

426
00:31:33.599 --> 00:31:37.319
then there's the learning the verbs and
the nouns and the conjugations and the different

427
00:31:37.359 --> 00:31:41.680
tenses and all that kind of stuff, so you can learn a conversational learn.

428
00:31:41.720 --> 00:31:45.240
Okay, if I say this,
it really means this. I'm like,

429
00:31:45.920 --> 00:31:47.480
Okay, I want to know the
verbs. I want to know the

430
00:31:47.480 --> 00:31:48.640
adjuctives. I want to know the
pronouns, I want to know the conjugations.

431
00:31:48.680 --> 00:31:52.559
I want to know the tenses so
that I can easily put something together

432
00:31:52.720 --> 00:31:56.319
that's my but not everybody's that way. So I'm rambling. So hopefully all

433
00:31:56.319 --> 00:31:59.119
this makes sense. But I guess
I just want to get to the point

434
00:31:59.119 --> 00:32:02.240
of saying the muddling have benefits at
some point, and I'm to an extent.

435
00:32:02.279 --> 00:32:05.440
I'm going to say it's an extent. I'm curious to see what you

436
00:32:05.480 --> 00:32:07.960
think. No, I have one
agree. I'm a muddler, right,

437
00:32:08.000 --> 00:32:15.640
We're all muddlers at some point,
right with anything. And when I think

438
00:32:15.640 --> 00:32:20.599
of it as an iterative process,
you have a degree of understanding, hopefully

439
00:32:20.599 --> 00:32:23.359
from the why and the win.
And then you start to muddle, right,

440
00:32:23.400 --> 00:32:28.640
maybe imitate somebody else's code, you
start to work through it yourself.

441
00:32:28.799 --> 00:32:34.119
You come across something you do it
wrong. The issue, I think is

442
00:32:35.000 --> 00:32:40.440
the feedback loop being accurate. During
the muddling. It is possible to reinforce

443
00:32:42.000 --> 00:32:46.400
an inaccurate mental model because it's possible
for you to do something that you think

444
00:32:46.480 --> 00:32:52.480
works for reason X it actually works
for reason why. But it worked,

445
00:32:52.559 --> 00:32:54.839
so you just say, see,
my mental model was correct, but it's

446
00:32:54.839 --> 00:32:58.319
actually not. So that's I think
is a little bit of the danger.

447
00:32:59.519 --> 00:33:04.559
So oftentimes in real world right,
in a real world scenario, you're just

448
00:33:04.599 --> 00:33:07.200
trying to get it to work because
you have a job to do, so

449
00:33:07.240 --> 00:33:10.279
you do have to get it.
You have to get it working. And

450
00:33:10.400 --> 00:33:15.440
if you get it working without fully
understanding why it's working, it's not the

451
00:33:15.480 --> 00:33:20.480
most comfortable foundation to sit on as
a developer. Right. I don't know

452
00:33:20.480 --> 00:33:23.680
why this is working, but it
is. We've all been there, probably

453
00:33:23.759 --> 00:33:29.640
right at some point in our in
our lives. But we're also can be

454
00:33:29.720 --> 00:33:34.039
under under different pressures, right,
business pressures, work pressure, client pressure.

455
00:33:34.920 --> 00:33:39.119
So what I like to say is
win a team or you as an

456
00:33:39.160 --> 00:33:45.400
individual, get something working, and
you have that moment where you do a

457
00:33:45.440 --> 00:33:49.960
retrospective on a problem or on something
that you're working on, even if it's

458
00:33:50.000 --> 00:33:55.079
just you by yourself, try to
see if you can plug in what just

459
00:33:55.240 --> 00:34:02.440
happened back into your mental model,
and then the failure will have its maximum

460
00:34:02.480 --> 00:34:09.360
benefits. Like for example, I'm
thinking like, I'm going to go way

461
00:34:09.400 --> 00:34:12.880
way back, Like one of the
earliest examples I ever had of this in

462
00:34:12.920 --> 00:34:19.679
my personal development career, I'm going
back to asp dot net. That's how

463
00:34:19.679 --> 00:34:24.840
far that's how far back we're going. So asp dot net would keep your

464
00:34:24.920 --> 00:34:29.320
form data in the form after you
submitted, even though it was a page

465
00:34:29.400 --> 00:34:32.800
refresh, right. A lot of
people didn't care how that worked, But

466
00:34:32.840 --> 00:34:37.719
what it actually would do is was
a big hidden variable, a hidden input

467
00:34:37.920 --> 00:34:40.840
in the form that encoded all of
your form data so that it could pull

468
00:34:40.840 --> 00:34:45.159
it back up again on the refresh. But if you did a form get

469
00:34:45.559 --> 00:34:49.719
instead of a post, it would
go up in the URL and you could

470
00:34:49.719 --> 00:34:53.480
actually get a URL that was longer
than was allowed by the browser. And

471
00:34:53.519 --> 00:34:59.519
then when it went to de serialize
that data, everything explodes. That's one

472
00:34:59.519 --> 00:35:04.519
of those things for you had to
figure it out. Right, you're doing,

473
00:35:04.559 --> 00:35:07.599
why isn't this form working? This
giant form that we're building for this

474
00:35:07.639 --> 00:35:13.280
government business, and you look at
all this reasons. And then when we

475
00:35:13.320 --> 00:35:16.800
finally realized it was the browser.
For me, that was like a fundamental

476
00:35:16.800 --> 00:35:22.199
moment in my DEAV history where it's
like, Okay, I muddled through,

477
00:35:22.559 --> 00:35:24.760
we figured it out, but now
I need to plug back into my mental

478
00:35:24.760 --> 00:35:30.320
model. This isn't some amazing Oh
the form, the data just stays there,

479
00:35:30.719 --> 00:35:36.480
no somebody coded so that all that
form data gets stuffed into an hidden

480
00:35:36.480 --> 00:35:40.039
input. And then now you got
to think about your fundamentals. Now you've

481
00:35:40.000 --> 00:35:44.639
got to move an abstraction layer below
to see what happens. So now my

482
00:35:44.719 --> 00:35:46.599
mental model is whenever I'm using it
was using, you know, building a

483
00:35:46.679 --> 00:35:52.920
form, is that that form construction
process is also has this other piece to

484
00:35:52.000 --> 00:35:55.760
it that I have to think about. And from that point on, I

485
00:35:55.760 --> 00:36:04.719
think that really influenced how I dealt
with the after effects of the muddeling.

486
00:36:05.559 --> 00:36:08.800
Right, is what am I learning
from the muddeling? Is there an abstraction

487
00:36:08.920 --> 00:36:13.639
layer below that I can now clarify
in my head, Oh, this is

488
00:36:13.679 --> 00:36:16.679
how this is working, and then
I have to model less the next time.

489
00:36:17.199 --> 00:36:22.679
One thing that I'm a bit concerned
about in the context of this smuddling

490
00:36:22.280 --> 00:36:28.199
and getting something that works and leaving
it as kind of as is and just

491
00:36:28.360 --> 00:36:34.480
moving on. Is the impact that
AI is having and might have, where

492
00:36:34.519 --> 00:36:40.599
people are using AI to generate some
code, get it to work, and

493
00:36:40.639 --> 00:36:46.159
then just move on without really necessarily
understanding, you know, the code that

494
00:36:46.199 --> 00:36:52.440
AI wrote for them. Yeah.
I think that's a major problem. People

495
00:36:52.440 --> 00:36:53.400
have asked me. You know,
as a tech educator, people ask you,

496
00:36:53.440 --> 00:36:58.800
should I still be learning the code
because of AI? And my statement

497
00:36:58.880 --> 00:37:04.239
is, now you actually need to
understand the code because you're going to have

498
00:37:04.280 --> 00:37:07.880
an AI generate it for you.
Somebody's still going to have to figure out

499
00:37:07.920 --> 00:37:09.880
why it doesn't work. And sure
AIS will get better at debugging over time,

500
00:37:09.880 --> 00:37:13.519
but there's always going to be something
novel that the AI doesn't know about,

501
00:37:13.519 --> 00:37:16.079
whether it's a new framework or a
new technology, those things take time.

502
00:37:16.280 --> 00:37:22.880
Current ais don't reason, They just
predict based on previous code, right.

503
00:37:22.360 --> 00:37:30.480
So really the danger the dev that's
in the most danger I think in

504
00:37:30.519 --> 00:37:35.800
the AI age is the dev who
just copy paste code without understanding it and

505
00:37:37.280 --> 00:37:39.239
learning a tech so that you understand
what's happening under the hood, so that

506
00:37:39.280 --> 00:37:42.559
you understand how it works. I
have a phrase that I've used for ten

507
00:37:42.639 --> 00:37:50.039
years, don't imitate understand, which
is, don't just follow along, understand

508
00:37:50.039 --> 00:37:53.599
what's happening as you follow along.
It's okay to learn by doing, but

509
00:37:53.760 --> 00:38:00.000
actually learn why you're doing right,
as opposed to I give the GPS six

510
00:38:00.000 --> 00:38:04.119
sample again, if I GPS my
way to five different locations in the city,

511
00:38:04.360 --> 00:38:09.880
I now have a broader level of
knowledge, more APIs, but I

512
00:38:09.960 --> 00:38:15.480
still don't have deep understanding, right, I have a vague mental model.

513
00:38:15.000 --> 00:38:22.639
And so it is possible to just
keep on adding GPS routes to your experience

514
00:38:22.679 --> 00:38:27.159
in the city and never learn the
city, and you know, get away

515
00:38:27.159 --> 00:38:30.480
with it. You know, you
do okay, but you're going to run

516
00:38:30.519 --> 00:38:36.519
across less dead ends and less turning
around and less stress and getting to where

517
00:38:36.559 --> 00:38:39.119
you need to on time if you
just learned how the city was laid out.

518
00:38:39.519 --> 00:38:45.440
That makes sense. To expand the
illustration, yes, it certainly does,

519
00:38:45.000 --> 00:38:52.159
and to kind of exasperate this issue, a lot of web technologies,

520
00:38:52.679 --> 00:38:57.079
first of all, the core fundamental
web technologies and a lot of the stuff

521
00:38:57.079 --> 00:39:00.320
built on top of them, like
frameworks, are actually really forgiving. So

522
00:39:00.360 --> 00:39:05.239
for example, if you take if
you look at React and you know,

523
00:39:05.320 --> 00:39:08.239
I review a lot of React code
and I see, you know, and

524
00:39:08.280 --> 00:39:12.880
I always look at it from a
perspective of performance, and I see,

525
00:39:12.880 --> 00:39:16.960
for example, a lot of re
renderings going on. Now, re renderings

526
00:39:17.320 --> 00:39:22.480
you usually still end up with the
correct rendering that you want to achieve,

527
00:39:22.559 --> 00:39:27.840
And that's what the developer is looking
for. Did I is my end state

528
00:39:28.440 --> 00:39:31.679
the one that I wanted to get
to? But they're going through so many

529
00:39:31.760 --> 00:39:37.119
renderings in order to get there,
and a lot of these are you know,

530
00:39:37.480 --> 00:39:43.280
could have been avoided given a better
understanding of how React works and how

531
00:39:43.400 --> 00:39:49.119
and when and how it updates stuff. Yeah, I've just been talking about

532
00:39:49.119 --> 00:39:53.440
this a lot, and it React, I think, because of its nature,

533
00:39:54.239 --> 00:40:00.320
actually requires you to understand how it
works to use it well, build

534
00:40:00.360 --> 00:40:08.119
performance applications, to avoid footguns.
There's not a ton of a I like

535
00:40:08.199 --> 00:40:14.400
to say, do and put this
the right way. I like to say,

536
00:40:14.400 --> 00:40:16.719
make it hard to do the wrong
thing and easy to do the right

537
00:40:16.760 --> 00:40:22.199
thing right. If you're building an
abstraction falling into the pit of success,

538
00:40:22.440 --> 00:40:27.400
that's another way to put it.
Yeah, React React, as popular at

539
00:40:27.480 --> 00:40:31.199
is as it is, is not
great at that right. You really do

540
00:40:31.280 --> 00:40:37.239
need to understand how it works in
order to be performant. What it is

541
00:40:37.280 --> 00:40:40.800
good at is you can just get
something working right, which is two different

542
00:40:40.840 --> 00:40:45.800
things. So the degree and I
think that's pretty true with all of these

543
00:40:45.840 --> 00:40:52.599
abstractions that we live in as web
developers is we just add abstraction layer,

544
00:40:52.639 --> 00:40:57.719
constraction layer on top of HTML,
HGCP, CSS, JavaScript, browser,

545
00:40:57.760 --> 00:41:02.000
APIs, and SQL. Those are
that's our bottom line. Everything else,

546
00:41:02.199 --> 00:41:06.559
for the most part, is just
layers of abstraction on top of it.

547
00:41:06.679 --> 00:41:10.960
We're rarely introducing a new ability or
we're introducing is somebody else's code that uses

548
00:41:12.000 --> 00:41:17.679
those baselines to do something. So
getting your fundamentals really strong is also going

549
00:41:17.719 --> 00:41:22.639
to enable that. So when you
look at React and you look at rerenders,

550
00:41:23.639 --> 00:41:28.960
that's really connected to pure functions in
a lot of ways, right often

551
00:41:29.119 --> 00:41:36.440
oftentimes, and it also is connected
to understanding objects and passing by reference.

552
00:41:37.400 --> 00:41:43.719
Right, it's understanding shallow versus deep
equality. And if you have those fundamentals,

553
00:41:43.719 --> 00:41:49.519
then then you can explain how to
avoid rerenders. In the context of

554
00:41:49.559 --> 00:41:52.280
the fundamentals. You can actually go
look and React source code to me,

555
00:41:52.400 --> 00:41:55.159
and I went and did this,
and you can find where it shallow compares

556
00:41:55.199 --> 00:41:59.280
props, and you can say oh, there it is. And if the

557
00:41:59.280 --> 00:42:04.639
shallow compares is equal, then it
doesn't do this other work again. And

558
00:42:04.679 --> 00:42:08.719
now your mental model makes it so
much easier to remember how to do these

559
00:42:08.719 --> 00:42:12.639
things. And that's maybe the other
piece of the puzzle when it comes to

560
00:42:12.719 --> 00:42:17.800
muddling versus understanding, When you don't
have something to connect to in your mental

561
00:42:17.840 --> 00:42:23.440
model, I find that it's easier
to forget a point. Don't do this.

562
00:42:23.599 --> 00:42:29.039
Do that. We're not good at
memorization as humans, right, as

563
00:42:29.119 --> 00:42:37.440
people, we prefer recall versus reminder. Right, So recall is just like,

564
00:42:37.559 --> 00:42:42.079
oh, I remember this thing,
but reminder is, oh, this

565
00:42:42.199 --> 00:42:45.559
thing connects my brain to this other
thing, and now I remember, like

566
00:42:45.599 --> 00:42:47.760
you tie a piece of string to
your finger, and now it's a reminder.

567
00:42:49.559 --> 00:42:54.400
When you have the fundamentals, those
become reminders on top of the abstraction

568
00:42:54.519 --> 00:43:00.119
layer. Whereas if you're not connecting
back to your mental model, then and

569
00:43:00.719 --> 00:43:04.880
you end up just trying to remember
everything and that's actually really hard. So

570
00:43:04.920 --> 00:43:08.920
what I say is, as far
as a tip is how do you even

571
00:43:08.960 --> 00:43:13.840
do this? Another tip is find
the blogs of people who are building the

572
00:43:13.880 --> 00:43:20.320
thing that you're using. You can
often find somebody that is explaining it,

573
00:43:20.960 --> 00:43:23.159
that's writing a blog post, and
sometimes you'll find that blog post has like

574
00:43:23.360 --> 00:43:27.920
ten hits, like people aren't really
reading it. It's just somebody that's just

575
00:43:27.960 --> 00:43:29.760
working on it and they're like,
hey, we did this cool thing.

576
00:43:30.440 --> 00:43:35.199
Go to the re repo, find
the major contributors, and then go find

577
00:43:35.239 --> 00:43:39.079
them online and see if they're talking
about it. You can find treasure tros

578
00:43:39.159 --> 00:43:43.320
and inside the source code. I
mean I found this inside React eighteen.

579
00:43:43.880 --> 00:43:49.239
Sometimes you can find nice large comment
sections where people are explaining themselves because these

580
00:43:49.280 --> 00:43:52.559
are just people writing code, right, So sometimes even the comments and the

581
00:43:52.599 --> 00:43:57.320
source code of the thing you're using
can be clarified. So that's another way

582
00:43:57.360 --> 00:44:04.519
to An interesting way that I use
to try to test my understanding of a

583
00:44:04.639 --> 00:44:10.199
topic is to see if I if
I can explain it, if it and

584
00:44:10.320 --> 00:44:15.599
without going into handwaving you know stuff, you know, can can I you

585
00:44:15.639 --> 00:44:21.519
know, if if somebody were to
ask me why does something work a certain

586
00:44:21.559 --> 00:44:27.000
way? Am I able to actually
provide a good enough answer and answer that

587
00:44:27.039 --> 00:44:31.480
I'm okay with? If I can't
that, I cannot really say that I

588
00:44:31.599 --> 00:44:38.840
understand that topic. Yeah, you
understand you And not everybody is a has

589
00:44:38.880 --> 00:44:45.079
experienced teaching, right, So there's
teaching techniques is one thing, but can

590
00:44:45.119 --> 00:44:47.400
you teach it from a standpoint of
not just what to do, which I

591
00:44:47.400 --> 00:44:52.559
think Steve had mentioned. There's not
a person that comes along just is because

592
00:44:52.559 --> 00:44:54.320
it works the way it works,
But can you say this is why it

593
00:44:54.360 --> 00:44:59.960
works that way? Then you actually
do. And the handwaving is really interest

594
00:45:00.719 --> 00:45:05.639
because I see this all the time
where somebody at a conference told me something,

595
00:45:06.280 --> 00:45:07.599
or I saw something in a YouTube
video, and I think it kind

596
00:45:07.599 --> 00:45:10.760
of works this way. But you
can tell when it's vague. Now,

597
00:45:10.800 --> 00:45:15.320
you can tell when whether somebody really
understands it or doesn't. And that's not

598
00:45:15.360 --> 00:45:20.400
a knock against anybody. We learn
over time, right, somebody introduces an

599
00:45:20.400 --> 00:45:22.079
idea to us and they think,
Okay, I've got this kind of vague

600
00:45:22.119 --> 00:45:25.760
notion, now, that's cool,
and then over time we get deeper and

601
00:45:25.800 --> 00:45:30.920
deeper. That's just iterative nature.
It's not bad right to have a vague

602
00:45:30.960 --> 00:45:37.199
notion. It's just that our goal
is to have a more precise notion and

603
00:45:37.280 --> 00:45:43.840
to be aware of the fact that
your current level of understanding is vague.

604
00:45:43.880 --> 00:45:49.320
Now you might decide for a particular
topic that's good enough for now. Obviously

605
00:45:49.360 --> 00:45:53.360
I can't know everything, and I
do need to prioritize my time and effort.

606
00:45:53.920 --> 00:45:59.320
So maybe it's okay for me to
just have a vague understanding of a

607
00:45:59.400 --> 00:46:01.840
specific you know, Let's say it's
a framework that I'm not currently using,

608
00:46:02.320 --> 00:46:07.159
so I want to understand its benefits, maybe like gabble with it a little

609
00:46:07.159 --> 00:46:10.880
bit, but I'm not going to
invest any significant effort in it. But

610
00:46:12.039 --> 00:46:15.039
if I'm going to say this is
something that I'm going to be using regularly

611
00:46:15.079 --> 00:46:20.760
at work, and this is a
core, you know, aspect of my

612
00:46:20.920 --> 00:46:25.360
job description, then I'm going to
delve into that. I'm really going to

613
00:46:25.440 --> 00:46:30.360
try to get a good understanding and
a lot. Again, it works for

614
00:46:30.440 --> 00:46:35.280
me because I actually kind of am
an extrovert. I like to talk.

615
00:46:35.360 --> 00:46:42.519
I will often actually just schedule internal
talks within my company even to explain a

616
00:46:42.599 --> 00:46:47.960
concept to the other developers, and
you know, getting there requires me to

617
00:46:49.039 --> 00:46:53.559
become proficient in that particular topic.
Yeah, one hundred percent agreed. And

618
00:46:53.639 --> 00:47:00.000
I think that that distinction between I
need this from a moment and I'm going

619
00:47:00.039 --> 00:47:06.280
to use this more often is also
a good way of determining how deep do

620
00:47:06.320 --> 00:47:12.119
I need to go. If you're
going to learn a new framework and you're

621
00:47:12.159 --> 00:47:15.559
going to build an application with it, then you want to go deeper.

622
00:47:15.000 --> 00:47:21.159
You know, if you NPM install
some little library that does something that you

623
00:47:21.199 --> 00:47:24.880
know has many many downloads and everybody
knows works and is fairly innocuous, then

624
00:47:24.880 --> 00:47:30.159
maybe you don't have to go that
deep. Right It's we're all limited on

625
00:47:30.199 --> 00:47:34.760
our time and our energy. So
sometimes people hear this kind of discussion,

626
00:47:35.079 --> 00:47:37.679
and I find people pushback. It's
like, I don't have time now,

627
00:47:37.840 --> 00:47:39.599
I don't have time for all this. And again I say, well,

628
00:47:39.639 --> 00:47:43.679
how much time are youre going to
be spending in this thing? And that

629
00:47:43.719 --> 00:47:46.840
means how much time you're going to
be muddling through or struggling with a problem.

630
00:47:47.880 --> 00:47:52.239
Then you're pulling from the future.
There's another way to call it.

631
00:47:53.039 --> 00:47:58.840
You can buy that time from the
future right now and help yourself in the

632
00:47:58.880 --> 00:48:01.880
future. And that doesn't mean not
going to make mistakes, fail run across

633
00:48:01.920 --> 00:48:07.360
problems. All it means is that
as you iterate on that, you find

634
00:48:07.360 --> 00:48:12.760
a problem that challenges your assumptions.
We all make decisions on assumptions, and

635
00:48:12.880 --> 00:48:15.800
I think I know how this works. I have a set of assumptions in

636
00:48:15.800 --> 00:48:19.239
my head and I make a choice. So we come across something that challenges

637
00:48:19.280 --> 00:48:22.559
our assumption with the tech, Well, there you go. There is the

638
00:48:22.599 --> 00:48:25.639
whole in your mental model. You
just found it. So now we're going

639
00:48:25.719 --> 00:48:29.760
to go try to fill it in
at the sources that we can, whether

640
00:48:29.760 --> 00:48:34.079
it's stepping through code or finding somebody
online. In some cases, you can

641
00:48:34.119 --> 00:48:37.519
go to a discord and people that
are working on this tech are available to

642
00:48:37.519 --> 00:48:42.239
answer questions, which is amazing,
right, so you can or or some

643
00:48:42.360 --> 00:48:46.679
other place like Facebook or Reddit or
something like that. So I think it's

644
00:48:46.840 --> 00:48:52.679
it's also important to note that we're
not alone in the endeavor. There are

645
00:48:52.679 --> 00:48:58.920
other people out there who can also
help us to understand. I just want

646
00:48:58.960 --> 00:49:01.960
to chime in because I think there's
another reason to be doing what you're talking

647
00:49:01.960 --> 00:49:06.599
about me and being proactive and picking
up this other stuff, and that is

648
00:49:06.639 --> 00:49:13.639
that. In fact, there's a
comment on YouTube from Alri and he says,

649
00:49:13.639 --> 00:49:16.920
no one has the patience anymore though
they want now. But the point

650
00:49:17.039 --> 00:49:22.079
here is is it's for me,
Like what motivates me is not the Well,

651
00:49:22.119 --> 00:49:25.719
if I learned this now, then
I'm gonna have built up all of

652
00:49:25.760 --> 00:49:30.719
the building blocks, right, or
I've got kind of the what framework fitness,

653
00:49:30.960 --> 00:49:34.039
you know, because I'm in a
running and stuff, right, and

654
00:49:34.079 --> 00:49:37.239
so I'm thinking I've built up the
stamina and the skills, and right,

655
00:49:37.280 --> 00:49:42.039
I know how to make it through
a long distance run. For me,

656
00:49:42.119 --> 00:49:45.400
it's also part of the reason why
I go out to run or do whatever

657
00:49:45.400 --> 00:49:50.119
else I'm doing, is that there's
a certain aspect of the kind of person

658
00:49:50.119 --> 00:49:52.880
I want to be. There's a
certain aspect to the kind of discipline that

659
00:49:52.920 --> 00:49:57.920
I want to have, and this
is just another manifestation of that for me.

660
00:49:58.239 --> 00:50:01.199
Right. So it's yeah, it's
good that I can you know,

661
00:50:01.320 --> 00:50:06.079
I can get in there and I
can muscle through a program problem and that

662
00:50:06.199 --> 00:50:08.320
I know how to handle oh gosh, I have a blister on my foot

663
00:50:08.360 --> 00:50:15.719
or a figurative programming blister in my
code. Right. But there's the other

664
00:50:15.760 --> 00:50:19.360
part of it that's just I want
to be excellent at what I do and

665
00:50:19.639 --> 00:50:22.239
this is just table stakes for that. Right. I want to be just

666
00:50:22.400 --> 00:50:25.840
the top notch developer. I can
be a top end dev if you will,

667
00:50:27.400 --> 00:50:31.480
and so aha, right, this
is part of that, and this

668
00:50:31.679 --> 00:50:36.320
is part of that philosophy for me, is just Okay, you know what,

669
00:50:36.320 --> 00:50:37.559
I'm going to get in and understand
it. Now. Am I ever

670
00:50:37.599 --> 00:50:40.840
going to have to dig into this
code and write something against it? Probably

671
00:50:40.840 --> 00:50:45.760
not, But like you're saying,
it does help me understand what's going on,

672
00:50:45.920 --> 00:50:49.960
and that ups my game and it
helps me become the kind of programmer

673
00:50:50.000 --> 00:50:52.800
and manifest the kind of person I
want to be. That's such an interesting

674
00:50:52.840 --> 00:50:58.320
statement. And I I've had plenty
of students over these years, and so

675
00:50:58.360 --> 00:51:01.119
now you get into kind of a
human issue. We all are going to

676
00:51:01.159 --> 00:51:05.280
fail and muddle and muscle through.
You know, nothing against that at all.

677
00:51:05.519 --> 00:51:10.679
Nothing is a necessary part, and
it's valuable. I do find that

678
00:51:10.920 --> 00:51:17.119
sometimes a person's willingness to dig in
actually has to do with their self view

679
00:51:17.159 --> 00:51:21.159
as a developer, kind of like
I do a lot of done a lot

680
00:51:21.199 --> 00:51:24.719
of tutoring of kids in math over
the years, and you have kids who

681
00:51:24.760 --> 00:51:29.000
just say, I'm bad at math. That's my saying. It drives me

682
00:51:29.039 --> 00:51:31.000
crazy. Yeah, and it's and
when you go and look and help them,

683
00:51:31.000 --> 00:51:35.599
you realize the book is terrible.
Uh huh, right, it's it's

684
00:51:35.679 --> 00:51:39.119
it's not teaching them well, but
they instead make it a problem with themselves

685
00:51:39.960 --> 00:51:45.800
and I think that out there in
my experience, there are devs who got

686
00:51:45.840 --> 00:51:49.760
themselves a job. No, maybe
they have some imposter syndrome, and they

687
00:51:49.840 --> 00:51:53.199
see themselves as this is how I
have to do it, because I'm not

688
00:51:53.320 --> 00:51:59.480
capable of understanding any deeper than this, right. And my statement is the

689
00:51:59.480 --> 00:52:01.599
same as those kids who say they're
bad at math. You've just been taught

690
00:52:01.920 --> 00:52:07.239
poorly. It's not few. That's
the message I just often give to my

691
00:52:07.280 --> 00:52:15.840
students in that as instructors of technology, we often suffer from something called the

692
00:52:15.880 --> 00:52:19.800
curse of knowledge, which is a
user experience design concept that once you know

693
00:52:19.880 --> 00:52:22.039
something, it's very hard to remember
what it's like not to know that thing.

694
00:52:22.400 --> 00:52:28.719
Yep. So you may have people
at your job online and they're talking

695
00:52:28.719 --> 00:52:32.599
to you and they're using words that
sound big and complicated, and they're not,

696
00:52:34.039 --> 00:52:37.960
but you just don't know the vocabulary, and so now they're lost in

697
00:52:37.000 --> 00:52:39.239
the conversation. So I have this
thing in my courses for years, but

698
00:52:39.280 --> 00:52:43.119
I call it the big word alert, where as soon as we hit a

699
00:52:43.159 --> 00:52:46.280
phrase that you may not know,
we stop and we explain it and then

700
00:52:46.320 --> 00:52:52.760
we move on. Because you're totally
capable of understanding this vocabulary is not intelligence,

701
00:52:53.039 --> 00:53:00.760
right, It's just vocabulary. So
we as developed are often taught poorly

702
00:53:00.840 --> 00:53:07.679
because teaching is a whole different skill
than coding. So you may feel like

703
00:53:07.719 --> 00:53:13.960
you're incapable of understanding at a deeper
level. But if you start to approach

704
00:53:14.079 --> 00:53:20.159
it little by little from building your
mental model and you work on your fundamentals,

705
00:53:20.840 --> 00:53:23.880
then the better your fundamentals are,
the better you can read source code,

706
00:53:24.239 --> 00:53:28.840
the better you can step through code
and understand what's going on, and

707
00:53:28.880 --> 00:53:31.360
you'll start to develop self confidence.
And that's what I've seen happen with people

708
00:53:32.039 --> 00:53:35.400
is that they're like, you know
what, I feel like I can understand

709
00:53:35.400 --> 00:53:37.960
this, and I've started digging around
in source code and I saw this,

710
00:53:38.000 --> 00:53:40.360
and I saw this technique I never
knew you could do in JavaScript, and

711
00:53:40.400 --> 00:53:45.559
so I started doing it myself.
That I love that because that is the

712
00:53:45.639 --> 00:53:51.679
kid who says he's bad at math
realizing in an hour explained a different way

713
00:53:52.000 --> 00:53:53.800
that he can actually get it.
And I think that there's a lot of

714
00:53:53.800 --> 00:53:59.079
devs out there that looking for that
experience. Well, and to your point,

715
00:53:59.280 --> 00:54:00.880
I mean, this is what I've
gone through with my son with his

716
00:54:00.920 --> 00:54:04.639
math classes, right, is he'll
be like, I just don't get it.

717
00:54:04.719 --> 00:54:07.000
The teacher didn't explain it, right, blah blah blah blah blah.

718
00:54:07.079 --> 00:54:08.480
Right, And so we'll sit down
and we'll work through a few problems,

719
00:54:08.559 --> 00:54:13.960
right, because I happen to be
very good at math, right, and

720
00:54:14.039 --> 00:54:16.360
so you know, or at least
I have confidence. And I mean I

721
00:54:16.400 --> 00:54:20.679
did the math competitions in high school
and you know all of that stuff.

722
00:54:21.000 --> 00:54:23.239
I have a degree in computer engineering, and so I had to take the

723
00:54:23.239 --> 00:54:27.360
advanced math classes. So I don't
know if good at math is so much

724
00:54:27.400 --> 00:54:29.920
as that I've just done a lot
of it, and so I see the

725
00:54:29.920 --> 00:54:31.880
patterns, right, But whatever the
case is, right, and so we

726
00:54:31.920 --> 00:54:35.360
work through a few of them.
Well, this isn't how my teacher told

727
00:54:35.400 --> 00:54:37.719
me to do it. But does
it make sense to you? Why?

728
00:54:37.800 --> 00:54:40.159
Yes, yes it does. Okay, Well, do three or four more

729
00:54:40.159 --> 00:54:44.199
of these, and then come back
to me with where you get stuck on

730
00:54:44.239 --> 00:54:46.159
any of them, And inevitably on
the three or four of them. He

731
00:54:46.239 --> 00:54:50.519
works out two or three of them, and the last one has some little

732
00:54:50.599 --> 00:54:52.960
niggelely trick to it that is like, Okay, you've got to think about

733
00:54:52.960 --> 00:54:55.800
this in this way. And then
the light comes on again and you go

734
00:54:55.840 --> 00:55:00.800
through the same process in a smaller
way. Yeah, and I've had the

735
00:55:00.800 --> 00:55:05.400
exact same experience, and I think
the difference is memorizing, right because the

736
00:55:05.440 --> 00:55:09.000
class and the math class will say, use this formula, and then they're

737
00:55:09.000 --> 00:55:15.000
given a novel problem right where it's
not very clear how to use the formula.

738
00:55:15.400 --> 00:55:16.960
But when you go backwards and go, well, actually, this formula

739
00:55:17.000 --> 00:55:22.599
represents this triangle. Let's draw the
triangle, or this formula represents this happening

740
00:55:22.599 --> 00:55:25.639
on the number line. Oh,
that's what that means. And then now

741
00:55:25.639 --> 00:55:31.599
there's a mental model to rely on
to lean on when dealing with novel circumstances.

742
00:55:31.599 --> 00:55:36.599
And I think it's one to one
with development. But and here's kind

743
00:55:36.599 --> 00:55:42.039
of the thing with development, to
an extent, it's always a novel circumstance.

744
00:55:42.199 --> 00:55:46.400
You're not solving a textbook problem where
there's a textbook solution. You know,

745
00:55:46.519 --> 00:55:52.199
the whole point is you're creating new
software where that software did not exist

746
00:55:52.239 --> 00:55:55.760
before. Now, you know,
obviously we're creating a lot of similar solutions.

747
00:55:57.159 --> 00:56:00.199
You know, frameworks exist because there's
such a huge overlap between the products

748
00:56:00.239 --> 00:56:06.119
and design patterns exactly. But still
at the end of the day, there

749
00:56:06.239 --> 00:56:10.519
is something unique about what you're building
compared to every other program that's ever been

750
00:56:10.559 --> 00:56:15.480
written. You know, it might
just be the color of the UI,

751
00:56:15.559 --> 00:56:21.320
but it's still unique. So that
I think is a really key aspect.

752
00:56:21.360 --> 00:56:28.320
And Henry just made another interesting aspect. He said that devs are also asking

753
00:56:28.400 --> 00:56:34.280
to learn only what they need to
get a job. Nothing, nothing more,

754
00:56:34.360 --> 00:56:38.880
nothing counciliary. So and to be
honest, to some extent, I

755
00:56:38.920 --> 00:56:43.119
really can't blame them. I mean, if you're a junior looking to find

756
00:56:43.159 --> 00:56:49.320
a job and there's just so much
to learn, you know, it's kind

757
00:56:49.360 --> 00:56:52.000
of you know, it's easier for
us than extent the senior. We've seen

758
00:56:52.079 --> 00:56:57.760
it all, but you're just coming
into the field, and so many devs

759
00:56:57.800 --> 00:57:00.199
have so little experience, you know, like I don't know, like the

760
00:57:00.280 --> 00:57:05.360
median experience is like what two three
years? So, you know, how

761
00:57:05.400 --> 00:57:08.599
do you deal with the quantity?
How do you prioritize? Yeah, that's

762
00:57:08.599 --> 00:57:15.280
a great question. And I thought
about this one before this, uh this

763
00:57:15.400 --> 00:57:20.760
recording, and I think it I
think that really is a practical question.

764
00:57:21.960 --> 00:57:28.000
If you do not prioritize based on
social media, please, because social media

765
00:57:28.440 --> 00:57:36.119
a thank you thank you. Yeah, where is it on the hype cycle.

766
00:57:36.239 --> 00:57:38.960
It's right at the top. Go
for it, Yeah, exactly.

767
00:57:39.119 --> 00:57:43.639
So the funny thing is, if
you're on social media, you will be

768
00:57:43.719 --> 00:57:46.920
led to believe that all one dev
jobs is building new stuff on the latest

769
00:57:46.960 --> 00:57:51.719
and greatest thing. If you've actually
been a developer for any good period of

770
00:57:51.719 --> 00:57:53.880
time, you'll realize that a good
portion of your job or jobs out there

771
00:57:53.920 --> 00:57:58.719
is maintenance of things that already exist. I have a course. My first

772
00:57:58.800 --> 00:58:04.199
course I ever made was on a
JS, not Angular Angular JS. Do

773
00:58:04.239 --> 00:58:07.760
you know that course is still popular? Why is that course still popular?

774
00:58:07.039 --> 00:58:12.239
Because there's a bunch of Angular JS
apps out there that need maintenance that people

775
00:58:12.280 --> 00:58:16.239
aren't rebuilding yet, that are probably
very important to some company. So the

776
00:58:16.280 --> 00:58:24.400
prioritization is basically what jobs are available
and what are you going to be working

777
00:58:24.400 --> 00:58:28.440
on in those jobs. So,
yeah, there's plenty of React jobs out

778
00:58:28.480 --> 00:58:30.760
there, right because reacts been around
a long time, not because React is

779
00:58:30.760 --> 00:58:35.719
the latest and the greatest. It's
just there's a lot of existing software or

780
00:58:35.760 --> 00:58:40.679
existing tooling. But you may look
up a job and it's something that's not

781
00:58:40.719 --> 00:58:45.880
the latest and greatest, and that's
okay, you know, if you were

782
00:58:45.880 --> 00:58:46.880
to post it out there on social
media, they might say, oh,

783
00:58:46.960 --> 00:58:50.559
well, you're going to be hurting
yourself in the future for future jobs and

784
00:58:50.599 --> 00:58:53.719
things like that. My response to
I need to know this latest and greatest

785
00:58:53.760 --> 00:59:01.239
abstraction in order to get a good
job is show up your fundamentals, because

786
00:59:01.239 --> 00:59:06.159
if you show up your fundamentals,
you can learn anything, any abstraction on

787
00:59:06.199 --> 00:59:10.360
top of the fundamentals. Amen.
Yeah, I always look for that whenever

788
00:59:10.440 --> 00:59:16.239
I interview. I'm looking for a
person that has a good grasp, that

789
00:59:16.400 --> 00:59:21.119
has the capability to learn. You
know, the fact that you happen to

790
00:59:21.239 --> 00:59:27.559
memorize a particular technology is a lot
less interesting for me than your ability to,

791
00:59:28.239 --> 00:59:32.880
you know, learn new stuff as
it comes your way. Yeah.

792
00:59:34.079 --> 00:59:37.960
I'm also a Spanish speaker, and
I learned the language as an adult,

793
00:59:38.679 --> 00:59:42.840
and so I kind of relate it. I think Steve was mentioning it.

794
00:59:44.000 --> 00:59:49.039
You may not know every word in
the Spanish dictionary, you may not know

795
00:59:49.119 --> 00:59:53.719
the entire vocabulary, but if you
understand conjugation and sentence structure, you're going

796
00:59:53.800 --> 01:00:00.559
to be able to add vocabulary very
easily. But if you just memorize words

797
01:00:00.960 --> 01:00:05.440
and phrases with no concept of sentence
structure, you have a much harder time.

798
01:00:06.199 --> 01:00:09.000
So getting the fundamentals is your sentence
structure, your grammar, it's your

799
01:00:09.039 --> 01:00:14.039
grammar of the web. And now
all of these things, whatever framework it

800
01:00:14.119 --> 01:00:15.400
is, and you know, maybe
like one over the other. It's fine.

801
01:00:15.480 --> 01:00:19.880
It's about ergonomics and about how it
works and its goals. Great,

802
01:00:20.760 --> 01:00:25.280
but it's still just an implementation,
right, It's still just vocabulary on top

803
01:00:25.320 --> 01:00:30.320
of the grammatical structure of the web
itself. Yeah, but what fundamentals looks

804
01:00:30.440 --> 01:00:38.639
less appealing in your in your resume
than yeah, I want to add a

805
01:00:38.639 --> 01:00:44.440
couple of things to this, so
you know, to the spoken language example,

806
01:00:45.239 --> 01:00:47.320
I took French for six years in
junior high in high school, right,

807
01:00:49.000 --> 01:00:52.000
and I was fairly proficient. My
grandmother was French, and so I

808
01:00:52.000 --> 01:00:54.239
would go practice with her. I'd
just sit and chat with her. And

809
01:00:54.280 --> 01:00:58.400
I wasn't great at it by any
means. But the fundamentals are the same

810
01:00:58.440 --> 01:01:01.679
in all of the Romance language is
Likeanish or Italian. And when I was

811
01:01:01.840 --> 01:01:07.159
eighteen, I got a call from
the church to go serve a mission in

812
01:01:07.199 --> 01:01:10.239
Italy, and so you know,
I went to a missionary training center and

813
01:01:10.239 --> 01:01:14.280
they taught us Italian for eight weeks
and then you know, dropped us in

814
01:01:14.280 --> 01:01:16.480
the middle of the country where you
realize you really didn't know Italian. But

815
01:01:17.119 --> 01:01:21.199
the point is is that because all
of those concepts were the same, I

816
01:01:21.239 --> 01:01:23.199
picked it up a lot quicker than
a lot of the other people, because

817
01:01:23.440 --> 01:01:27.760
you know, it didn't matter that
I had spent all the time doing react

818
01:01:28.320 --> 01:01:30.760
Romance language. Right, I could
pick up view or you know, French

819
01:01:30.760 --> 01:01:36.840
and learning Italian. And so it
really does help because the more you see

820
01:01:36.880 --> 01:01:38.519
and the more you have some of
the similar problems solved. Yeah, a

821
01:01:38.519 --> 01:01:42.840
lot of these pieces fall into place. But the other thing is is that

822
01:01:43.000 --> 01:01:45.599
and this is to your point of
what are you going to use right?

823
01:01:45.920 --> 01:01:49.199
I knew for two years I was
going to use Italian because I was going

824
01:01:49.280 --> 01:01:52.320
to live there, right, and
to a certain extent, though, I

825
01:01:52.360 --> 01:01:57.880
also want to extend this to what
you want to eventually be using right.

826
01:01:58.320 --> 01:02:00.800
And so some people they're just like
I've coached I don't know how many people

827
01:02:00.840 --> 01:02:05.440
right. And one poignant example that
I had there was a guy that was

828
01:02:05.480 --> 01:02:07.400
working for a company and he's like, look, this is a great company,

829
01:02:07.719 --> 01:02:10.800
but they're using x JS. I
don't even I don't know if you

830
01:02:10.800 --> 01:02:15.440
guys even remember it. It's this
oldish framework. It's kind of got some

831
01:02:15.519 --> 01:02:17.360
dot net roots. It was really
clunky. I did a little bit of

832
01:02:17.400 --> 01:02:25.920
work in it way back in the
day. And anyway, he felt stuck,

833
01:02:27.000 --> 01:02:30.039
right because he knew that nobody else, right, finding another job using

834
01:02:30.199 --> 01:02:34.239
x JS was just not going to
be a thing for him. And so

835
01:02:34.320 --> 01:02:36.880
that's where I was encouraging him.
Okay, Right, So if you're working

836
01:02:36.920 --> 01:02:38.480
in Angular JS and you're like,
well, maybe my next job will be

837
01:02:38.480 --> 01:02:45.199
Angular like Angular fifteen or sixteen or
whatever they're on now, right, go

838
01:02:45.280 --> 01:02:49.000
learn it, right, Go learn
it and then and then you can parlay

839
01:02:49.039 --> 01:02:52.360
that into that next position that you
want to be in. Make that your

840
01:02:52.360 --> 01:02:55.760
current position, right, And I
encourage people to do this all the time.

841
01:02:57.000 --> 01:02:59.800
I want to be a well known
developer, all right, well you

842
01:02:59.800 --> 01:03:02.960
know that's not a programming framework,
but go to toast masters, right.

843
01:03:04.760 --> 01:03:08.119
Or I want to write a book, okay, well, start writing a

844
01:03:08.119 --> 01:03:13.000
blog every day and start building those
skills. Right. This applies to everything.

845
01:03:13.719 --> 01:03:15.920
But the point is is that you
know, it doesn't just have to

846
01:03:15.920 --> 01:03:19.519
be what am I going to use? But what am I going to use?

847
01:03:19.599 --> 01:03:22.280
In the next stream job that may
be what you're spending some of your

848
01:03:22.320 --> 01:03:27.400
time on. Yeah, one hundred
percent. It's the job that I have

849
01:03:27.480 --> 01:03:30.840
and the job that I want,
basically, right, And so the be

850
01:03:31.039 --> 01:03:36.199
open I say, when you show
up your fundamentals, you can be open

851
01:03:36.519 --> 01:03:40.239
to any job that you have because
it's always going to be building on those

852
01:03:40.239 --> 01:03:45.760
fundamentals, and it'll make it easier
to have the time to learn the thing

853
01:03:45.840 --> 01:03:50.719
for the job you want, right, because your time is limited, right,

854
01:03:50.760 --> 01:03:54.119
and if you have whatever your personal
circumstances are in order to make best

855
01:03:54.199 --> 01:03:59.119
use of that time. Let's say
I want to learn whatever the new thing

856
01:03:59.239 --> 01:04:02.119
is, and I don't use it
at my current job, but that's where

857
01:04:02.159 --> 01:04:06.639
I want to eat. Okay,
how quickly can you learn the new thing

858
01:04:06.760 --> 01:04:13.000
will depend on how good your fundamentals
are and then yeah, and then so

859
01:04:14.000 --> 01:04:18.599
it may take you months versus literally
weeks, right as far as a difference

860
01:04:18.719 --> 01:04:24.039
or days in some cases, because
you can just look at it and go,

861
01:04:24.119 --> 01:04:27.880
oh, this coder did a thing, and essentially you sit at the

862
01:04:28.000 --> 01:04:32.000
level of the person who invented it, instead of sitting an abstraction layer above

863
01:04:32.559 --> 01:04:38.400
where you don't really understand what's happening. Another illustration I like to use is

864
01:04:38.440 --> 01:04:42.719
that of a drain. If you
drop something down the drain in your sink

865
01:04:43.159 --> 01:04:45.280
and you have no mental model of
how plumbing works, it's like, oh,

866
01:04:45.280 --> 01:04:51.920
well it's gone. But if you
understand how plumbing works, you might

867
01:04:51.920 --> 01:04:55.360
have a chance of getting to it. And if you're a guy that works

868
01:04:55.360 --> 01:04:57.760
for the city and understands how the
whole sewer system works, you have an

869
01:04:57.800 --> 01:05:01.280
even better chance. Right. So
it's it's how how long will it take

870
01:05:01.320 --> 01:05:05.559
you to retrieve the thing? Depends
on your mental like the depth of your

871
01:05:05.559 --> 01:05:12.000
mental model. So learning and implementing
anything is just time. And and these

872
01:05:12.000 --> 01:05:15.880
frameworks have a lot of crossover.
These concepts are not like one hundred percent

873
01:05:15.960 --> 01:05:19.679
unique to every framework. They're implementing
it in different ways. There's different quirks,

874
01:05:19.960 --> 01:05:26.679
there's different uh everybody. Yeah,
signals. Signals is a great example.

875
01:05:26.800 --> 01:05:30.920
I want to learn solid yes,
or I want to learn signals an

876
01:05:30.920 --> 01:05:38.239
angular or quick well you can learn
if you know JavaScript. Well. Signals

877
01:05:38.280 --> 01:05:41.599
is just implemented in JavaScript. It's
not a new web technology. I mean,

878
01:05:41.719 --> 01:05:45.400
there is a proposal now for signals
in the browser, but uh,

879
01:05:45.599 --> 01:05:49.559
it's it's just some JavaScript code.
You could make your own signals. Now

880
01:05:49.800 --> 01:05:53.840
you know, maybe you probably shouldn't
do that because other people are doing much

881
01:05:53.880 --> 01:05:58.960
more robust ones. But if you
understand it conceptually is just other people's JavaScript,

882
01:05:59.760 --> 01:06:03.800
you can learn any of this stuff
much quicker. Yeah, all right,

883
01:06:03.840 --> 01:06:08.519
Well we're kind of getting toward the
end of our scheduled time. Is

884
01:06:08.559 --> 01:06:11.360
there anything else? Like? I'm
just thinking, you know, something that

885
01:06:11.440 --> 01:06:15.239
is fundamental to understanding how do I
learn? What do I learn? That

886
01:06:15.320 --> 01:06:20.639
kind of a thing that we haven't
touched on yet. I think, honestly,

887
01:06:20.679 --> 01:06:25.239
I think curiosity is and I mentioned
it before, but I really do

888
01:06:25.280 --> 01:06:31.760
think curiosity is the differentiator. You're
going to ultimately do better the more curious

889
01:06:31.800 --> 01:06:38.440
you are as to how something works. And because the more curious you are

890
01:06:38.480 --> 01:06:42.039
is how something works, the more
motivated you'll be on how something works.

891
01:06:42.079 --> 01:06:49.480
So working on building curiosity usually comes
from experience. You know, the first

892
01:06:49.480 --> 01:06:53.639
time you break something down and realize
how it works and you get that huge

893
01:06:53.719 --> 01:06:58.039
light bulb, that's addictive. You're
going to want to go back to that

894
01:06:58.079 --> 01:07:01.920
feeling, and so work on you
know, even if you're not motivated too

895
01:07:02.000 --> 01:07:05.079
much, try it for something.
Some aspect of something you use in your

896
01:07:05.079 --> 01:07:11.199
work every day, feel that light
bulb moment and that will help you go

897
01:07:11.280 --> 01:07:15.199
back to it again. I love
it, honestly. That curiosity makes it

898
01:07:15.239 --> 01:07:20.599
more fun anyway, It's true,
all right. One of the main reasons

899
01:07:20.599 --> 01:07:27.440
that I love this field that we're
in is that it's like solving a riddle.

900
01:07:27.880 --> 01:07:33.960
Like every day people are paying me
to solve riddles, and that curiosity

901
01:07:34.000 --> 01:07:40.280
and that sense of accomplishment is something
that I'm really addicted to. Yeah,

902
01:07:40.320 --> 01:07:45.639
and the riddle is cross discipline as
well. Right, I'm the director of

903
01:07:45.760 --> 01:07:48.559
education for a company called the smythe
group s Myth, and I work with

904
01:07:48.599 --> 01:07:50.800
a lot of these people for a
long time. And you have devs,

905
01:07:51.039 --> 01:07:55.639
and you have user experience, and
you have dev ops and you have all

906
01:07:55.679 --> 01:07:58.519
these things, but getting all of
it to work together well. And that's

907
01:07:58.559 --> 01:08:03.239
another aspect of understand and learning tech
is the more curious you are, the

908
01:08:03.280 --> 01:08:09.199
better your team dynamics will be,
the easier time you'll have interacting with other

909
01:08:09.199 --> 01:08:13.880
people on your teams, including other
developers and other disciplines. It turns into

910
01:08:14.199 --> 01:08:17.680
less of this kind of vague notion
of how things work, into a complete

911
01:08:17.720 --> 01:08:23.840
notion of how things work, and
that actually makes it easier to have nice

912
01:08:24.319 --> 01:08:30.000
interactions, enjoyable interactions with your team. At least that's that's my experience in

913
01:08:30.039 --> 01:08:31.399
my work with those folks and my
work over the past, you know,

914
01:08:31.439 --> 01:08:38.319
over many years. It just has
a it just is beneficial overall. So

915
01:08:38.479 --> 01:08:42.119
before we stop, I think we
owe it to Henry's made of so many

916
01:08:42.159 --> 01:08:47.399
excellent comments throughout this episode. He
raises a question specifically about the WordPress community,

917
01:08:47.479 --> 01:08:53.760
but you might apply it to anybody
who's working within legacy tech, Like,

918
01:08:54.359 --> 01:08:59.680
is the WordPress community curious or is
you know, if I'm like kind

919
01:08:59.680 --> 01:09:08.279
of unquote stuck in some legacy framework, how curious am I? It's an

920
01:09:08.279 --> 01:09:15.359
interesting question. I think my experience
is that your curiosity will yield less stress

921
01:09:16.199 --> 01:09:21.079
and faster production as a as a
developer. So even if you're let's say

922
01:09:21.079 --> 01:09:25.319
a WordPress and I've seen this happen, you're using some kind of CMS and

923
01:09:25.359 --> 01:09:30.479
you're kind of stuck in that place, but you can be the person that

924
01:09:30.560 --> 01:09:35.359
figures out the problem really fast.
For example, and you might have a

925
01:09:36.079 --> 01:09:43.279
CMS where other people are writing content
and you're kind of working on the tooling

926
01:09:43.319 --> 01:09:46.039
for them to write that content,
and the widgets and whatever else, and

927
01:09:46.079 --> 01:09:53.479
they manage to do something that just
breaks a page. The curiosity comes in

928
01:09:53.560 --> 01:09:58.399
now or again with the fundamentals.
What's happening with the CSS? Can I

929
01:09:58.479 --> 01:10:02.079
make the HTML more cement and accessible
while I'm doing this? What is WordPress

930
01:10:02.159 --> 01:10:06.560
generating? What are the problems with
the way WordPress generates HTML? How can

931
01:10:06.600 --> 01:10:11.760
I maximize my use of it?
There are places you can find that I've

932
01:10:11.760 --> 01:10:15.520
seen it happen. Right. You
can be a dev in a situation like

933
01:10:15.600 --> 01:10:19.000
that, and it's maybe not the
latest and the greatest, but you can

934
01:10:19.079 --> 01:10:24.479
still say this is still somebody else's
code, This is still somebody doing something

935
01:10:24.560 --> 01:10:30.239
for me, and I can still
see these problems not as these huge frustrations,

936
01:10:30.199 --> 01:10:38.239
but as opportunities for me to step
an abstraction layer below and figure out

937
01:10:38.279 --> 01:10:42.079
how to solve these problems much more
quickly, because these problems are my stressors,

938
01:10:43.119 --> 01:10:45.399
Like I don't want to be spending
my time with these problems. So

939
01:10:45.880 --> 01:10:48.720
another way of saying it was figure
out what your stressors are in these technologies,

940
01:10:48.760 --> 01:10:53.800
even if their legacy, and be
curious about how to solve those stressors

941
01:10:53.840 --> 01:10:59.680
more quickly. And I would like
to add to that is that in some

942
01:10:59.760 --> 01:11:05.680
case says, you know, if
people are just looking to deploy something and

943
01:11:05.720 --> 01:11:10.720
then move on, it's a legitimate
approach, but it becomes a race to

944
01:11:10.760 --> 01:11:15.600
the bottom because you're dispensable. There's
nothing unique about you. On the other

945
01:11:15.680 --> 01:11:21.399
hand, if you're that person who
is able to delve deeper and be able

946
01:11:21.479 --> 01:11:28.439
to solve the sticky problems and be
able to integrate those legacy technologies, for

947
01:11:28.479 --> 01:11:33.119
example, with some new stuff that's
coming out that gives you an amazing leg

948
01:11:33.279 --> 01:11:40.159
up. I knew this guy like
twenty something years ago. He was one

949
01:11:40.239 --> 01:11:45.359
of the last AS four hundred developers. Like certainly in Israel, but probably

950
01:11:45.399 --> 01:11:49.960
in the world those of you are
not familiar. It's this legacy system from

951
01:11:50.000 --> 01:11:56.600
IBM was really popular back in the
day, but then kind of fell off,

952
01:11:56.640 --> 01:12:02.159
as you know, as the PCs
replaced it. And he just he

953
01:12:02.199 --> 01:12:06.960
didn't just understand AS four hundreds better
than anybody else. He knew how to

954
01:12:08.159 --> 01:12:14.680
integrate them with new and modern technologies. So organizations that had AS four hundred

955
01:12:14.800 --> 01:12:20.279
systems when they brought him in,
it was beyond just keeping the lights running.

956
01:12:20.720 --> 01:12:25.520
It was also a stepping stone to
the future. He would show them

957
01:12:25.560 --> 01:12:31.079
how they could take their existing system, integrate it with new services and capabilities

958
01:12:31.439 --> 01:12:38.079
that would eventually enable them to actually
move off those as four hundreds into those

959
01:12:38.119 --> 01:12:44.000
new technologies. But along the way
he made a ton of money. Yeah,

960
01:12:44.479 --> 01:12:47.279
and this is an excellent point.
And I've seen this multiple times.

961
01:12:47.960 --> 01:12:54.560
Somebody will in my own coursework,
I always try to teach fundamentals up right,

962
01:12:54.560 --> 01:12:58.159
and so somebody will come to me
and something as satisfying for me as

963
01:12:58.159 --> 01:13:00.840
somebody will say, I went to
work, I didn't really get if what

964
01:13:00.880 --> 01:13:04.119
you were teaching me was useful.
But I went to work the next week

965
01:13:04.760 --> 01:13:09.680
and I was able to solve this
problem super fast. And the thing is

966
01:13:09.680 --> 01:13:14.079
that when you're the person that solves
the problem faster, there's no guarantees,

967
01:13:14.199 --> 01:13:17.760
right, there's no guarantees on jobs. But if I'm the boss and I'm

968
01:13:17.800 --> 01:13:21.600
looking at a dev team and one
of my members of that dev team is

969
01:13:21.640 --> 01:13:26.520
the person that bounces around and quickly
helps people figure out problems because they're so

970
01:13:26.520 --> 01:13:30.439
good at understanding what's actually happening,
integrating old systems, all of these things,

971
01:13:30.439 --> 01:13:33.760
they're they're fundamentals up. That's not
the first person probably I'm going to

972
01:13:33.760 --> 01:13:39.600
think about when the company has economic
difficulty to start laying off. Again,

973
01:13:39.600 --> 01:13:46.960
no guarantees, but you do help
you help your There's a difference between getting

974
01:13:46.960 --> 01:13:49.880
a job and keeping a job,
and maybe that's the big that's to me

975
01:13:49.920 --> 01:13:54.479
as kind of like the clincher.
People are so worried about the getting a

976
01:13:54.560 --> 01:13:57.680
job, but all of these things
that we're talking about help you keep a

977
01:13:57.720 --> 01:14:01.199
job. Yeah. I want to
throw one more thing in, especially on

978
01:14:01.239 --> 01:14:04.600
the WordPress question. Right. So, I've I've gone through a bunch of

979
01:14:04.600 --> 01:14:09.239
iterations with top top end devs,
and we've been on WordPress twice and the

980
01:14:09.279 --> 01:14:15.279
second time I actually had to write
a plugin to manage having multiple podcasts on

981
01:14:15.359 --> 01:14:20.600
the same system and all this stuff, right, And then I've also worked

982
01:14:20.760 --> 01:14:25.039
with other organizations. Right. So
right now I'm the vice chair for the

983
01:14:25.119 --> 01:14:30.279
Utah County Republican Party and our websites
on WordPress, right, the state parties

984
01:14:30.319 --> 01:14:32.439
the website is also on WordPress,
incidentally, and I've been doing some stuff

985
01:14:32.439 --> 01:14:36.720
with that, right, And so
what's really been effective there? Yeah?

986
01:14:36.720 --> 01:14:43.960
Am I doing anything technically innovative?
No, But these organizations that have gone

987
01:14:43.960 --> 01:14:47.239
from we just need a web presence, right, which is where a lot

988
01:14:47.279 --> 01:14:50.479
of people reach for WordPress. Right, So they reach for WordPress and it's

989
01:14:50.680 --> 01:14:54.399
okay, I put up a theme, I filled in all the blanks,

990
01:14:54.439 --> 01:14:57.760
and I have a website. Now
it's hey, how do we engage people?

991
01:14:57.800 --> 01:15:00.920
How do we serve the people who
need our resource versus how do we

992
01:15:00.079 --> 01:15:04.079
write? And so it's much more
of this communication and marketing problem than it

993
01:15:04.199 --> 01:15:10.399
is a web and technical problem.
And so the innovation and the innovation curious

994
01:15:10.439 --> 01:15:15.039
thought is as much how do I
put something in front of people that's going

995
01:15:15.119 --> 01:15:18.600
to give them what they need as
it is how do I find the right

996
01:15:18.640 --> 01:15:24.920
plugins or combination of things or write
my own code to effectively do what needs

997
01:15:24.920 --> 01:15:30.159
to be done. And so the
curiosity doesn't have to look like I'm not

998
01:15:30.239 --> 01:15:32.880
using plugins, I'm running my own
code. It doesn't have to look like,

999
01:15:35.079 --> 01:15:39.640
you know, I'm doing things the
way everybody else does it. You

1000
01:15:39.680 --> 01:15:43.279
can do everything the way everybody else
does it, but because you have a

1001
01:15:43.399 --> 01:15:45.640
unique grounding in your problem or in
the thing they're trying to solve, whether

1002
01:15:45.680 --> 01:15:49.279
external or internal, and you can
be curious about, Okay, how do

1003
01:15:49.359 --> 01:15:54.239
I take this to the next place? And what that may mean is that

1004
01:15:54.319 --> 01:16:00.800
you start picking up skills beyond the
technical skills, right oh, it's okay,

1005
01:16:00.000 --> 01:16:03.479
what's going on in the wider world
of marketing, what's going on with

1006
01:16:03.560 --> 01:16:09.600
the wider world of outreach, prospecting, sales, you know, whatever other

1007
01:16:09.720 --> 01:16:14.760
function this WordPress site supports. And
then you start coming back and saying,

1008
01:16:14.800 --> 01:16:18.199
okay, now what are the solutions, and your curiosity technically might be there

1009
01:16:18.239 --> 01:16:23.600
are eight different membership plugins that I
can use, which one best fits my

1010
01:16:23.800 --> 01:16:27.239
problem? And then from there it's
okay, well, how can I make

1011
01:16:27.279 --> 01:16:30.520
this better fit my problem so that
it works best for the people who are

1012
01:16:30.520 --> 01:16:33.640
going to use it? And so, yeah, you're not out there reinventing

1013
01:16:33.720 --> 01:16:38.760
or inventing some new technology. But
what you are doing is you're finding that

1014
01:16:39.039 --> 01:16:43.560
novel way of solving the problem with
the tools that already exist that now that

1015
01:16:43.600 --> 01:16:47.359
you understand the problem better, right, you have all the pieces to bring

1016
01:16:47.399 --> 01:16:51.640
together, if that makes sense.
And I've spent many years straddling the line

1017
01:16:51.640 --> 01:16:56.960
between user experience, design and development, and that is really the sweet spot.

1018
01:16:57.039 --> 01:16:59.359
I think. As a developer,
what we're there to do is solve

1019
01:16:59.359 --> 01:17:05.800
problems. We're not there to try
to figure out the code to work.

1020
01:17:06.319 --> 01:17:11.399
Like the code working is part of
the job, but you're actually there to

1021
01:17:11.399 --> 01:17:15.680
solve the problems that the software is
solving. So even if you're in a

1022
01:17:15.760 --> 01:17:19.000
legacy system, get to know it
really well so that you're spending most of

1023
01:17:19.000 --> 01:17:25.079
your time with Hey is it accessible? Hey is it Oh there's a problem

1024
01:17:25.079 --> 01:17:28.000
that they're trying to solve and they
can't figure it out. I know that

1025
01:17:28.520 --> 01:17:31.079
we can solve this problem this way. And it's not about implementation, like

1026
01:17:31.119 --> 01:17:33.359
how can I do it in the
code? It's more about what's the right

1027
01:17:33.399 --> 01:17:38.119
solution to solve that problem, and
that can be very satisfying. Absolutely.

1028
01:17:38.199 --> 01:17:42.880
Yeah. Already asked also what to
do when the plugins create technical hurdles?

1029
01:17:43.479 --> 01:17:46.359
And I don't know exactly what he's
seeing, but what I've seen, especially

1030
01:17:46.399 --> 01:17:50.159
in WordPress, is that sometimes your
plugins conflict, right, and so then

1031
01:17:50.199 --> 01:17:55.079
you get unexpected behavior, and that
to me goes right back down to those

1032
01:17:55.119 --> 01:17:58.840
fundamentals, right, Yeah, how
does WordPress work? How does it put

1033
01:17:58.880 --> 01:18:00.680
this together? How does it load
the plugins? What order does it load

1034
01:18:00.760 --> 01:18:03.399
them in? You know, how
does it execute the code that comes in

1035
01:18:03.439 --> 01:18:06.920
the plugins? Right? And so
when you understand those then it's okay.

1036
01:18:08.199 --> 01:18:12.760
So what's probably happening is is I'm
seeing this functionality stump on that functionality.

1037
01:18:12.800 --> 01:18:15.479
And now that I understand how everything
goes together, here's why it's probably happening.

1038
01:18:16.159 --> 01:18:18.399
Yep. And it goes back to
that initial question, right, It's

1039
01:18:18.439 --> 01:18:23.800
not what and how, it's why, when, what and how? And

1040
01:18:23.880 --> 01:18:27.680
if you can answer all those four
questions, your development life will change.

1041
01:18:27.960 --> 01:18:30.119
Yeah. All right, we're we're
really getting up to our hard stop.

1042
01:18:30.239 --> 01:18:33.199
So I'm going to push us over
to picks. This has been awesome,

1043
01:18:33.239 --> 01:18:40.000
Tony. Before we do picks,
where do people find you online? Uh?

1044
01:18:40.039 --> 01:18:44.760
Okay, So Anthony aliseya dot com
A L I c e A my

1045
01:18:44.840 --> 01:18:47.359
new chorus. You can find an
understandingreact dot com if you want to spend

1046
01:18:47.359 --> 01:18:50.399
that time with me. I put
a js Jabber coupon in there for for

1047
01:18:50.520 --> 01:18:56.399
people too. And the smythe group
dot com s m y t H is

1048
01:18:56.439 --> 01:19:00.640
the company that I'm I'm working with
as well that helps devt be their best

1049
01:19:00.680 --> 01:19:03.920
selves. Some interesting things there.
Yeah. So those three planes, and

1050
01:19:03.960 --> 01:19:06.920
then on Twitter, I'm Anthony p
if he is in Paul or Peter,

1051
01:19:08.319 --> 01:19:12.760
i'lly say I al I see a
awesome all right, we're gonna do the

1052
01:19:12.800 --> 01:19:15.520
picks. We'll let you go last
that we can kind of see what we're

1053
01:19:15.520 --> 01:19:17.840
talking about here. I have a
joke for Steve before he does his picks.

1054
01:19:18.920 --> 01:19:21.359
And I've heard this one before,
but somebody told it and they thought

1055
01:19:21.399 --> 01:19:25.880
it was hilarious, which made me
think it was hilarious again because they were

1056
01:19:25.920 --> 01:19:30.800
just laughing about it for like twenty
minutes. But the joke is, how

1057
01:19:30.800 --> 01:19:34.439
do you catch a unique rabbit?
Can I give you an answer? Yeah?

1058
01:19:34.920 --> 01:19:40.199
Unique up on him? How do
you catch a tame rabbit? Tame

1059
01:19:40.279 --> 01:19:44.800
way unique up on him? Yeah, exactly. All right, go ahead,

1060
01:19:44.800 --> 01:19:46.640
Steve, what are your picks?
Okay? I have one pick one

1061
01:19:46.720 --> 01:19:50.760
dad joke for today, and it's
a little longer one, but it's well

1062
01:19:50.800 --> 01:19:56.399
worth the wait. So there were
three kingdoms, each bordering on the same

1063
01:19:56.479 --> 01:19:59.479
lake. For centuries. Those kingdoms
had fought over an island in the middle

1064
01:19:59.520 --> 01:20:01.279
of that lake. One day,
they decided to have it out once and

1065
01:20:01.319 --> 01:20:04.680
for all. The first kingdom was
quite rich and sent an army of twenty

1066
01:20:04.680 --> 01:20:08.960
five knights, each with three squires. The night before the battle, the

1067
01:20:09.000 --> 01:20:12.760
knights jousted and coborted as their squire's
polished armor, cooked food, and sharpened

1068
01:20:12.800 --> 01:20:15.600
weapons. The second kingdom was not
so wealthy and sent only ten knights,

1069
01:20:15.640 --> 01:20:19.159
each with two squires. The night
before the battle, the knights caborted and

1070
01:20:19.159 --> 01:20:25.239
sharpened their weapons as the polished armor
and prepared dinner. The Third Kingdom was

1071
01:20:25.359 --> 01:20:29.159
very poor and only sent one elderly
knight with his soul squire. The night

1072
01:20:29.199 --> 01:20:31.119
before the battle of the knight sharpened
his weapon while the squire, using a

1073
01:20:31.199 --> 01:20:35.039
noosed rope, slung a pot high
over the fire to cook while he prepared

1074
01:20:35.039 --> 01:20:40.479
the knight's armor. The next day
of the battle began, all the knights

1075
01:20:40.479 --> 01:20:43.920
of the first two kingdoms had coborted
a bit too much. One should never

1076
01:20:44.000 --> 01:20:47.960
covort while sharpening weapons and jousting.
Illd on I gonna eat my sound effector,

1077
01:20:49.960 --> 01:20:55.000
and could not fight. The squire
of the Third Kingdom could not rouse

1078
01:20:55.039 --> 01:20:59.560
the elderly knight in time for the
combat, so in the absence of the

1079
01:20:59.640 --> 01:21:02.319
knights, the squire spot the battle
raised well into the late hours, But

1080
01:21:02.359 --> 01:21:06.640
when the dust finally settled, a
solitary figure limped from the carnage. The

1081
01:21:06.680 --> 01:21:11.279
lone squire from the Third Kingdom dragged
himself away, beaten, bloodied, the

1082
01:21:11.359 --> 01:21:15.239
victorious, and all that just goes
to prove the squire of the high pot

1083
01:21:15.279 --> 01:21:18.600
and news is equal to the sum
of the squires of the other two sides.

1084
01:21:24.159 --> 01:21:29.199
Oh man, wow, that was
a long row to hoe, but

1085
01:21:29.279 --> 01:21:36.279
well worth it. That amazing And
I got one more. Sorry, Tony

1086
01:21:36.319 --> 01:21:42.760
is dad jokes. But so interviewer
says, forget everything you learned in college,

1087
01:21:42.760 --> 01:21:45.000
you won't need it working here me. But I didn't go to college,

1088
01:21:45.399 --> 01:21:51.399
and he said, well, then
you're unqualified for this job. Yeah,

1089
01:21:51.640 --> 01:21:58.399
that's too close to the truth for
me to laugh at it. Anyway.

1090
01:21:58.600 --> 01:22:02.039
So I've got two picks. I'll
start with the first one is this

1091
01:22:02.880 --> 01:22:08.119
show that we're watching on Netflix.
It's called Ripley. It's spelled our I

1092
01:22:08.439 --> 01:22:13.119
p l e Y. It's really
interesting, kind of out there. It's

1093
01:22:13.159 --> 01:22:18.560
black and white. It's about this
grifter in the sixties that goes to Italy

1094
01:22:18.920 --> 01:22:24.720
to you know, on a mission
for this wealthy family to return their kind

1095
01:22:24.720 --> 01:22:30.840
of wayward sun. And it goes
into really odd and dark places. But

1096
01:22:30.039 --> 01:22:34.680
you know, it's it's it's really
interesting. We're joining it in, but

1097
01:22:34.760 --> 01:22:39.800
it's it's kind of out there.
So it's, like I said, it's

1098
01:22:39.800 --> 01:22:45.600
called Ripley. So that would be
my first pick. My second is I

1099
01:22:45.760 --> 01:22:49.680
mentioned the fact that you know,
yesterday as a time of this recording,

1100
01:22:50.439 --> 01:22:57.880
Iran fired a bunch of rockets,
well actually missiles at Israel, so something

1101
01:22:58.000 --> 01:23:05.920
like one hundred and seventy something like
like one hundred and ten ballistic missiles,

1102
01:23:05.960 --> 01:23:12.039
some cruise missiles and whatnot, and
Israel was actually, with the help of

1103
01:23:12.479 --> 01:23:17.239
others like the US and Jordan and
other countries, was able to actually shoot

1104
01:23:17.239 --> 01:23:23.520
down the vast majority something like ninety
nine percent out of all the rockets fired,

1105
01:23:23.560 --> 01:23:29.880
something like seven made it in.
And the reason that I'm kind of

1106
01:23:29.920 --> 01:23:32.800
mentioning it in, you know,
the relation it has to me is that

1107
01:23:32.880 --> 01:23:36.479
when I served in the army,
I was actually in the Israeli Army.

1108
01:23:36.479 --> 01:23:43.880
I was actually heavily involved in the
experiments for the arrow anti ballistic missile.

1109
01:23:44.319 --> 01:23:48.039
So actually shooting down the ballistic missiles. You have like a layered defense system.

1110
01:23:48.640 --> 01:23:54.079
You use different ways to shoot down
different things, like the drones or

1111
01:23:54.119 --> 01:23:58.840
the cruise missiles, but for the
ballistic missiles, you actually want to intercept

1112
01:23:58.840 --> 01:24:02.199
them in outer space possible, which
is kind of pretty amazing. Think about

1113
01:24:02.199 --> 01:24:09.560
that. You're you're you're shooting down
missiles in outer space. Uh and uh,

1114
01:24:09.720 --> 01:24:12.600
like I said, I was heavily
involved in the in the UH,

1115
01:24:13.319 --> 01:24:19.399
the test for the UH for the
arrow Anti Missile Experience missile and now it's

1116
01:24:19.520 --> 01:24:25.920
really gratifying to see this, you
know, protecting my country and saving lives.

1117
01:24:26.119 --> 01:24:29.000
So you know, that would be
my my second pick, although I'm

1118
01:24:29.000 --> 01:24:33.399
not sure what I'm picking, and
uh, those are my picks for today.

1119
01:24:34.159 --> 01:24:39.680
Yeah, as a freelancer, sometimes
my projects don't ever get used.

1120
01:24:39.840 --> 01:24:42.840
I guess it's pretty gratifying to seeing
it used in that way, on that

1121
01:24:42.960 --> 01:24:48.279
level, So that's awesome. I'm
gonna pick. I've got a bunch of

1122
01:24:48.279 --> 01:24:53.960
picks today, so I'm just gonna
just work through them. My first pick,

1123
01:24:54.119 --> 01:24:56.439
I usually pick a board game or
a card game. This one's a

1124
01:24:56.479 --> 01:25:02.439
card game. It's called Doomlings,
and it's kind of loosely based on kind

1125
01:25:02.439 --> 01:25:08.840
of genetic genetics. So you have
different traits. You have trade cards that

1126
01:25:08.880 --> 01:25:12.399
you collect. Is effectively how you
win. You get however many points they

1127
01:25:12.439 --> 01:25:15.319
say they're worth at the end,
So some of them it's this is worth

1128
01:25:15.359 --> 01:25:16.399
one for every one of them you
have, right, so if you have

1129
01:25:16.520 --> 01:25:20.600
twelve, then you get twelve points. Some of them it starts as worth

1130
01:25:20.680 --> 01:25:25.479
seventeen points, but every trade card
you have diminishes it's worth by one,

1131
01:25:25.600 --> 01:25:28.800
right, and so then you're trying
to play other trade cards that allow you

1132
01:25:28.840 --> 01:25:32.479
to discard trade cards that you have
or play them on other people or things

1133
01:25:32.560 --> 01:25:34.920
like that. Anyway, and there
are different colors, and so some of

1134
01:25:34.920 --> 01:25:39.479
them give you bonuses for having more
of one color than another. Some of

1135
01:25:39.520 --> 01:25:43.479
the trade cards allow you to penalize
other players. And what you do is

1136
01:25:43.600 --> 01:25:48.840
effectively, you have three catastrophe cards
in the age deck, and so every

1137
01:25:48.840 --> 01:25:51.720
time you hit a catastrophe, it
has some effect, right, so you

1138
01:25:51.720 --> 01:25:55.079
have to get rid of one of
your trade cards, or you have to

1139
01:25:55.079 --> 01:25:58.800
get rid of one of a certain
color, and it usually decreases your gene

1140
01:25:58.800 --> 01:26:03.279
pool, which is your hands.
And then at the third catastrophe, whenever

1141
01:26:03.319 --> 01:26:06.359
it shows up, the game's over
and you do the game end effect on

1142
01:26:06.359 --> 01:26:12.560
that card. Unless somebody has something
that totally this is getting complicated. That's

1143
01:26:12.600 --> 01:26:15.880
the whole game. That is the
whole game has a board game weight of

1144
01:26:15.239 --> 01:26:18.960
one point seventy five. So it's
pretty easy to pick up for a casual

1145
01:26:19.000 --> 01:26:21.760
gamer. I mean, and I
basically just told you all the rules right

1146
01:26:21.760 --> 01:26:26.520
there in like one minute. Yeah, it sounds a little complicated altogether,

1147
01:26:26.880 --> 01:26:29.640
but if you sit down and play
through it once, it's it's pretty easy

1148
01:26:29.640 --> 01:26:32.880
to pick up. It's definitely something
that I think my eight year old could

1149
01:26:32.920 --> 01:26:36.399
play, though I don't know that
she'd really get the interplay between some of

1150
01:26:36.439 --> 01:26:40.760
the trade cards, but yeah,
anyway, it was a fun game played

1151
01:26:40.840 --> 01:26:43.239
with my twelve year old. We
had a good time. So I'm going

1152
01:26:43.279 --> 01:26:47.039
to pick Doomlings, and then I
have a couple of other picks. One

1153
01:26:47.079 --> 01:26:50.840
of them is an app. And
this is one that my wife and her

1154
01:26:50.920 --> 01:26:54.720
friends were playing with each other and
then she got all my kids on it,

1155
01:26:54.760 --> 01:26:57.920
and so I got on it because
I wanted to participate with them on

1156
01:26:57.960 --> 01:27:01.960
it. It's called Finch and it's
a self care app. And so what

1157
01:27:02.000 --> 01:27:05.199
you do is every time I get
into it and ask me how I'm doing

1158
01:27:05.279 --> 01:27:08.920
right, how motivated are you?
Or how do you feel right now or

1159
01:27:08.960 --> 01:27:11.439
something like that, and then you
can put a bunch of tasks in.

1160
01:27:11.560 --> 01:27:14.800
And they're usually supposed to be self
care tasks, but I've been putting tasks

1161
01:27:14.840 --> 01:27:19.760
in for things like do an hour
of sponsorship outreach or do an hour of

1162
01:27:20.640 --> 01:27:25.199
just regular developer outreach. I usually
do both of those on LinkedIn, or

1163
01:27:26.479 --> 01:27:28.840
you know, my truck had a
bunch of garbage in it, so it

1164
01:27:28.920 --> 01:27:31.600
was remove at least one piece of
trash from the truck every day, right,

1165
01:27:31.640 --> 01:27:33.600
And then you get points for that, and you send your Finch on

1166
01:27:33.640 --> 01:27:40.359
adventures and he grows up and stuff
like that, and you can send encouragement

1167
01:27:40.359 --> 01:27:44.359
and things like that to the other
people that you're connected to. And so

1168
01:27:45.479 --> 01:27:47.640
anyway, if you want to pick
it up, it is I think it's

1169
01:27:47.680 --> 01:27:53.800
Finchcare dot com. Yeah, Finchcare
dot com. It's an iPhone and Android

1170
01:27:53.840 --> 01:27:58.680
app, and I'll put the link
here in the comments on YouTube and Facebook.

1171
01:28:00.680 --> 01:28:05.479
And then if you want to add
a friend to your they call it

1172
01:28:05.520 --> 01:28:12.319
your tree town, you can.
You just have to have their code.

1173
01:28:12.520 --> 01:28:17.439
So I'm gonna put my Finch code
in then as well. And so if

1174
01:28:17.479 --> 01:28:20.680
you get Finch and you want to
add me to your tree town, right,

1175
01:28:20.720 --> 01:28:24.159
so that you can send me encouragement
and I can send you encouragement.

1176
01:28:24.560 --> 01:28:26.359
In order for me to be able
to do it for you, you have

1177
01:28:26.439 --> 01:28:29.600
to send me your code too.
But that's fine. You could just email

1178
01:28:29.640 --> 01:28:33.039
me or something and I'll add you
to my tree town. I don't particularly

1179
01:28:33.039 --> 01:28:35.720
care, but yeah, So it's
just kind of a fun way to be

1180
01:28:35.840 --> 01:28:40.119
friendly to other people. And so
I'm going to pick that. And then

1181
01:28:40.920 --> 01:28:43.760
I've decided that I'm going to run
another marathon this year. It's been about

1182
01:28:43.760 --> 01:28:46.479
five years since I ran a marathon, and so I'm using a system called

1183
01:28:46.520 --> 01:28:50.560
training Peaks. It's free. They
do have a paid version, and it

1184
01:28:50.600 --> 01:28:54.279
gives some features that are kind of
nice. I used to have the paid

1185
01:28:54.319 --> 01:28:58.680
version, but I don't anymore.
And then the nice thing about training Peaks

1186
01:28:58.720 --> 01:29:01.720
is you can go and buy a
training plan. So I already owned a

1187
01:29:01.800 --> 01:29:09.760
sixteen week training plan for marathon,
and so I plug that in. The

1188
01:29:09.760 --> 01:29:15.319
marathon I want to run is Saint
George and that's at the beginning of October,

1189
01:29:15.800 --> 01:29:17.720
and so sixteen weeks is the middle
of June. And so I just

1190
01:29:17.720 --> 01:29:21.079
picked up another plan for five dollars. That's a ten k plan and it's

1191
01:29:21.119 --> 01:29:25.600
an eight week plan and so it
finishes and then I have a week one

1192
01:29:25.640 --> 01:29:28.920
week break and then I get right
into the marathon plan. But it just

1193
01:29:28.960 --> 01:29:31.439
gives me that workout, so I
go do it. And so, yeah,

1194
01:29:31.479 --> 01:29:34.239
so I like to go out for
forty five minutes. My first workout's

1195
01:29:34.279 --> 01:29:38.920
thirty minutes. So I'm gonna go
walk for fifteen minutes and then run thirty

1196
01:29:39.079 --> 01:29:43.520
the thirty minute workout that it gives
me. So anyway, really dig training

1197
01:29:43.520 --> 01:29:45.640
peaks, and so I'm gonna pick
that as well. It's just a lot

1198
01:29:45.640 --> 01:29:48.520
of I guess self care, live
your best life kind of stuff. And

1199
01:29:48.560 --> 01:29:53.359
then the last pick is seventy five
hard. I'm gonna do that again.

1200
01:29:53.520 --> 01:29:57.039
I've done that like three or four
times now and it's awesome. There's a

1201
01:29:57.079 --> 01:30:00.920
full live hard program that comes on
after it, so you do the seventy

1202
01:30:00.920 --> 01:30:04.359
five days and then you can do
the other three phases. Last year,

1203
01:30:04.399 --> 01:30:09.239
I made it through phase one and
just had trouble getting started again because there's

1204
01:30:09.239 --> 01:30:12.640
a mandatory break between phase one and
phase two. And so I think this

1205
01:30:12.760 --> 01:30:15.520
year, I'm just going to keep
doing the stuff even though I can't track

1206
01:30:15.560 --> 01:30:18.600
it for the thirty days, and
that way, when I get back into

1207
01:30:18.600 --> 01:30:25.520
it, I'm not so out of
practice on the habits that right that I

1208
01:30:25.520 --> 01:30:28.560
can just stick with it. And
I think that's kind of the idea is

1209
01:30:29.199 --> 01:30:30.319
you know, even if you slack
off for a little while, you have

1210
01:30:30.359 --> 01:30:35.119
the discipline to get back on and
go. So I'll put links to Training

1211
01:30:35.199 --> 01:30:44.279
Peaks and seventy five hard in the
in the comments, and we'll let Tony

1212
01:30:44.319 --> 01:30:48.000
share some picks with us. Yeah. Well, you guys usually mentioned some

1213
01:30:48.079 --> 01:30:51.920
board gaming stuff. I'm a big
board gamer. I'm also a tabletop RPG

1214
01:30:53.000 --> 01:30:57.279
game master, so I wanted to
give my picks on Let's be friends.

1215
01:30:58.279 --> 01:31:00.439
I want to get my picks on
high to get into it or get your

1216
01:31:00.439 --> 01:31:06.800
family into it, kids friends.
My favorite real quick for board gaming Forbidden

1217
01:31:06.920 --> 01:31:14.520
Desert by Matt Lee who who did
a Pandemic, and other games like Forbidden

1218
01:31:14.520 --> 01:31:16.079
Island. There's a new one,
Forbidden Jungle, but Forbidden Desert is still

1219
01:31:16.119 --> 01:31:23.800
my favorite by far cooperative game.
You can tell a story with the kids.

1220
01:31:23.840 --> 01:31:26.920
It's fantastic and the game is very
different every time you play. So

1221
01:31:27.039 --> 01:31:30.439
let's a stand out of that game. Yeah, so love that. And

1222
01:31:30.479 --> 01:31:32.600
then when it comes to tabletop RPGs, if you want to get into that

1223
01:31:33.079 --> 01:31:39.640
two recommendations, there's something called Fate
Accelerated Edition. Fate is a tabletop structure.

1224
01:31:40.000 --> 01:31:44.279
Accelerated Edition is a very fast,
easy way to run just about any

1225
01:31:44.359 --> 01:31:47.760
story you want to run with some
dice. There's even a bunch of kids

1226
01:31:47.880 --> 01:31:53.159
RPGs that are built on top of
it, but it's also great for adults,

1227
01:31:53.319 --> 01:31:58.600
so Fate Accelerated Edition FAE is great. And I also highly recommend Tales

1228
01:31:58.640 --> 01:32:02.560
from the Loop, which is absolutely
fantastic. It's like free music you can

1229
01:32:02.560 --> 01:32:08.159
find online that goes with that.
There's great imagery that you can use with

1230
01:32:08.199 --> 01:32:10.840
it. But it's basically kind of
like a cross between Stranger Things and The

1231
01:32:10.840 --> 01:32:17.960
Goodies where your kids solve the mysteries. Absolutely wonderful RPG Tales from the Loop,

1232
01:32:18.039 --> 01:32:20.720
and there was also a TV show. It's based on some art some

1233
01:32:20.880 --> 01:32:26.399
artwork and things, but the RPG
is is absolutely fantastic way to get into

1234
01:32:26.439 --> 01:32:30.119
it. So those are my picks. Awesome, I kind of expected you

1235
01:32:30.159 --> 01:32:33.079
to pick gloom Haven or something,
you know. I am. I like

1236
01:32:33.159 --> 01:32:38.159
my big heavy board games. I'm
a big assertive guy. I've actually I

1237
01:32:38.199 --> 01:32:41.479
have some stuff out there I've built. If you go to games with Tony

1238
01:32:41.520 --> 01:32:44.960
dot Com, I've I've built helpers
and solo modes and stuff like that.

1239
01:32:45.960 --> 01:32:50.399
But I am I really love certain
themes. I love sci fi, Okay,

1240
01:32:50.680 --> 01:32:55.520
I love adventure. Those are themes
that really appeal to me. Awesome.

1241
01:32:56.199 --> 01:32:58.359
Yeah, well, next time,
we're both at a conference. We'll

1242
01:32:58.359 --> 01:33:01.000
have to fit whatever game we can
in our bags and see how it goes.

1243
01:33:01.640 --> 01:33:04.680
Sounds good, all right, Well
thanks for coming. This was fun.

1244
01:33:04.840 --> 01:33:06.960
Yeah, I had a great time. Thank you for inviting me.

1245
01:33:08.199 --> 01:33:11.119
Yeah, it was excellent. Thank
you very much. All right, folks,

1246
01:33:11.119 --> 01:33:13.680
we're going to wrap it here until
next time. Max out

