back to indexWhat Does Deliberate Practice Look Like for Computer Programming?
Chapters
0:0 Cal's Intro
0:25 Cal reads a question about deliberate practice
0:54 Activities designed to stretch your comfort point
1:40 Write real code
3:52 How to get the stretch
00:00:09.920 |
We will start here, as always, with some questions 00:00:23.040 |
Alessandro asks, what does deliberate practice 00:00:41.440 |
So we talk about deliberate practice all the time. 00:00:46.560 |
we have for understanding how people get better 00:00:48.480 |
at complex skills, be them physical or intellectual. 00:00:57.520 |
If you're not stretching, you're not going to improve. 00:01:04.120 |
so that you know that whatever you're doing here, 00:01:07.740 |
that you're doing it right, that you're doing it right 00:01:12.320 |
Because underneath the hood that is our skull, 00:01:17.400 |
you're really trying to isolate the relevant neural circuit 00:01:28.280 |
on those circuit connections if you isolate it. 00:01:30.360 |
So what you want to be doing is really focusing 00:01:37.620 |
So how do you get that in computer programming? 00:01:43.640 |
Be doing the thing you want to get better at. 00:01:48.520 |
The feedback is really clear in computer programming. 00:01:58.440 |
Rookie mistake we see in the computer science curriculum 00:02:07.400 |
to computer scientists is that rookie computer programmers 00:02:17.200 |
going to just try to make this whole thing work 00:02:21.040 |
More adept programmers, what they're going to do 00:02:27.360 |
So at the very smallest granularity at which I'm not 00:02:30.680 |
quite sure, I'm not 100% sure that what I did is actually 00:02:33.040 |
going to do this, then you need to be testing. 00:02:35.560 |
And testing could be as simple as you have print lines 00:02:39.080 |
But if you're doing, let's say, some assignment, 00:02:41.560 |
like I'm going to use a linked list as part of a program 00:02:55.480 |
You should be with little print statements in there testing 00:02:58.040 |
everything along the way, especially if you're new. 00:03:01.760 |
Let me just make sure and do a little test there. 00:03:04.560 |
Is it properly storing all the parts of the polynomial? 00:03:18.600 |
But that means you have to have this very small granularity, 00:03:21.920 |
Just a little bit at a time, make sure it works, 00:03:25.400 |
If you're compiling and praying, like I wrote a bunch of code, 00:03:33.400 |
I'm just going to randomly change a bunch of stuff 00:03:42.160 |
Let me add one more little thing to what I'm doing here. 00:03:54.640 |
There's something you're trying to learn how to do. 00:04:00.040 |
to do that in the program that you're writing. 00:04:06.280 |
If you're new to programming and you say, OK, 00:04:09.640 |
I want to write my own Minecraft style voxel engine. 00:04:16.800 |
But if you're kind of new to programming and you say, 00:04:20.840 |
I'm going to look up in a textbook a sorting algorithm 00:04:25.720 |
and I'm going to actually implement that sorting 00:04:29.520 |
I'm not quite comfortable with looking up algorithms 00:04:42.360 |
Write real code, compile and test as your feedback. 00:04:47.120 |
You're doing something you didn't know how to do before, 00:04:51.440 |
There's actually-- some of my kids like Minecraft. 00:05:01.920 |
But it has a very complicated graphics engine. 00:05:09.760 |
was showing me where people see how fast they 00:05:17.000 |
and they cut through time a lot, but they basically 00:05:25.840 |
I can't help but think, what societal good could they 00:05:30.760 |
You see somebody could do that, you're like, I don't know, 00:05:36.200 |
or coding up a system to help people find new jobs? 00:05:46.040 |
is that's a smart person with a lot of time on their hands. 00:05:48.680 |
And maybe they should be organizing a food drive 00:05:54.920 |
So rocks, glass houses, things are shattering.