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:25,017 --> 00:00:28,377
Throughout this week, I've learned
Java on a deeper level through writing
7
00:00:28,377 --> 00:00:32,547
a book and am still ironing out
details for upcoming meetup tours.
8
00:00:32,887 --> 00:00:36,417
But a virtual session is scheduled
and ready to go for next week.
9
00:00:36,857 --> 00:00:41,217
Then I found a nice article with
another perspective on the fine line
10
00:00:41,227 --> 00:00:45,757
between using AI for superpowers
and letting the overlords take
11
00:00:45,757 --> 00:00:47,707
over without a single thought.
12
00:00:48,037 --> 00:00:49,477
I'll explain more in this episode.
13
00:00:49,837 --> 00:00:52,787
Let's start with the things
that I am learning through
14
00:00:52,807 --> 00:00:54,607
writing this AI Java book.
15
00:00:55,367 --> 00:00:59,127
The chapter that I'm working on
right now is on lambdas and streams.
16
00:00:59,537 --> 00:01:03,847
And while I've written several lambdas
and streams in my Java applications
17
00:01:03,847 --> 00:01:08,687
over the years, I've never really
dug into the internals or the proper
18
00:01:08,687 --> 00:01:12,247
terminology to attach to the different
things that I was doing with those.
19
00:01:12,967 --> 00:01:16,467
When people would mention lambdas or
streams, I would follow along with
20
00:01:16,467 --> 00:01:22,047
the conversation, but not fully grasp
all of the details and really what the
21
00:01:22,047 --> 00:01:26,557
things were doing and what all they
were talking about, how it functioned.
22
00:01:27,137 --> 00:01:31,057
This seems a little bit silly, but I
never really slowed down on those simple,
23
00:01:31,077 --> 00:01:35,797
basic foundations and relearned some
of what I was using on a regular basis.
24
00:01:36,154 --> 00:01:38,374
I learned about the Java
programming language through
25
00:01:38,404 --> 00:01:40,704
courses during my academic study.
26
00:01:41,094 --> 00:01:45,364
However, even if lambdas and streams
were available in the language at the
27
00:01:45,364 --> 00:01:49,874
time, it wasn't something that was
really well-covered or talked about
28
00:01:49,874 --> 00:01:55,754
from a problem-solving perspective or a
thorough understanding of this is when
29
00:01:55,764 --> 00:01:57,474
and how and why you would use these.
30
00:01:58,124 --> 00:02:02,384
So, let me perhaps fill in some of
the gaps in case you don't know.
31
00:02:02,424 --> 00:02:05,154
Some of the things that I have
surfaced in learning throughout
32
00:02:05,254 --> 00:02:06,174
the writing of this week.
33
00:02:06,874 --> 00:02:10,024
Lambdas are rules for
a processing pipeline.
34
00:02:10,944 --> 00:02:15,034
You often will construct these rules
for sorting, filtering, and other
35
00:02:15,034 --> 00:02:18,844
types of functions that will get
condensed into a small bit of code.
36
00:02:19,234 --> 00:02:21,404
Typically, lambdas are in one line.
37
00:02:22,084 --> 00:02:23,614
You've likely seen these before.
38
00:02:23,994 --> 00:02:27,614
Things with the arrow notation
that will extract a field from
39
00:02:27,614 --> 00:02:32,614
an object variable, or format a
string for the output, or select
40
00:02:32,644 --> 00:02:34,534
certain items with a specific value.
41
00:02:34,854 --> 00:02:36,954
All of those can be written as lambdas.
42
00:02:37,564 --> 00:02:41,574
Now, once we have the rule in place,
our lambda, then we might want to
43
00:02:41,574 --> 00:02:46,634
process collections, multiple items
of things in a list or a set or a
44
00:02:46,634 --> 00:02:52,944
group, through a series of steps that
will filter, transform, and/or collect
45
00:02:52,954 --> 00:02:55,214
those items into some specific shape.
46
00:02:55,714 --> 00:02:58,674
That is where the Java streams come in.
47
00:02:59,064 --> 00:03:03,704
The stream lets you assemble the pipeline
with those steps to process the items
48
00:03:03,714 --> 00:03:08,054
in that collection, and then the lambdas
will tell you what to do with each item.
49
00:03:08,164 --> 00:03:09,424
Those are your business rules.
50
00:03:10,584 --> 00:03:15,544
Both lambdas and streams are an excellent
example of declarative capabilities.
51
00:03:15,834 --> 00:03:20,634
Instead of expressing all of the code
to do the same functionality in an
52
00:03:20,634 --> 00:03:24,844
imperative syntax with for loops and
repetitive conditions to get the results
53
00:03:24,844 --> 00:03:29,254
that you want you can use Java lambdas
and streams to concisely declare the
54
00:03:29,324 --> 00:03:33,574
output that you want, and then the Java
language will handle the operation work.
55
00:03:34,744 --> 00:03:38,244
So again, these are tidbits that I
have picked up all throughout this week
56
00:03:38,254 --> 00:03:42,234
as I'm working through the chapter on
lambdas and streams in the Java book.
57
00:03:42,424 --> 00:03:46,164
It's a lot of exploration and deep
dives into these topics and these
58
00:03:46,174 --> 00:03:49,824
areas, how, when, and why you use these
different things, the different ways
59
00:03:49,834 --> 00:03:53,764
to construct them, why you would pick
one aspect over another, what you're
60
00:03:53,764 --> 00:03:58,374
trying to do, and the syntax that
goes along to accomplish that problem.
61
00:03:59,024 --> 00:04:02,574
I have found this really interesting,
and many, many examples of this
62
00:04:02,584 --> 00:04:06,174
throughout my writing that I hope
to bring about and share throughout
63
00:04:06,174 --> 00:04:08,194
the future episodes of this as well.
64
00:04:08,194 --> 00:04:11,704
And then, of course, once the book is
released, I can talk more in detail
65
00:04:11,724 --> 00:04:15,574
about the things that I learned
and covered and concepts and topics
66
00:04:15,574 --> 00:04:17,824
that are dedicated in the book.
67
00:04:18,724 --> 00:04:22,472
I do have other snapshots of things
that I've been working on this week.
68
00:04:22,512 --> 00:04:26,592
So I have made good progress on the Java
book, not just in the learning aspect,
69
00:04:26,592 --> 00:04:28,462
but actually progress on the writing.
70
00:04:29,162 --> 00:04:35,012
Just as I predicted last week, I mentioned
in last week's episode that progress
71
00:04:35,012 --> 00:04:39,182
was a little bit slower because I was
trying to frame and describe the opening
72
00:04:39,212 --> 00:04:43,352
of the new chapter, but I did figure
I would catch up this week once I got
73
00:04:43,352 --> 00:04:45,592
past that blank slate starting point.
74
00:04:45,662 --> 00:04:49,032
That's always the toughest part,
right, is to start something, to set
75
00:04:49,032 --> 00:04:53,582
the framing and set the stage for the
chapter, or for the paper, or whatever
76
00:04:53,582 --> 00:04:55,662
writing content piece you're working on.
77
00:04:56,182 --> 00:04:59,962
And the same thing is happening
this week since I started the
78
00:04:59,962 --> 00:05:01,592
opening last week and got that done.
79
00:05:01,912 --> 00:05:05,192
Now, I've beaten all of my
writing goals every day this week
80
00:05:05,222 --> 00:05:09,382
because I'm in the flow throughout
the middle of this chapter.
81
00:05:10,242 --> 00:05:14,362
I'm writing lots of pages, lots of
code examples back and forth, and
82
00:05:14,382 --> 00:05:17,982
everything is just right in the groove
and churning out really well right now.
83
00:05:18,802 --> 00:05:21,552
I also have a virtual meetup
that is happening next week
84
00:05:21,632 --> 00:05:23,722
for the Miami Java User Group.
85
00:05:23,742 --> 00:05:25,012
I will again link that.
86
00:05:25,022 --> 00:05:27,382
I believe I linked it in last week's
episode as well, but I'll link it as
87
00:05:27,382 --> 00:05:28,752
well in the show notes for this week's.
88
00:05:29,202 --> 00:05:29,902
Come join us.
89
00:05:29,932 --> 00:05:31,182
I will share the details.
90
00:05:31,352 --> 00:05:35,172
It's a virtual session, entirely
free, so if you want to sign up
91
00:05:35,172 --> 00:05:38,972
and join us, it'll be in the, the
evening time for East Coast US.
92
00:05:39,732 --> 00:05:42,182
We would love to have
you join us for that.
93
00:05:43,422 --> 00:05:47,392
I did have some time to read an article
this week, and the one that I read
94
00:05:47,442 --> 00:05:51,252
is a little bit on the longer side
than some of the ones that I read.
95
00:05:51,582 --> 00:05:59,642
But it talks more about the fine line
between AI and human development,
96
00:06:00,392 --> 00:06:04,832
specifically between cognitive
offloading and cognitive surrender.
97
00:06:05,352 --> 00:06:09,122
Now, one is a good thing
and viewed as very positive.
98
00:06:09,432 --> 00:06:14,512
The other one is less so, but again,
we just have to be careful where
99
00:06:14,592 --> 00:06:20,076
our perspective and our dedication
sits in this spectrum of cognitive
100
00:06:20,076 --> 00:06:21,656
offloading versus cognitive surrender.
101
00:06:22,156 --> 00:06:25,916
The author's perspective is not negative
and even includes a closing paragraph
102
00:06:25,926 --> 00:06:31,386
about how much improvement that his
work has seen in using these AI tools.
103
00:06:31,716 --> 00:06:36,106
But the author cautions against
accepting answers by rote and not
104
00:06:36,116 --> 00:06:37,526
thinking through them ourselves.
105
00:06:37,896 --> 00:06:41,166
As with anything, all of us
want to hit the easy button.
106
00:06:41,536 --> 00:06:44,626
We want to copy a smart
classmate's test answers.
107
00:06:44,896 --> 00:06:48,806
We would rather vote or regurgitate
political stances of family
108
00:06:48,806 --> 00:06:50,106
or friends or those around us.
109
00:06:50,406 --> 00:06:54,636
We copy-paste code, which also happened
before AI, by the way, with Stack
110
00:06:54,636 --> 00:06:57,156
Overflow, and accept it if the code works.
111
00:06:57,186 --> 00:06:58,606
We don't think anything more of it.
112
00:06:58,666 --> 00:07:02,346
Back in the old days before AI,
we would copy-paste the code from
113
00:07:02,346 --> 00:07:06,826
Stack Overflow, we'd drop it into
our program, we would run it.
114
00:07:06,976 --> 00:07:08,136
Hey, great, it works.
115
00:07:08,186 --> 00:07:09,016
Let's move on.
116
00:07:09,286 --> 00:07:12,766
We wouldn't take the time to break
that apart and tease it apart and
117
00:07:12,766 --> 00:07:15,856
really understand what the code was
trying to do, in a lot of cases.
118
00:07:16,206 --> 00:07:20,066
However, that lack of understanding
is what's problematic, and now that's
119
00:07:20,086 --> 00:07:22,126
even more so than probably before.
120
00:07:22,876 --> 00:07:26,836
It's easier to let the coding tools
make changes and then sanity check
121
00:07:26,836 --> 00:07:29,966
them without fully comprehending
or understanding what's going on.
122
00:07:30,656 --> 00:07:33,006
Or you can skip the steps
and just get it done.
123
00:07:33,076 --> 00:07:34,126
You're too busy.
124
00:07:34,126 --> 00:07:35,456
You've got too many things on your plate.
125
00:07:35,476 --> 00:07:37,516
Well, I'll just skip the
step of thorough review.
126
00:07:37,526 --> 00:07:39,846
I'll just check the
box and keep moving on.
127
00:07:40,496 --> 00:07:44,266
I'd rather get this accomplished and
hit my deadline than really understand
128
00:07:44,316 --> 00:07:46,186
and know what's going on in the code.
129
00:07:46,696 --> 00:07:49,336
The article talks about the
difference between cognitive
130
00:07:49,356 --> 00:07:51,136
offloading and cognitive surrender.
131
00:07:51,586 --> 00:07:55,606
I think of it like delegating, which is
actually a term that's used later in the
132
00:07:55,606 --> 00:07:59,856
article, versus completely giving up,
letting someone else completely take over.
133
00:08:00,880 --> 00:08:03,810
So that's the difference between
the offloading versus the surrender.
134
00:08:04,090 --> 00:08:07,420
There are a few areas that
cognitive surrender shows
135
00:08:07,430 --> 00:08:08,690
up in development right now.
136
00:08:09,010 --> 00:08:12,280
First is learning something
new, and here's a quote from
137
00:08:12,280 --> 00:08:13,290
the article that I really liked.
138
00:08:13,680 --> 00:08:18,470
"Engineers who used AI to generate code
while learning a new library scored
139
00:08:19,250 --> 00:08:23,000
17% lower on a follow-up comprehension
quiz than in the control group.
140
00:08:23,380 --> 00:08:27,360
Engineers who used AI for conceptual
inquiry," things like asking questions,
141
00:08:27,360 --> 00:08:29,170
exploring trade-offs, "held their ground."
142
00:08:29,960 --> 00:08:33,890
This is one that I can vouch for because
this is kind of the same thing as copy
143
00:08:33,900 --> 00:08:35,920
pasting from Stack Overflow pre-AI.
144
00:08:36,520 --> 00:08:40,100
It's easy to find something that works
and then not fully understand what it
145
00:08:40,100 --> 00:08:45,160
does or why it works, and you wouldn't
be able to remember that code or copy
146
00:08:45,160 --> 00:08:48,210
it from your brain knowing what you
needed to do for next time if you
147
00:08:48,210 --> 00:08:49,820
ran across that same problem again.
148
00:08:50,800 --> 00:08:53,320
Hello, lambdas and streams
that I talked about earlier.
149
00:08:53,360 --> 00:08:58,370
I can't fully well utilize those until
I really understand what the language is
150
00:08:58,380 --> 00:09:03,170
trying to do for lambdas and streams and
the use cases where I need and want them.
151
00:09:03,950 --> 00:09:08,190
The author also discusses the
concept of a calibration question.
152
00:09:08,920 --> 00:09:13,500
The question to keep asking yourself,
"Am I forming an independent view
153
00:09:13,500 --> 00:09:18,180
of this answer or just adopting the
agent's view wholesale? Those are
154
00:09:18,180 --> 00:09:21,040
different psychological acts that
look identical from the outside."
155
00:09:21,060 --> 00:09:22,360
This is a quote from the article.
156
00:09:22,610 --> 00:09:26,910
It's the same thing that you wanna
ask in a lot of different concepts and
157
00:09:26,910 --> 00:09:28,320
topics that you come across in life.
158
00:09:28,600 --> 00:09:31,780
Am I forming an independent view
of this answer, or am I just
159
00:09:31,780 --> 00:09:35,590
adopting whatever is popular or
common or what I hear around me?
160
00:09:36,240 --> 00:09:40,000
another question that I often
ask myself personally is, could
161
00:09:40,000 --> 00:09:41,370
I explain this to someone else?
162
00:09:41,770 --> 00:09:44,550
Could I present on it well
enough for someone to follow?
163
00:09:44,740 --> 00:09:47,050
In other words, stand up and
give a presentation on this.
164
00:09:47,240 --> 00:09:52,220
If these questions both answer yes for
me, then that's a great place to be.
165
00:09:52,270 --> 00:09:53,280
I know when to use them.
166
00:09:53,280 --> 00:09:53,790
I know how.
167
00:09:53,820 --> 00:09:56,100
I could explain them or
teach this to somebody else.
168
00:09:56,810 --> 00:10:00,480
This is one of those things that I can
now say that I've achieved with lambdas
169
00:10:00,510 --> 00:10:02,230
and streams as I'm writing the book.
170
00:10:02,630 --> 00:10:06,840
Another criteria the author puts under
this is notice when you're tired.
171
00:10:07,360 --> 00:10:12,110
I found this incredibly helpful and
one that I think often gets overlooked.
172
00:10:12,770 --> 00:10:16,380
The author says that you really need
to pay attention when you're tired and
173
00:10:16,380 --> 00:10:20,570
when you kind of turn off the brain
power, because fatigue will do that.
174
00:10:21,180 --> 00:10:25,540
I've always heard fatigue is the number
one enemy of really anything, whether
175
00:10:25,540 --> 00:10:27,760
that's parenting, development, et cetera.
176
00:10:28,000 --> 00:10:31,470
Wherever you need to make decisions,
fatigue is the one thing that will
177
00:10:31,470 --> 00:10:32,960
want to turn off that brain power.
178
00:10:33,230 --> 00:10:35,100
I think this is really
important to consider.
179
00:10:35,170 --> 00:10:39,623
If you're looking at the end of the
day, it might be less likely for you
180
00:10:39,623 --> 00:10:44,413
to cognitively review what the AI
coding tool is doing, and you might
181
00:10:44,413 --> 00:10:47,733
be more willing to just accept,
accept, accept and check those boxes.
182
00:10:48,323 --> 00:10:52,213
I've mentioned this on other topics, that
there is a fine line between the way we
183
00:10:52,213 --> 00:10:56,763
define and the way that we operate, and
this article makes that same statement.
184
00:10:57,273 --> 00:11:01,103
The author says, here's a quote,
"The posture matters, and we
185
00:11:01,103 --> 00:11:02,433
don't talk about it nearly enough.
186
00:11:03,183 --> 00:11:05,173
Cognitive offloading is a superpower.
187
00:11:05,563 --> 00:11:08,793
Cognitive surrender is the
failure mode of using it without
188
00:11:08,823 --> 00:11:10,193
noticing the line between them.
189
00:11:10,563 --> 00:11:14,603
The job increasingly is to stay calibrated
about which side of that line you're
190
00:11:14,603 --> 00:11:16,473
standing on at any given moment."
191
00:11:16,823 --> 00:11:19,523
Throughout the day, throughout the week,
throughout the month, depending on the
192
00:11:19,523 --> 00:11:24,863
season, you might be more or less likely
to give in to cognitive surrender.
193
00:11:25,003 --> 00:11:28,143
But we really need to monitor this
and stay on top of this and make
194
00:11:28,143 --> 00:11:32,613
sure that we are looking for ways to
cognitively offload, in other words,
195
00:11:32,613 --> 00:11:37,843
to delegate to our A-AI coding tools,
rather than just handing over the
196
00:11:37,863 --> 00:11:41,053
responsibility and accountability
and all of the work to the AI.
197
00:11:41,303 --> 00:11:45,023
That's where things can really
get into negative spaces and
198
00:11:45,063 --> 00:11:47,947
potential downstream issues.
199
00:11:49,167 --> 00:11:52,327
This week surfaced a deeper
understanding of concepts in Java
200
00:11:52,357 --> 00:11:55,687
through writing a chapter on streams
and lambdas in the AI Java book.
201
00:11:56,057 --> 00:11:58,867
Then I have a virtual meetup
happening next week, and we'd
202
00:11:58,877 --> 00:12:00,077
love to have you join us.
203
00:12:00,407 --> 00:12:03,677
Finally, the article I read this week
discussed the difference between using
204
00:12:03,707 --> 00:12:08,587
AI tools for cognitive offloading or
delegation versus cognitive surrender,
205
00:12:08,637 --> 00:12:12,327
where you sacrifice your own decision,
encouraging us to think critically
206
00:12:12,327 --> 00:12:15,747
to improve our own work rather
than checking boxes for completion.
207
00:12:16,157 --> 00:12:17,937
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:25,017 --> 00:00:28,377
Throughout this week, I've learned
Java on a deeper level through writing
7
00:00:28,377 --> 00:00:32,547
a book and am still ironing out
details for upcoming meetup tours.
8
00:00:32,887 --> 00:00:36,417
But a virtual session is scheduled
and ready to go for next week.
9
00:00:36,857 --> 00:00:41,217
Then I found a nice article with
another perspective on the fine line
10
00:00:41,227 --> 00:00:45,757
between using AI for superpowers
and letting the overlords take
11
00:00:45,757 --> 00:00:47,707
over without a single thought.
12
00:00:48,037 --> 00:00:49,477
I'll explain more in this episode.
13
00:00:49,837 --> 00:00:52,787
Let's start with the things
that I am learning through
14
00:00:52,807 --> 00:00:54,607
writing this AI Java book.
15
00:00:55,367 --> 00:00:59,127
The chapter that I'm working on
right now is on lambdas and streams.
16
00:00:59,537 --> 00:01:03,847
And while I've written several lambdas
and streams in my Java applications
17
00:01:03,847 --> 00:01:08,687
over the years, I've never really
dug into the internals or the proper
18
00:01:08,687 --> 00:01:12,247
terminology to attach to the different
things that I was doing with those.
19
00:01:12,967 --> 00:01:16,467
When people would mention lambdas or
streams, I would follow along with
20
00:01:16,467 --> 00:01:22,047
the conversation, but not fully grasp
all of the details and really what the
21
00:01:22,047 --> 00:01:26,557
things were doing and what all they
were talking about, how it functioned.
22
00:01:27,137 --> 00:01:31,057
This seems a little bit silly, but I
never really slowed down on those simple,
23
00:01:31,077 --> 00:01:35,797
basic foundations and relearned some
of what I was using on a regular basis.
24
00:01:36,154 --> 00:01:38,374
I learned about the Java
programming language through
25
00:01:38,404 --> 00:01:40,704
courses during my academic study.
26
00:01:41,094 --> 00:01:45,364
However, even if lambdas and streams
were available in the language at the
27
00:01:45,364 --> 00:01:49,874
time, it wasn't something that was
really well-covered or talked about
28
00:01:49,874 --> 00:01:55,754
from a problem-solving perspective or a
thorough understanding of this is when
29
00:01:55,764 --> 00:01:57,474
and how and why you would use these.
30
00:01:58,124 --> 00:02:02,384
So, let me perhaps fill in some of
the gaps in case you don't know.
31
00:02:02,424 --> 00:02:05,154
Some of the things that I have
surfaced in learning throughout
32
00:02:05,254 --> 00:02:06,174
the writing of this week.
33
00:02:06,874 --> 00:02:10,024
Lambdas are rules for
a processing pipeline.
34
00:02:10,944 --> 00:02:15,034
You often will construct these rules
for sorting, filtering, and other
35
00:02:15,034 --> 00:02:18,844
types of functions that will get
condensed into a small bit of code.
36
00:02:19,234 --> 00:02:21,404
Typically, lambdas are in one line.
37
00:02:22,084 --> 00:02:23,614
You've likely seen these before.
38
00:02:23,994 --> 00:02:27,614
Things with the arrow notation
that will extract a field from
39
00:02:27,614 --> 00:02:32,614
an object variable, or format a
string for the output, or select
40
00:02:32,644 --> 00:02:34,534
certain items with a specific value.
41
00:02:34,854 --> 00:02:36,954
All of those can be written as lambdas.
42
00:02:37,564 --> 00:02:41,574
Now, once we have the rule in place,
our lambda, then we might want to
43
00:02:41,574 --> 00:02:46,634
process collections, multiple items
of things in a list or a set or a
44
00:02:46,634 --> 00:02:52,944
group, through a series of steps that
will filter, transform, and/or collect
45
00:02:52,954 --> 00:02:55,214
those items into some specific shape.
46
00:02:55,714 --> 00:02:58,674
That is where the Java streams come in.
47
00:02:59,064 --> 00:03:03,704
The stream lets you assemble the pipeline
with those steps to process the items
48
00:03:03,714 --> 00:03:08,054
in that collection, and then the lambdas
will tell you what to do with each item.
49
00:03:08,164 --> 00:03:09,424
Those are your business rules.
50
00:03:10,584 --> 00:03:15,544
Both lambdas and streams are an excellent
example of declarative capabilities.
51
00:03:15,834 --> 00:03:20,634
Instead of expressing all of the code
to do the same functionality in an
52
00:03:20,634 --> 00:03:24,844
imperative syntax with for loops and
repetitive conditions to get the results
53
00:03:24,844 --> 00:03:29,254
that you want you can use Java lambdas
and streams to concisely declare the
54
00:03:29,324 --> 00:03:33,574
output that you want, and then the Java
language will handle the operation work.
55
00:03:34,744 --> 00:03:38,244
So again, these are tidbits that I
have picked up all throughout this week
56
00:03:38,254 --> 00:03:42,234
as I'm working through the chapter on
lambdas and streams in the Java book.
57
00:03:42,424 --> 00:03:46,164
It's a lot of exploration and deep
dives into these topics and these
58
00:03:46,174 --> 00:03:49,824
areas, how, when, and why you use these
different things, the different ways
59
00:03:49,834 --> 00:03:53,764
to construct them, why you would pick
one aspect over another, what you're
60
00:03:53,764 --> 00:03:58,374
trying to do, and the syntax that
goes along to accomplish that problem.
61
00:03:59,024 --> 00:04:02,574
I have found this really interesting,
and many, many examples of this
62
00:04:02,584 --> 00:04:06,174
throughout my writing that I hope
to bring about and share throughout
63
00:04:06,174 --> 00:04:08,194
the future episodes of this as well.
64
00:04:08,194 --> 00:04:11,704
And then, of course, once the book is
released, I can talk more in detail
65
00:04:11,724 --> 00:04:15,574
about the things that I learned
and covered and concepts and topics
66
00:04:15,574 --> 00:04:17,824
that are dedicated in the book.
67
00:04:18,724 --> 00:04:22,472
I do have other snapshots of things
that I've been working on this week.
68
00:04:22,512 --> 00:04:26,592
So I have made good progress on the Java
book, not just in the learning aspect,
69
00:04:26,592 --> 00:04:28,462
but actually progress on the writing.
70
00:04:29,162 --> 00:04:35,012
Just as I predicted last week, I mentioned
in last week's episode that progress
71
00:04:35,012 --> 00:04:39,182
was a little bit slower because I was
trying to frame and describe the opening
72
00:04:39,212 --> 00:04:43,352
of the new chapter, but I did figure
I would catch up this week once I got
73
00:04:43,352 --> 00:04:45,592
past that blank slate starting point.
74
00:04:45,662 --> 00:04:49,032
That's always the toughest part,
right, is to start something, to set
75
00:04:49,032 --> 00:04:53,582
the framing and set the stage for the
chapter, or for the paper, or whatever
76
00:04:53,582 --> 00:04:55,662
writing content piece you're working on.
77
00:04:56,182 --> 00:04:59,962
And the same thing is happening
this week since I started the
78
00:04:59,962 --> 00:05:01,592
opening last week and got that done.
79
00:05:01,912 --> 00:05:05,192
Now, I've beaten all of my
writing goals every day this week
80
00:05:05,222 --> 00:05:09,382
because I'm in the flow throughout
the middle of this chapter.
81
00:05:10,242 --> 00:05:14,362
I'm writing lots of pages, lots of
code examples back and forth, and
82
00:05:14,382 --> 00:05:17,982
everything is just right in the groove
and churning out really well right now.
83
00:05:18,802 --> 00:05:21,552
I also have a virtual meetup
that is happening next week
84
00:05:21,632 --> 00:05:23,722
for the Miami Java User Group.
85
00:05:23,742 --> 00:05:25,012
I will again link that.
86
00:05:25,022 --> 00:05:27,382
I believe I linked it in last week's
episode as well, but I'll link it as
87
00:05:27,382 --> 00:05:28,752
well in the show notes for this week's.
88
00:05:29,202 --> 00:05:29,902
Come join us.
89
00:05:29,932 --> 00:05:31,182
I will share the details.
90
00:05:31,352 --> 00:05:35,172
It's a virtual session, entirely
free, so if you want to sign up
91
00:05:35,172 --> 00:05:38,972
and join us, it'll be in the, the
evening time for East Coast US.
92
00:05:39,732 --> 00:05:42,182
We would love to have
you join us for that.
93
00:05:43,422 --> 00:05:47,392
I did have some time to read an article
this week, and the one that I read
94
00:05:47,442 --> 00:05:51,252
is a little bit on the longer side
than some of the ones that I read.
95
00:05:51,582 --> 00:05:59,642
But it talks more about the fine line
between AI and human development,
96
00:06:00,392 --> 00:06:04,832
specifically between cognitive
offloading and cognitive surrender.
97
00:06:05,352 --> 00:06:09,122
Now, one is a good thing
and viewed as very positive.
98
00:06:09,432 --> 00:06:14,512
The other one is less so, but again,
we just have to be careful where
99
00:06:14,592 --> 00:06:20,076
our perspective and our dedication
sits in this spectrum of cognitive
100
00:06:20,076 --> 00:06:21,656
offloading versus cognitive surrender.
101
00:06:22,156 --> 00:06:25,916
The author's perspective is not negative
and even includes a closing paragraph
102
00:06:25,926 --> 00:06:31,386
about how much improvement that his
work has seen in using these AI tools.
103
00:06:31,716 --> 00:06:36,106
But the author cautions against
accepting answers by rote and not
104
00:06:36,116 --> 00:06:37,526
thinking through them ourselves.
105
00:06:37,896 --> 00:06:41,166
As with anything, all of us
want to hit the easy button.
106
00:06:41,536 --> 00:06:44,626
We want to copy a smart
classmate's test answers.
107
00:06:44,896 --> 00:06:48,806
We would rather vote or regurgitate
political stances of family
108
00:06:48,806 --> 00:06:50,106
or friends or those around us.
109
00:06:50,406 --> 00:06:54,636
We copy-paste code, which also happened
before AI, by the way, with Stack
110
00:06:54,636 --> 00:06:57,156
Overflow, and accept it if the code works.
111
00:06:57,186 --> 00:06:58,606
We don't think anything more of it.
112
00:06:58,666 --> 00:07:02,346
Back in the old days before AI,
we would copy-paste the code from
113
00:07:02,346 --> 00:07:06,826
Stack Overflow, we'd drop it into
our program, we would run it.
114
00:07:06,976 --> 00:07:08,136
Hey, great, it works.
115
00:07:08,186 --> 00:07:09,016
Let's move on.
116
00:07:09,286 --> 00:07:12,766
We wouldn't take the time to break
that apart and tease it apart and
117
00:07:12,766 --> 00:07:15,856
really understand what the code was
trying to do, in a lot of cases.
118
00:07:16,206 --> 00:07:20,066
However, that lack of understanding
is what's problematic, and now that's
119
00:07:20,086 --> 00:07:22,126
even more so than probably before.
120
00:07:22,876 --> 00:07:26,836
It's easier to let the coding tools
make changes and then sanity check
121
00:07:26,836 --> 00:07:29,966
them without fully comprehending
or understanding what's going on.
122
00:07:30,656 --> 00:07:33,006
Or you can skip the steps
and just get it done.
123
00:07:33,076 --> 00:07:34,126
You're too busy.
124
00:07:34,126 --> 00:07:35,456
You've got too many things on your plate.
125
00:07:35,476 --> 00:07:37,516
Well, I'll just skip the
step of thorough review.
126
00:07:37,526 --> 00:07:39,846
I'll just check the
box and keep moving on.
127
00:07:40,496 --> 00:07:44,266
I'd rather get this accomplished and
hit my deadline than really understand
128
00:07:44,316 --> 00:07:46,186
and know what's going on in the code.
129
00:07:46,696 --> 00:07:49,336
The article talks about the
difference between cognitive
130
00:07:49,356 --> 00:07:51,136
offloading and cognitive surrender.
131
00:07:51,586 --> 00:07:55,606
I think of it like delegating, which is
actually a term that's used later in the
132
00:07:55,606 --> 00:07:59,856
article, versus completely giving up,
letting someone else completely take over.
133
00:08:00,880 --> 00:08:03,810
So that's the difference between
the offloading versus the surrender.
134
00:08:04,090 --> 00:08:07,420
There are a few areas that
cognitive surrender shows
135
00:08:07,430 --> 00:08:08,690
up in development right now.
136
00:08:09,010 --> 00:08:12,280
First is learning something
new, and here's a quote from
137
00:08:12,280 --> 00:08:13,290
the article that I really liked.
138
00:08:13,680 --> 00:08:18,470
"Engineers who used AI to generate code
while learning a new library scored
139
00:08:19,250 --> 00:08:23,000
17% lower on a follow-up comprehension
quiz than in the control group.
140
00:08:23,380 --> 00:08:27,360
Engineers who used AI for conceptual
inquiry," things like asking questions,
141
00:08:27,360 --> 00:08:29,170
exploring trade-offs, "held their ground."
142
00:08:29,960 --> 00:08:33,890
This is one that I can vouch for because
this is kind of the same thing as copy
143
00:08:33,900 --> 00:08:35,920
pasting from Stack Overflow pre-AI.
144
00:08:36,520 --> 00:08:40,100
It's easy to find something that works
and then not fully understand what it
145
00:08:40,100 --> 00:08:45,160
does or why it works, and you wouldn't
be able to remember that code or copy
146
00:08:45,160 --> 00:08:48,210
it from your brain knowing what you
needed to do for next time if you
147
00:08:48,210 --> 00:08:49,820
ran across that same problem again.
148
00:08:50,800 --> 00:08:53,320
Hello, lambdas and streams
that I talked about earlier.
149
00:08:53,360 --> 00:08:58,370
I can't fully well utilize those until
I really understand what the language is
150
00:08:58,380 --> 00:09:03,170
trying to do for lambdas and streams and
the use cases where I need and want them.
151
00:09:03,950 --> 00:09:08,190
The author also discusses the
concept of a calibration question.
152
00:09:08,920 --> 00:09:13,500
The question to keep asking yourself,
"Am I forming an independent view
153
00:09:13,500 --> 00:09:18,180
of this answer or just adopting the
agent's view wholesale? Those are
154
00:09:18,180 --> 00:09:21,040
different psychological acts that
look identical from the outside."
155
00:09:21,060 --> 00:09:22,360
This is a quote from the article.
156
00:09:22,610 --> 00:09:26,910
It's the same thing that you wanna
ask in a lot of different concepts and
157
00:09:26,910 --> 00:09:28,320
topics that you come across in life.
158
00:09:28,600 --> 00:09:31,780
Am I forming an independent view
of this answer, or am I just
159
00:09:31,780 --> 00:09:35,590
adopting whatever is popular or
common or what I hear around me?
160
00:09:36,240 --> 00:09:40,000
another question that I often
ask myself personally is, could
161
00:09:40,000 --> 00:09:41,370
I explain this to someone else?
162
00:09:41,770 --> 00:09:44,550
Could I present on it well
enough for someone to follow?
163
00:09:44,740 --> 00:09:47,050
In other words, stand up and
give a presentation on this.
164
00:09:47,240 --> 00:09:52,220
If these questions both answer yes for
me, then that's a great place to be.
165
00:09:52,270 --> 00:09:53,280
I know when to use them.
166
00:09:53,280 --> 00:09:53,790
I know how.
167
00:09:53,820 --> 00:09:56,100
I could explain them or
teach this to somebody else.
168
00:09:56,810 --> 00:10:00,480
This is one of those things that I can
now say that I've achieved with lambdas
169
00:10:00,510 --> 00:10:02,230
and streams as I'm writing the book.
170
00:10:02,630 --> 00:10:06,840
Another criteria the author puts under
this is notice when you're tired.
171
00:10:07,360 --> 00:10:12,110
I found this incredibly helpful and
one that I think often gets overlooked.
172
00:10:12,770 --> 00:10:16,380
The author says that you really need
to pay attention when you're tired and
173
00:10:16,380 --> 00:10:20,570
when you kind of turn off the brain
power, because fatigue will do that.
174
00:10:21,180 --> 00:10:25,540
I've always heard fatigue is the number
one enemy of really anything, whether
175
00:10:25,540 --> 00:10:27,760
that's parenting, development, et cetera.
176
00:10:28,000 --> 00:10:31,470
Wherever you need to make decisions,
fatigue is the one thing that will
177
00:10:31,470 --> 00:10:32,960
want to turn off that brain power.
178
00:10:33,230 --> 00:10:35,100
I think this is really
important to consider.
179
00:10:35,170 --> 00:10:39,623
If you're looking at the end of the
day, it might be less likely for you
180
00:10:39,623 --> 00:10:44,413
to cognitively review what the AI
coding tool is doing, and you might
181
00:10:44,413 --> 00:10:47,733
be more willing to just accept,
accept, accept and check those boxes.
182
00:10:48,323 --> 00:10:52,213
I've mentioned this on other topics, that
there is a fine line between the way we
183
00:10:52,213 --> 00:10:56,763
define and the way that we operate, and
this article makes that same statement.
184
00:10:57,273 --> 00:11:01,103
The author says, here's a quote,
"The posture matters, and we
185
00:11:01,103 --> 00:11:02,433
don't talk about it nearly enough.
186
00:11:03,183 --> 00:11:05,173
Cognitive offloading is a superpower.
187
00:11:05,563 --> 00:11:08,793
Cognitive surrender is the
failure mode of using it without
188
00:11:08,823 --> 00:11:10,193
noticing the line between them.
189
00:11:10,563 --> 00:11:14,603
The job increasingly is to stay calibrated
about which side of that line you're
190
00:11:14,603 --> 00:11:16,473
standing on at any given moment."
191
00:11:16,823 --> 00:11:19,523
Throughout the day, throughout the week,
throughout the month, depending on the
192
00:11:19,523 --> 00:11:24,863
season, you might be more or less likely
to give in to cognitive surrender.
193
00:11:25,003 --> 00:11:28,143
But we really need to monitor this
and stay on top of this and make
194
00:11:28,143 --> 00:11:32,613
sure that we are looking for ways to
cognitively offload, in other words,
195
00:11:32,613 --> 00:11:37,843
to delegate to our A-AI coding tools,
rather than just handing over the
196
00:11:37,863 --> 00:11:41,053
responsibility and accountability
and all of the work to the AI.
197
00:11:41,303 --> 00:11:45,023
That's where things can really
get into negative spaces and
198
00:11:45,063 --> 00:11:47,947
potential downstream issues.
199
00:11:49,167 --> 00:11:52,327
This week surfaced a deeper
understanding of concepts in Java
200
00:11:52,357 --> 00:11:55,687
through writing a chapter on streams
and lambdas in the AI Java book.
201
00:11:56,057 --> 00:11:58,867
Then I have a virtual meetup
happening next week, and we'd
202
00:11:58,877 --> 00:12:00,077
love to have you join us.
203
00:12:00,407 --> 00:12:03,677
Finally, the article I read this week
discussed the difference between using
204
00:12:03,707 --> 00:12:08,587
AI tools for cognitive offloading or
delegation versus cognitive surrender,
205
00:12:08,637 --> 00:12:12,327
where you sacrifice your own decision,
encouraging us to think critically
206
00:12:12,327 --> 00:12:15,747
to improve our own work rather
than checking boxes for completion.
207
00:12:16,157 --> 00:12:17,937
Thanks for listening, and happy coding.