1
00:00:05,390 --> 00:00:08,910
Jennifer Reif: You are listening to the
Breaktime Tech Talks podcast, a bite-sized
2
00:00:08,950 --> 00:00:13,489
tech podcast for busy developers where
we'll briefly cover technical topics, news
3
00:00:13,489 --> 00:00:15,749
snippets, and more in short time blocks.
4
00:00:16,230 --> 00:00:19,940
I'm your host, Jennifer Reif, an
avid developer and problem solver
5
00:00:20,149 --> 00:00:24,100
with special interest in data,
learning, and all things technology.
6
00:00:24,730 --> 00:00:28,400
When I started planning for this episode,
I was afraid that I wouldn't have
7
00:00:28,450 --> 00:00:33,290
much to talk about, but here I am with
what is looking like a full episode.
8
00:00:33,780 --> 00:00:37,380
An added bonus of documenting my
week through this podcast is that
9
00:00:37,430 --> 00:00:41,430
I actually sit down and realize the
things that I accomplish or even
10
00:00:41,430 --> 00:00:43,280
just chipped in on during the week.
11
00:00:43,750 --> 00:00:47,060
I've noticed a common pattern while
building code samples with large
12
00:00:47,060 --> 00:00:50,620
language models for the book, and
I also have a consistent part of my
13
00:00:50,620 --> 00:00:53,260
workflow where AI shortcuts my efforts.
14
00:00:53,800 --> 00:00:57,490
I have a few other projects I am juggling
that I'll mention, and then I found a
15
00:00:57,490 --> 00:01:01,630
relevant article that frames efforts
around technical learning, mentoring,
16
00:01:01,640 --> 00:01:03,490
and work in the current industry.
17
00:01:03,900 --> 00:01:07,360
Grab a cup of your favorite beverage,
or at least get settled in for a
18
00:01:07,360 --> 00:01:08,960
few minutes, and I'll fill you in.
19
00:01:10,342 --> 00:01:14,822
Starting us off, I have been working
on the book still, and that's a
20
00:01:14,822 --> 00:01:17,012
common theme that's been coming
up if you've been listening to the
21
00:01:17,012 --> 00:01:18,682
podcast for weeks or months now.
22
00:01:19,172 --> 00:01:24,902
If you're not familiar, it's an AI,
focused Java book, and I'm working
23
00:01:24,902 --> 00:01:28,322
with a large language model in order
to help build some of the code samples.
24
00:01:28,632 --> 00:01:32,622
As I'm assembling the prompts, I'm
testing those prompts multiple times
25
00:01:32,632 --> 00:01:33,962
usually, maybe with some tweaks.
26
00:01:35,322 --> 00:01:38,722
And sometimes I just wanna adjust
my wording to make it a little bit
27
00:01:38,722 --> 00:01:42,872
more clear, either to the reader
or I don't wanna give too much
28
00:01:42,872 --> 00:01:46,132
context or too little context in
the way that I construct the prompt.
29
00:01:46,912 --> 00:01:53,362
Or sometimes I also want to direct the
LLM correctly or make the syntax a bit
30
00:01:53,362 --> 00:01:54,732
more clear to the large language model.
31
00:01:55,012 --> 00:01:58,412
So I will back out the changes
and run things multiple times.
32
00:01:58,952 --> 00:02:02,922
Now, early on, several weeks,
months ago, I noticed that
33
00:02:03,872 --> 00:02:05,422
this was rather challenging.
34
00:02:05,432 --> 00:02:10,992
You would get in these inevitable loops
that the large language model would
35
00:02:10,992 --> 00:02:14,462
kinda get stuck in, your coding chat It
would kinda get stuck, and the more you
36
00:02:14,462 --> 00:02:18,132
would iterate, the more you would try
to fix things or try again or get it
37
00:02:18,132 --> 00:02:22,812
to do something it had generated before
but you'd backed out, the more it would
38
00:02:22,812 --> 00:02:25,292
just spiral and dig the hole worse.
39
00:02:25,582 --> 00:02:28,082
Often you would have to clean
everything completely out.
40
00:02:28,112 --> 00:02:31,472
You'd have to close the entire application
down, try to let it clear its context a
41
00:02:31,472 --> 00:02:33,632
bit, and then come back and reapproach it.
42
00:02:33,892 --> 00:02:36,662
Not only was your brain a little bit
fresher and coming from a different
43
00:02:36,662 --> 00:02:41,322
perspective, but the large language
model also kinda cleared some of
44
00:02:41,322 --> 00:02:43,782
that looping context out a bit.
45
00:02:44,152 --> 00:02:47,022
And then things would go
usually a little bit better.
46
00:02:47,372 --> 00:02:54,282
I have noticed that, inevitably, as you
run something multiple times, the code
47
00:02:54,282 --> 00:03:00,122
that gets generated slightly alters
each time that you run that same prompt.
48
00:03:00,142 --> 00:03:05,282
So if you have something, you remove
the changes, you tweak the prompt a
49
00:03:05,282 --> 00:03:11,082
little bit, you run it again, even if
the output should be pretty consistent-
50
00:03:11,888 --> 00:03:16,098
it's almost like it thinks that, "Oh,
she didn't like the code written this
51
00:03:16,098 --> 00:03:20,648
way. Maybe she wanted it written this
way instead." And so very minor tweaks,
52
00:03:20,648 --> 00:03:26,278
like syntax squabbles really, of maybe
I need to add this extra variable here,
53
00:03:26,278 --> 00:03:29,498
or maybe the print statement should
be more like this, or maybe she wants
54
00:03:29,498 --> 00:03:31,718
a for loop versus a, something else.
55
00:03:31,718 --> 00:03:32,098
Who knows?
56
00:03:32,928 --> 00:03:37,198
This can be really nice when I'm looking
for something specific, and the initial
57
00:03:37,198 --> 00:03:38,938
run or two isn't getting me there.
58
00:03:39,518 --> 00:03:44,338
But this can also be a bit annoying
when the initial code is exactly how
59
00:03:44,338 --> 00:03:45,798
I would write it and what I wanted.
60
00:03:46,188 --> 00:03:49,688
I just want to verify a
tweak in the prompt doesn't
61
00:03:49,998 --> 00:03:51,938
change that output too much.
62
00:03:52,518 --> 00:03:56,488
And so then you're left with, actually,
I liked the way it was generated the
63
00:03:56,488 --> 00:04:00,118
first time around, but now if I tweak
this prompt just a little bit to make
64
00:04:00,118 --> 00:04:05,168
the prompt better, now I'm getting
slightly altered syntax, even though
65
00:04:05,268 --> 00:04:06,808
they practically do the same thing.
66
00:04:06,808 --> 00:04:09,038
It's almost like it just has
changed very minor things.
67
00:04:09,918 --> 00:04:14,798
Another nice feature, at least in Copilot
right now, is that I can restore at a
68
00:04:14,798 --> 00:04:20,898
specific checkpoint, which I'm guessing
under the hood is like chopping the memory
69
00:04:20,898 --> 00:04:22,598
and the code back to a certain spot.
70
00:04:23,288 --> 00:04:28,028
This has been working really well for
regenerating a code example, because
71
00:04:28,218 --> 00:04:32,568
hopefully, at least in my mind,
it clears out the context that can
72
00:04:32,568 --> 00:04:35,428
sometimes muddy the large language
model's generation capabilities.
73
00:04:35,728 --> 00:04:39,148
So restoring from checkpoint is
like hitting the Back button on your
74
00:04:39,148 --> 00:04:44,818
browser or like a Go Back or Undo,
where it chops that back and starts
75
00:04:44,828 --> 00:04:46,318
fresh at a previous point in time.
76
00:04:47,008 --> 00:04:51,288
This can be really helpful when I wanna
go back to before I even ran a certain
77
00:04:51,288 --> 00:04:58,118
prompt and try it fresh with a corrected
syntax or an adjusted wording on my part,
78
00:04:58,578 --> 00:05:02,368
and hopefully that clears all that out
and lets it generate something better,
79
00:05:02,418 --> 00:05:07,368
cleaner, maybe the same code that it
initially generated, but I had to improve
80
00:05:07,368 --> 00:05:09,598
my prompt before it could get there.
81
00:05:10,938 --> 00:05:11,948
All right, so that's that one.
82
00:05:12,288 --> 00:05:18,726
Another one is that I've found myself
defaulting to a specific use of AI in
83
00:05:18,726 --> 00:05:21,276
my workflow throughout different tasks.
84
00:05:21,326 --> 00:05:26,256
One of the strongest uses
where I plug AI in right now is
85
00:05:26,376 --> 00:05:28,066
organizing my ideas on something.
86
00:05:28,976 --> 00:05:33,616
Through school and throughout training,
you might see advice that you brain
87
00:05:33,616 --> 00:05:37,146
dump first, and then you organize your
thoughts after you get them down on paper.
88
00:05:38,076 --> 00:05:41,906
You start just brain dumping everything,
and then you organize those and put those
89
00:05:41,906 --> 00:05:44,036
into actual comprehensible thoughts.
90
00:05:44,946 --> 00:05:51,366
I've noticed myself doing this with AI,
giving the, a chat model a, my brain dump
91
00:05:51,746 --> 00:05:55,986
and then working back and forth with the
chat model to organize those thoughts.
92
00:05:56,866 --> 00:06:00,916
When I want to communicate something,
whether that's writing or putting together
93
00:06:01,266 --> 00:06:04,136
a paragraph, I will brain dump my idea.
94
00:06:04,136 --> 00:06:04,896
Here's what I want.
95
00:06:04,896 --> 00:06:05,626
Here's the tone.
96
00:06:05,626 --> 00:06:06,616
Here's what I'm thinking.
97
00:06:07,426 --> 00:06:08,686
How should I structure this?
98
00:06:08,706 --> 00:06:10,446
Or what do you think about this?
99
00:06:10,466 --> 00:06:15,306
How should I incorporate this thought into
this post that I already put together?
100
00:06:15,736 --> 00:06:19,856
And it does a pretty good job sorting
and organizing through things, and
101
00:06:19,856 --> 00:06:23,546
then I can clean that up and fill
in the blanks and refine that.
102
00:06:23,596 --> 00:06:27,386
I do find that I go back and forth
quite a bit, refining those ideas
103
00:06:27,386 --> 00:06:30,526
in the chat until I come up with
something that I really want.
104
00:06:30,836 --> 00:06:32,716
For instance, when I'm
trying to outline something.
105
00:06:32,756 --> 00:06:34,486
Let's take a blog post as an example.
106
00:06:34,946 --> 00:06:36,476
I will dump a bunch of ideas.
107
00:06:36,476 --> 00:06:38,776
Hey, I want to talk about this
thing and that thing, and here's,
108
00:06:38,806 --> 00:06:41,566
I really found this perspective
on this topic really cool.
109
00:06:41,566 --> 00:06:45,676
I want to make sure I plug that in
there, And I'll dump all that in and
110
00:06:45,676 --> 00:06:49,086
then work through, and it'll take all
that information and summarize it and
111
00:06:49,086 --> 00:06:51,416
put it together in a structured format.
112
00:06:51,776 --> 00:06:54,356
And then I go back and go, "Eh,
oh, I don't really care for this.
113
00:06:54,356 --> 00:06:55,406
Let me tweak this.
114
00:06:55,406 --> 00:06:56,476
Let me move this around.
115
00:06:56,896 --> 00:07:01,326
I'd really like to take this perspective
or this angle on this section," and so on.
116
00:07:01,876 --> 00:07:06,566
And I work through something until
I refine that and put together a
117
00:07:06,566 --> 00:07:10,306
nice list of ideas or an outline
or whatever it happens to be.
118
00:07:12,046 --> 00:07:13,756
Then I actually go back
and write the content.
119
00:07:13,786 --> 00:07:17,956
The chat tools really just help me
organize my thoughts better and faster
120
00:07:17,966 --> 00:07:22,976
than if I had to do that all by hand, as
I used to do when I would write papers
121
00:07:23,016 --> 00:07:28,426
and essays and long-form communications,
earlier on in my career and in my studies.
122
00:07:29,882 --> 00:07:33,862
To change topics here, I don't
really have a pet project right now.
123
00:07:34,602 --> 00:07:38,812
And yes, I do currently have a book
that I'm writing, which does leave very
124
00:07:38,812 --> 00:07:40,182
little room for additional projects.
125
00:07:40,562 --> 00:07:45,432
But I have felt like a lot of people
have pet projects going on that are
126
00:07:45,432 --> 00:07:50,412
really cool and really interesting, and
they're really excited about, and I just
127
00:07:50,412 --> 00:07:53,212
didn't feel like I really had something.
128
00:07:53,702 --> 00:07:57,842
I've got this Goodreads project that
I've been working on, and there are
129
00:07:57,842 --> 00:08:01,292
several more capabilities and features
that I really wanna add to that, that
130
00:08:01,292 --> 00:08:02,502
I'm starting to get excited about.
131
00:08:02,822 --> 00:08:04,502
Again, just finding the time.
132
00:08:05,222 --> 00:08:07,942
But this week, I bubbled
up another fun idea.
133
00:08:09,310 --> 00:08:12,910
I have another personal improvement
project that I'm thinking about building.
134
00:08:12,940 --> 00:08:16,940
I don't really wanna drop any spoilers
just yet, but hopefully I will have
135
00:08:16,940 --> 00:08:21,510
some time to at least start on a few
of the initial steps soon, and at
136
00:08:21,510 --> 00:08:24,210
that point, I'm happy to fill you
in and give you some more details.
137
00:08:24,600 --> 00:08:29,010
They always tell you to build the app
that you feel would help yourself out,
138
00:08:29,870 --> 00:08:34,080
but I always felt like there was an
existing solution for everything, or that
139
00:08:34,080 --> 00:08:38,190
I had a decent enough process or set of
tools to handle the things that I did.
140
00:08:38,580 --> 00:08:44,850
Never really saw a perfect opportunity,
but I may have found one as a way to
141
00:08:44,860 --> 00:08:51,250
optimize something that I'm working on in
daily, monthly, yearly, quarterly life.
142
00:08:51,990 --> 00:08:53,460
So I'll fill you in on that soon.
143
00:08:54,300 --> 00:08:55,880
The other things that are on my plate.
144
00:08:55,910 --> 00:09:01,790
I have, Nodes session review, which I
wrapped up my piece of that, so some NODES
145
00:09:01,820 --> 00:09:03,520
updates hopefully will be coming soon.
146
00:09:03,540 --> 00:09:06,940
I will keep you informed on the next
steps and what's going on there.
147
00:09:07,740 --> 00:09:11,990
We also have some updates and review
coming for the Knowledge Graph e-book.
148
00:09:12,340 --> 00:09:15,380
If you're not familiar, I helped
co-author an e-book several
149
00:09:15,380 --> 00:09:17,130
months ago that was released.
150
00:09:17,200 --> 00:09:20,330
But a lot has changed in the last
several months, so we're looking at
151
00:09:20,370 --> 00:09:24,190
refreshing some of that and getting
that up to date and having a launch or
152
00:09:24,190 --> 00:09:26,900
a refresh release on that coming soon.
153
00:09:26,910 --> 00:09:28,460
I'll… Again, I'll keep you informed.
154
00:09:28,840 --> 00:09:31,800
And then I have some more short
form content coming soon, which
155
00:09:31,800 --> 00:09:32,850
I'm kind of excited about.
156
00:09:33,040 --> 00:09:37,210
I've always wanted to do a little bit
more video work, and this would give
157
00:09:37,210 --> 00:09:38,580
me some opportunities to do that.
158
00:09:39,290 --> 00:09:42,110
I'm working through drafting
some of my ideas right now.
159
00:09:42,110 --> 00:09:46,670
I just need to sit down and record and do
some post-processing work on those before
160
00:09:46,670 --> 00:09:48,740
they will hopefully be ready to go out.
161
00:09:49,530 --> 00:09:55,070
The article that I read this week is
called Read Less, Steer More by Ezyang.
162
00:09:55,610 --> 00:09:58,190
The whole site in general
is pretty minimalist.
163
00:09:58,230 --> 00:09:59,880
It's a list of blog posts.
164
00:10:00,270 --> 00:10:04,850
However, I really thought this article
was short and sweet and had a couple
165
00:10:04,850 --> 00:10:06,250
of little tidbits that were nice.
166
00:10:07,180 --> 00:10:13,370
First is that overall, it talks about the
mentoring perspective on how to read code.
167
00:10:13,580 --> 00:10:18,860
This person was mentoring some
people on how to read code and
168
00:10:18,860 --> 00:10:23,984
review the code, because we're
writing less code by hand, right?
169
00:10:23,984 --> 00:10:27,094
We tend to let coding
agents do those things.
170
00:10:27,394 --> 00:10:32,334
Then we spend more time reviewing,
debugging, checking, tweaking code than we
171
00:10:32,334 --> 00:10:34,224
do writing all of the code from scratch.
172
00:10:34,974 --> 00:10:38,074
The author recommends actually
communicating with the large
173
00:10:38,074 --> 00:10:42,124
language model to have it justify
or explain its code in bits.
174
00:10:42,754 --> 00:10:47,784
Now, I find that this is really
interesting that this piece is shifting.
175
00:10:48,044 --> 00:10:53,294
Before, when I would review code at
least, probably others have been in the
176
00:10:53,294 --> 00:10:58,064
same boat as well, we might hesitate
to ask the original developer questions
177
00:10:58,334 --> 00:11:02,854
because we don't want to appear inept or
like we don't understand something, or
178
00:11:02,854 --> 00:11:07,484
like we're being a bother or questioning
the process or over-questioning
179
00:11:07,504 --> 00:11:08,564
the changes that were made.
180
00:11:09,194 --> 00:11:12,284
Sometimes we might ask a question or
two, but we don't dig in too deeply.
181
00:11:12,634 --> 00:11:17,794
However, with an LLM, that
inhibition is much less, and I have
182
00:11:17,794 --> 00:11:19,654
found this to be true of myself.
183
00:11:19,714 --> 00:11:23,524
When I walk through coding changes
or I'm working with a coding agent to
184
00:11:23,544 --> 00:11:31,134
build something, I'm much less nervous
or actually not nervous at all to ask
185
00:11:31,134 --> 00:11:34,734
the large language model, "Hey, what is
this thing doing and why would we use
186
00:11:34,734 --> 00:11:38,644
that here? Wouldn't it be better to go
about this way?" With a human developer,
187
00:11:38,654 --> 00:11:42,084
I might not ask those questions, or
at least not near as many of them.
188
00:11:43,606 --> 00:11:46,736
I thought the recommendation in
the article was also good to turn
189
00:11:46,736 --> 00:11:50,096
off the auto-accept edits, and
even to write some code by hand,
190
00:11:50,096 --> 00:11:51,516
especially when you're starting out.
191
00:11:52,036 --> 00:11:55,956
I find this valuable personally
when I'm learning something brand
192
00:11:55,986 --> 00:12:00,616
new, and I really want to know and
understand the ins and outs of it.
193
00:12:01,086 --> 00:12:05,066
Something that is a one-off project,
maybe It's just like a hack together,
194
00:12:05,146 --> 00:12:09,296
get me someplace really quickly,
then I might not care as much.
195
00:12:09,566 --> 00:12:12,796
But if I'm trying to learn something
specific about how an integration
196
00:12:12,796 --> 00:12:19,556
works or how something in Java works,
I'm much more interested in learning
197
00:12:19,556 --> 00:12:23,226
the foundations and understanding
what's going in and how it's working.
198
00:12:24,056 --> 00:12:26,916
When you are learning something,
it can be extremely beneficial to
199
00:12:26,916 --> 00:12:30,276
do it by hand once or a few times
until you get the feel of it.
200
00:12:30,836 --> 00:12:36,466
As an example, when I was learning an
instrument growing up, I would practice
201
00:12:36,466 --> 00:12:42,416
something new very slowly, and if it
was really complicated, I would break it
202
00:12:42,416 --> 00:12:48,236
apart and focus on the form in this way,
and then the tone, and then moving in a
203
00:12:48,246 --> 00:12:50,436
specific way to get this particular sound.
204
00:12:51,236 --> 00:12:54,226
And you assemble all those pieces
together, and eventually you can
205
00:12:54,226 --> 00:12:55,366
play it fast without thinking.
206
00:12:55,846 --> 00:12:59,526
But if you dive right into something
new, and you expect to be able to play
207
00:12:59,526 --> 00:13:03,406
it like a professional performing on
stage, you're just not going to get there.
208
00:13:03,456 --> 00:13:04,756
It's the same thing with coding.
209
00:13:05,096 --> 00:13:09,506
You don't necessarily want to dive in
and use a coding agent to build something
210
00:13:09,506 --> 00:13:10,916
from scratch right out of the gate.
211
00:13:11,216 --> 00:13:15,316
If you really want to understand those
specific pieces of whatever you're working
212
00:13:15,316 --> 00:13:19,046
on or the technologies you're using, then
you need to build some of those pieces
213
00:13:19,246 --> 00:13:23,216
by hand or at least some lines of it to
understand how all that fits together.
214
00:13:24,536 --> 00:13:25,816
I thought of this analogy.
215
00:13:25,816 --> 00:13:27,716
Maybe agents are like riding a bike.
216
00:13:28,016 --> 00:13:31,806
You have to practice with training
wheels, now kids are often using balance
217
00:13:31,806 --> 00:13:36,636
bikes, first, and then you graduate
on up to using an bike with pedals and
218
00:13:36,636 --> 00:13:40,186
brakes, and maybe you start working
on tricks, but you can't start there.
219
00:13:41,346 --> 00:13:45,276
This also encourages me because
my recent GraphRAG training still
220
00:13:45,276 --> 00:13:49,786
focuses on the inner workings of how
retrieval-augmented generation works.
221
00:13:50,536 --> 00:13:55,416
So it starts with very manual, here's
how this is working under the hood, even
222
00:13:55,416 --> 00:14:01,356
though there are lots of nice abstractions
on top that simplify the interactions.
223
00:14:01,606 --> 00:14:05,166
I wondered if that was still valuable
because I just gave that training
224
00:14:05,166 --> 00:14:09,476
a week or two ago, and I really
thought hard about do I want to
225
00:14:09,476 --> 00:14:11,783
shift the way that I workshop this?
226
00:14:12,593 --> 00:14:19,553
Is this hands-on, down in the weeds
code still valuable since many people
227
00:14:19,553 --> 00:14:25,343
are now working with far more complex
architectures, things like agents and MCP
228
00:14:25,383 --> 00:14:27,403
and memory and all sorts of other things.
229
00:14:27,613 --> 00:14:30,923
However, I do find it incredibly
valuable to back up and learn
230
00:14:30,923 --> 00:14:34,643
those building blocks, and then
you can build the skyscraper, and
231
00:14:34,643 --> 00:14:35,973
this article reminded me of that.
232
00:14:35,993 --> 00:14:36,953
I really enjoy this.
233
00:14:36,993 --> 00:14:39,013
I hope you get some value out of this too.
234
00:14:39,486 --> 00:14:42,076
This week, I picked up
some recurring themes.
235
00:14:42,486 --> 00:14:45,636
AI can get stuck in a tweaking
loop when faced with repetitive
236
00:14:45,636 --> 00:14:48,596
prompt testing, but there are a
couple of tools to handle that.
237
00:14:49,146 --> 00:14:51,666
I also turn to chat models
to organize my thoughts.
238
00:14:52,126 --> 00:14:55,406
Finally, I read a short article that
gave me a good perspective on how
239
00:14:55,406 --> 00:14:57,186
learning and mentoring is shifting.
240
00:14:57,596 --> 00:15:00,606
The weight of coding skills might
be less but the article gave some
241
00:15:00,616 --> 00:15:02,516
insight into how we review code.
242
00:15:02,986 --> 00:15:04,796
Thanks for listening, and happy coding.
00:00:05,390 --> 00:00:08,910
Jennifer Reif: You are listening to the
Breaktime Tech Talks podcast, a bite-sized
2
00:00:08,950 --> 00:00:13,489
tech podcast for busy developers where
we'll briefly cover technical topics, news
3
00:00:13,489 --> 00:00:15,749
snippets, and more in short time blocks.
4
00:00:16,230 --> 00:00:19,940
I'm your host, Jennifer Reif, an
avid developer and problem solver
5
00:00:20,149 --> 00:00:24,100
with special interest in data,
learning, and all things technology.
6
00:00:24,730 --> 00:00:28,400
When I started planning for this episode,
I was afraid that I wouldn't have
7
00:00:28,450 --> 00:00:33,290
much to talk about, but here I am with
what is looking like a full episode.
8
00:00:33,780 --> 00:00:37,380
An added bonus of documenting my
week through this podcast is that
9
00:00:37,430 --> 00:00:41,430
I actually sit down and realize the
things that I accomplish or even
10
00:00:41,430 --> 00:00:43,280
just chipped in on during the week.
11
00:00:43,750 --> 00:00:47,060
I've noticed a common pattern while
building code samples with large
12
00:00:47,060 --> 00:00:50,620
language models for the book, and
I also have a consistent part of my
13
00:00:50,620 --> 00:00:53,260
workflow where AI shortcuts my efforts.
14
00:00:53,800 --> 00:00:57,490
I have a few other projects I am juggling
that I'll mention, and then I found a
15
00:00:57,490 --> 00:01:01,630
relevant article that frames efforts
around technical learning, mentoring,
16
00:01:01,640 --> 00:01:03,490
and work in the current industry.
17
00:01:03,900 --> 00:01:07,360
Grab a cup of your favorite beverage,
or at least get settled in for a
18
00:01:07,360 --> 00:01:08,960
few minutes, and I'll fill you in.
19
00:01:10,342 --> 00:01:14,822
Starting us off, I have been working
on the book still, and that's a
20
00:01:14,822 --> 00:01:17,012
common theme that's been coming
up if you've been listening to the
21
00:01:17,012 --> 00:01:18,682
podcast for weeks or months now.
22
00:01:19,172 --> 00:01:24,902
If you're not familiar, it's an AI,
focused Java book, and I'm working
23
00:01:24,902 --> 00:01:28,322
with a large language model in order
to help build some of the code samples.
24
00:01:28,632 --> 00:01:32,622
As I'm assembling the prompts, I'm
testing those prompts multiple times
25
00:01:32,632 --> 00:01:33,962
usually, maybe with some tweaks.
26
00:01:35,322 --> 00:01:38,722
And sometimes I just wanna adjust
my wording to make it a little bit
27
00:01:38,722 --> 00:01:42,872
more clear, either to the reader
or I don't wanna give too much
28
00:01:42,872 --> 00:01:46,132
context or too little context in
the way that I construct the prompt.
29
00:01:46,912 --> 00:01:53,362
Or sometimes I also want to direct the
LLM correctly or make the syntax a bit
30
00:01:53,362 --> 00:01:54,732
more clear to the large language model.
31
00:01:55,012 --> 00:01:58,412
So I will back out the changes
and run things multiple times.
32
00:01:58,952 --> 00:02:02,922
Now, early on, several weeks,
months ago, I noticed that
33
00:02:03,872 --> 00:02:05,422
this was rather challenging.
34
00:02:05,432 --> 00:02:10,992
You would get in these inevitable loops
that the large language model would
35
00:02:10,992 --> 00:02:14,462
kinda get stuck in, your coding chat It
would kinda get stuck, and the more you
36
00:02:14,462 --> 00:02:18,132
would iterate, the more you would try
to fix things or try again or get it
37
00:02:18,132 --> 00:02:22,812
to do something it had generated before
but you'd backed out, the more it would
38
00:02:22,812 --> 00:02:25,292
just spiral and dig the hole worse.
39
00:02:25,582 --> 00:02:28,082
Often you would have to clean
everything completely out.
40
00:02:28,112 --> 00:02:31,472
You'd have to close the entire application
down, try to let it clear its context a
41
00:02:31,472 --> 00:02:33,632
bit, and then come back and reapproach it.
42
00:02:33,892 --> 00:02:36,662
Not only was your brain a little bit
fresher and coming from a different
43
00:02:36,662 --> 00:02:41,322
perspective, but the large language
model also kinda cleared some of
44
00:02:41,322 --> 00:02:43,782
that looping context out a bit.
45
00:02:44,152 --> 00:02:47,022
And then things would go
usually a little bit better.
46
00:02:47,372 --> 00:02:54,282
I have noticed that, inevitably, as you
run something multiple times, the code
47
00:02:54,282 --> 00:03:00,122
that gets generated slightly alters
each time that you run that same prompt.
48
00:03:00,142 --> 00:03:05,282
So if you have something, you remove
the changes, you tweak the prompt a
49
00:03:05,282 --> 00:03:11,082
little bit, you run it again, even if
the output should be pretty consistent-
50
00:03:11,888 --> 00:03:16,098
it's almost like it thinks that, "Oh,
she didn't like the code written this
51
00:03:16,098 --> 00:03:20,648
way. Maybe she wanted it written this
way instead." And so very minor tweaks,
52
00:03:20,648 --> 00:03:26,278
like syntax squabbles really, of maybe
I need to add this extra variable here,
53
00:03:26,278 --> 00:03:29,498
or maybe the print statement should
be more like this, or maybe she wants
54
00:03:29,498 --> 00:03:31,718
a for loop versus a, something else.
55
00:03:31,718 --> 00:03:32,098
Who knows?
56
00:03:32,928 --> 00:03:37,198
This can be really nice when I'm looking
for something specific, and the initial
57
00:03:37,198 --> 00:03:38,938
run or two isn't getting me there.
58
00:03:39,518 --> 00:03:44,338
But this can also be a bit annoying
when the initial code is exactly how
59
00:03:44,338 --> 00:03:45,798
I would write it and what I wanted.
60
00:03:46,188 --> 00:03:49,688
I just want to verify a
tweak in the prompt doesn't
61
00:03:49,998 --> 00:03:51,938
change that output too much.
62
00:03:52,518 --> 00:03:56,488
And so then you're left with, actually,
I liked the way it was generated the
63
00:03:56,488 --> 00:04:00,118
first time around, but now if I tweak
this prompt just a little bit to make
64
00:04:00,118 --> 00:04:05,168
the prompt better, now I'm getting
slightly altered syntax, even though
65
00:04:05,268 --> 00:04:06,808
they practically do the same thing.
66
00:04:06,808 --> 00:04:09,038
It's almost like it just has
changed very minor things.
67
00:04:09,918 --> 00:04:14,798
Another nice feature, at least in Copilot
right now, is that I can restore at a
68
00:04:14,798 --> 00:04:20,898
specific checkpoint, which I'm guessing
under the hood is like chopping the memory
69
00:04:20,898 --> 00:04:22,598
and the code back to a certain spot.
70
00:04:23,288 --> 00:04:28,028
This has been working really well for
regenerating a code example, because
71
00:04:28,218 --> 00:04:32,568
hopefully, at least in my mind,
it clears out the context that can
72
00:04:32,568 --> 00:04:35,428
sometimes muddy the large language
model's generation capabilities.
73
00:04:35,728 --> 00:04:39,148
So restoring from checkpoint is
like hitting the Back button on your
74
00:04:39,148 --> 00:04:44,818
browser or like a Go Back or Undo,
where it chops that back and starts
75
00:04:44,828 --> 00:04:46,318
fresh at a previous point in time.
76
00:04:47,008 --> 00:04:51,288
This can be really helpful when I wanna
go back to before I even ran a certain
77
00:04:51,288 --> 00:04:58,118
prompt and try it fresh with a corrected
syntax or an adjusted wording on my part,
78
00:04:58,578 --> 00:05:02,368
and hopefully that clears all that out
and lets it generate something better,
79
00:05:02,418 --> 00:05:07,368
cleaner, maybe the same code that it
initially generated, but I had to improve
80
00:05:07,368 --> 00:05:09,598
my prompt before it could get there.
81
00:05:10,938 --> 00:05:11,948
All right, so that's that one.
82
00:05:12,288 --> 00:05:18,726
Another one is that I've found myself
defaulting to a specific use of AI in
83
00:05:18,726 --> 00:05:21,276
my workflow throughout different tasks.
84
00:05:21,326 --> 00:05:26,256
One of the strongest uses
where I plug AI in right now is
85
00:05:26,376 --> 00:05:28,066
organizing my ideas on something.
86
00:05:28,976 --> 00:05:33,616
Through school and throughout training,
you might see advice that you brain
87
00:05:33,616 --> 00:05:37,146
dump first, and then you organize your
thoughts after you get them down on paper.
88
00:05:38,076 --> 00:05:41,906
You start just brain dumping everything,
and then you organize those and put those
89
00:05:41,906 --> 00:05:44,036
into actual comprehensible thoughts.
90
00:05:44,946 --> 00:05:51,366
I've noticed myself doing this with AI,
giving the, a chat model a, my brain dump
91
00:05:51,746 --> 00:05:55,986
and then working back and forth with the
chat model to organize those thoughts.
92
00:05:56,866 --> 00:06:00,916
When I want to communicate something,
whether that's writing or putting together
93
00:06:01,266 --> 00:06:04,136
a paragraph, I will brain dump my idea.
94
00:06:04,136 --> 00:06:04,896
Here's what I want.
95
00:06:04,896 --> 00:06:05,626
Here's the tone.
96
00:06:05,626 --> 00:06:06,616
Here's what I'm thinking.
97
00:06:07,426 --> 00:06:08,686
How should I structure this?
98
00:06:08,706 --> 00:06:10,446
Or what do you think about this?
99
00:06:10,466 --> 00:06:15,306
How should I incorporate this thought into
this post that I already put together?
100
00:06:15,736 --> 00:06:19,856
And it does a pretty good job sorting
and organizing through things, and
101
00:06:19,856 --> 00:06:23,546
then I can clean that up and fill
in the blanks and refine that.
102
00:06:23,596 --> 00:06:27,386
I do find that I go back and forth
quite a bit, refining those ideas
103
00:06:27,386 --> 00:06:30,526
in the chat until I come up with
something that I really want.
104
00:06:30,836 --> 00:06:32,716
For instance, when I'm
trying to outline something.
105
00:06:32,756 --> 00:06:34,486
Let's take a blog post as an example.
106
00:06:34,946 --> 00:06:36,476
I will dump a bunch of ideas.
107
00:06:36,476 --> 00:06:38,776
Hey, I want to talk about this
thing and that thing, and here's,
108
00:06:38,806 --> 00:06:41,566
I really found this perspective
on this topic really cool.
109
00:06:41,566 --> 00:06:45,676
I want to make sure I plug that in
there, And I'll dump all that in and
110
00:06:45,676 --> 00:06:49,086
then work through, and it'll take all
that information and summarize it and
111
00:06:49,086 --> 00:06:51,416
put it together in a structured format.
112
00:06:51,776 --> 00:06:54,356
And then I go back and go, "Eh,
oh, I don't really care for this.
113
00:06:54,356 --> 00:06:55,406
Let me tweak this.
114
00:06:55,406 --> 00:06:56,476
Let me move this around.
115
00:06:56,896 --> 00:07:01,326
I'd really like to take this perspective
or this angle on this section," and so on.
116
00:07:01,876 --> 00:07:06,566
And I work through something until
I refine that and put together a
117
00:07:06,566 --> 00:07:10,306
nice list of ideas or an outline
or whatever it happens to be.
118
00:07:12,046 --> 00:07:13,756
Then I actually go back
and write the content.
119
00:07:13,786 --> 00:07:17,956
The chat tools really just help me
organize my thoughts better and faster
120
00:07:17,966 --> 00:07:22,976
than if I had to do that all by hand, as
I used to do when I would write papers
121
00:07:23,016 --> 00:07:28,426
and essays and long-form communications,
earlier on in my career and in my studies.
122
00:07:29,882 --> 00:07:33,862
To change topics here, I don't
really have a pet project right now.
123
00:07:34,602 --> 00:07:38,812
And yes, I do currently have a book
that I'm writing, which does leave very
124
00:07:38,812 --> 00:07:40,182
little room for additional projects.
125
00:07:40,562 --> 00:07:45,432
But I have felt like a lot of people
have pet projects going on that are
126
00:07:45,432 --> 00:07:50,412
really cool and really interesting, and
they're really excited about, and I just
127
00:07:50,412 --> 00:07:53,212
didn't feel like I really had something.
128
00:07:53,702 --> 00:07:57,842
I've got this Goodreads project that
I've been working on, and there are
129
00:07:57,842 --> 00:08:01,292
several more capabilities and features
that I really wanna add to that, that
130
00:08:01,292 --> 00:08:02,502
I'm starting to get excited about.
131
00:08:02,822 --> 00:08:04,502
Again, just finding the time.
132
00:08:05,222 --> 00:08:07,942
But this week, I bubbled
up another fun idea.
133
00:08:09,310 --> 00:08:12,910
I have another personal improvement
project that I'm thinking about building.
134
00:08:12,940 --> 00:08:16,940
I don't really wanna drop any spoilers
just yet, but hopefully I will have
135
00:08:16,940 --> 00:08:21,510
some time to at least start on a few
of the initial steps soon, and at
136
00:08:21,510 --> 00:08:24,210
that point, I'm happy to fill you
in and give you some more details.
137
00:08:24,600 --> 00:08:29,010
They always tell you to build the app
that you feel would help yourself out,
138
00:08:29,870 --> 00:08:34,080
but I always felt like there was an
existing solution for everything, or that
139
00:08:34,080 --> 00:08:38,190
I had a decent enough process or set of
tools to handle the things that I did.
140
00:08:38,580 --> 00:08:44,850
Never really saw a perfect opportunity,
but I may have found one as a way to
141
00:08:44,860 --> 00:08:51,250
optimize something that I'm working on in
daily, monthly, yearly, quarterly life.
142
00:08:51,990 --> 00:08:53,460
So I'll fill you in on that soon.
143
00:08:54,300 --> 00:08:55,880
The other things that are on my plate.
144
00:08:55,910 --> 00:09:01,790
I have, Nodes session review, which I
wrapped up my piece of that, so some NODES
145
00:09:01,820 --> 00:09:03,520
updates hopefully will be coming soon.
146
00:09:03,540 --> 00:09:06,940
I will keep you informed on the next
steps and what's going on there.
147
00:09:07,740 --> 00:09:11,990
We also have some updates and review
coming for the Knowledge Graph e-book.
148
00:09:12,340 --> 00:09:15,380
If you're not familiar, I helped
co-author an e-book several
149
00:09:15,380 --> 00:09:17,130
months ago that was released.
150
00:09:17,200 --> 00:09:20,330
But a lot has changed in the last
several months, so we're looking at
151
00:09:20,370 --> 00:09:24,190
refreshing some of that and getting
that up to date and having a launch or
152
00:09:24,190 --> 00:09:26,900
a refresh release on that coming soon.
153
00:09:26,910 --> 00:09:28,460
I'll… Again, I'll keep you informed.
154
00:09:28,840 --> 00:09:31,800
And then I have some more short
form content coming soon, which
155
00:09:31,800 --> 00:09:32,850
I'm kind of excited about.
156
00:09:33,040 --> 00:09:37,210
I've always wanted to do a little bit
more video work, and this would give
157
00:09:37,210 --> 00:09:38,580
me some opportunities to do that.
158
00:09:39,290 --> 00:09:42,110
I'm working through drafting
some of my ideas right now.
159
00:09:42,110 --> 00:09:46,670
I just need to sit down and record and do
some post-processing work on those before
160
00:09:46,670 --> 00:09:48,740
they will hopefully be ready to go out.
161
00:09:49,530 --> 00:09:55,070
The article that I read this week is
called Read Less, Steer More by Ezyang.
162
00:09:55,610 --> 00:09:58,190
The whole site in general
is pretty minimalist.
163
00:09:58,230 --> 00:09:59,880
It's a list of blog posts.
164
00:10:00,270 --> 00:10:04,850
However, I really thought this article
was short and sweet and had a couple
165
00:10:04,850 --> 00:10:06,250
of little tidbits that were nice.
166
00:10:07,180 --> 00:10:13,370
First is that overall, it talks about the
mentoring perspective on how to read code.
167
00:10:13,580 --> 00:10:18,860
This person was mentoring some
people on how to read code and
168
00:10:18,860 --> 00:10:23,984
review the code, because we're
writing less code by hand, right?
169
00:10:23,984 --> 00:10:27,094
We tend to let coding
agents do those things.
170
00:10:27,394 --> 00:10:32,334
Then we spend more time reviewing,
debugging, checking, tweaking code than we
171
00:10:32,334 --> 00:10:34,224
do writing all of the code from scratch.
172
00:10:34,974 --> 00:10:38,074
The author recommends actually
communicating with the large
173
00:10:38,074 --> 00:10:42,124
language model to have it justify
or explain its code in bits.
174
00:10:42,754 --> 00:10:47,784
Now, I find that this is really
interesting that this piece is shifting.
175
00:10:48,044 --> 00:10:53,294
Before, when I would review code at
least, probably others have been in the
176
00:10:53,294 --> 00:10:58,064
same boat as well, we might hesitate
to ask the original developer questions
177
00:10:58,334 --> 00:11:02,854
because we don't want to appear inept or
like we don't understand something, or
178
00:11:02,854 --> 00:11:07,484
like we're being a bother or questioning
the process or over-questioning
179
00:11:07,504 --> 00:11:08,564
the changes that were made.
180
00:11:09,194 --> 00:11:12,284
Sometimes we might ask a question or
two, but we don't dig in too deeply.
181
00:11:12,634 --> 00:11:17,794
However, with an LLM, that
inhibition is much less, and I have
182
00:11:17,794 --> 00:11:19,654
found this to be true of myself.
183
00:11:19,714 --> 00:11:23,524
When I walk through coding changes
or I'm working with a coding agent to
184
00:11:23,544 --> 00:11:31,134
build something, I'm much less nervous
or actually not nervous at all to ask
185
00:11:31,134 --> 00:11:34,734
the large language model, "Hey, what is
this thing doing and why would we use
186
00:11:34,734 --> 00:11:38,644
that here? Wouldn't it be better to go
about this way?" With a human developer,
187
00:11:38,654 --> 00:11:42,084
I might not ask those questions, or
at least not near as many of them.
188
00:11:43,606 --> 00:11:46,736
I thought the recommendation in
the article was also good to turn
189
00:11:46,736 --> 00:11:50,096
off the auto-accept edits, and
even to write some code by hand,
190
00:11:50,096 --> 00:11:51,516
especially when you're starting out.
191
00:11:52,036 --> 00:11:55,956
I find this valuable personally
when I'm learning something brand
192
00:11:55,986 --> 00:12:00,616
new, and I really want to know and
understand the ins and outs of it.
193
00:12:01,086 --> 00:12:05,066
Something that is a one-off project,
maybe It's just like a hack together,
194
00:12:05,146 --> 00:12:09,296
get me someplace really quickly,
then I might not care as much.
195
00:12:09,566 --> 00:12:12,796
But if I'm trying to learn something
specific about how an integration
196
00:12:12,796 --> 00:12:19,556
works or how something in Java works,
I'm much more interested in learning
197
00:12:19,556 --> 00:12:23,226
the foundations and understanding
what's going in and how it's working.
198
00:12:24,056 --> 00:12:26,916
When you are learning something,
it can be extremely beneficial to
199
00:12:26,916 --> 00:12:30,276
do it by hand once or a few times
until you get the feel of it.
200
00:12:30,836 --> 00:12:36,466
As an example, when I was learning an
instrument growing up, I would practice
201
00:12:36,466 --> 00:12:42,416
something new very slowly, and if it
was really complicated, I would break it
202
00:12:42,416 --> 00:12:48,236
apart and focus on the form in this way,
and then the tone, and then moving in a
203
00:12:48,246 --> 00:12:50,436
specific way to get this particular sound.
204
00:12:51,236 --> 00:12:54,226
And you assemble all those pieces
together, and eventually you can
205
00:12:54,226 --> 00:12:55,366
play it fast without thinking.
206
00:12:55,846 --> 00:12:59,526
But if you dive right into something
new, and you expect to be able to play
207
00:12:59,526 --> 00:13:03,406
it like a professional performing on
stage, you're just not going to get there.
208
00:13:03,456 --> 00:13:04,756
It's the same thing with coding.
209
00:13:05,096 --> 00:13:09,506
You don't necessarily want to dive in
and use a coding agent to build something
210
00:13:09,506 --> 00:13:10,916
from scratch right out of the gate.
211
00:13:11,216 --> 00:13:15,316
If you really want to understand those
specific pieces of whatever you're working
212
00:13:15,316 --> 00:13:19,046
on or the technologies you're using, then
you need to build some of those pieces
213
00:13:19,246 --> 00:13:23,216
by hand or at least some lines of it to
understand how all that fits together.
214
00:13:24,536 --> 00:13:25,816
I thought of this analogy.
215
00:13:25,816 --> 00:13:27,716
Maybe agents are like riding a bike.
216
00:13:28,016 --> 00:13:31,806
You have to practice with training
wheels, now kids are often using balance
217
00:13:31,806 --> 00:13:36,636
bikes, first, and then you graduate
on up to using an bike with pedals and
218
00:13:36,636 --> 00:13:40,186
brakes, and maybe you start working
on tricks, but you can't start there.
219
00:13:41,346 --> 00:13:45,276
This also encourages me because
my recent GraphRAG training still
220
00:13:45,276 --> 00:13:49,786
focuses on the inner workings of how
retrieval-augmented generation works.
221
00:13:50,536 --> 00:13:55,416
So it starts with very manual, here's
how this is working under the hood, even
222
00:13:55,416 --> 00:14:01,356
though there are lots of nice abstractions
on top that simplify the interactions.
223
00:14:01,606 --> 00:14:05,166
I wondered if that was still valuable
because I just gave that training
224
00:14:05,166 --> 00:14:09,476
a week or two ago, and I really
thought hard about do I want to
225
00:14:09,476 --> 00:14:11,783
shift the way that I workshop this?
226
00:14:12,593 --> 00:14:19,553
Is this hands-on, down in the weeds
code still valuable since many people
227
00:14:19,553 --> 00:14:25,343
are now working with far more complex
architectures, things like agents and MCP
228
00:14:25,383 --> 00:14:27,403
and memory and all sorts of other things.
229
00:14:27,613 --> 00:14:30,923
However, I do find it incredibly
valuable to back up and learn
230
00:14:30,923 --> 00:14:34,643
those building blocks, and then
you can build the skyscraper, and
231
00:14:34,643 --> 00:14:35,973
this article reminded me of that.
232
00:14:35,993 --> 00:14:36,953
I really enjoy this.
233
00:14:36,993 --> 00:14:39,013
I hope you get some value out of this too.
234
00:14:39,486 --> 00:14:42,076
This week, I picked up
some recurring themes.
235
00:14:42,486 --> 00:14:45,636
AI can get stuck in a tweaking
loop when faced with repetitive
236
00:14:45,636 --> 00:14:48,596
prompt testing, but there are a
couple of tools to handle that.
237
00:14:49,146 --> 00:14:51,666
I also turn to chat models
to organize my thoughts.
238
00:14:52,126 --> 00:14:55,406
Finally, I read a short article that
gave me a good perspective on how
239
00:14:55,406 --> 00:14:57,186
learning and mentoring is shifting.
240
00:14:57,596 --> 00:15:00,606
The weight of coding skills might
be less but the article gave some
241
00:15:00,616 --> 00:15:02,516
insight into how we review code.
242
00:15:02,986 --> 00:15:04,796
Thanks for listening, and happy coding.