The Challenge of Learning Alone
Hi everybody, I wanted to talk today about something that I saw on the Internet. There was a post that went out that said the Internet is the best teacher out there, but people just lack curiosity. I kind of got hung up on that because my experience is that people have a lot of curiosity and they go out on the Internet and they try to learn things and they get really frustrated.
So I guess I wanted to relate to experience of mine that's not directly software related, but I see happen a lot in the software area. See, Woodworking is a hobby of mine. I do it for fun on the side so I get to build something I can actually touch sometimes. And at one point I read an article that said that it was really, really sad that we had given up on using hand planes in favor of using random orbit sanders and stuff along those lines.
It talked about how sanding was not pleasant because you are always vibrating to the bones and you scratch the heck out of the surface of the wood and then you scratch it a little bit less to pick those scratches out. You scratch it a little bit finer to take those scratches out until you have scratches fine enough that you can put up with them and instead of using hand planes the way that we used to because it took so much less work and you know, you could just take a pass and leave the wood looking so much nicer and cleaner and really let the beauty of the wood shine through better. And it was more pleasant to do and it's just. We had lost some of the soul of woodworking by not using hand planes.
I thought that sounds really awesome. So I really got into it and I read articles on how to use hand planes and I read whole books on how to use hand planes.
And I did research on what is a good hand plane and I got an old kind of "They don't make them like they used to" kind of hand plane and I reconditioned it and I think it turned out really pretty. And I follow all the directions. How do you know when it's tuned right? How do you tune it up right? How do you hold it? How do you, um, what does it look like when it's working? How did the shavings come off? You know, all that type of stuff. And I worked really hard at it for like six months. And when I was done, my conclusion was it's OK.
I mean, yeah, it's Kinda Nice. I don't know that it's all that and there are times when I would do it, but I was honestly a little bit disappointed and it just kinda got put in my toolbox for when I wanted to use it.
Well, a few months later a friend and I went to a woodworking convention and there was a high end tool vendor there who had a very simple way of selling their tools.
They just had them all laid out with blocks of wood all over their little booth and let people walk up and try them out. So I related some of my experiences to one of the salesmen there and he walked me over and picked out a plane that was tuned up properly and a block of maple, which maple is really, really hard wood. So when you have something like this that works on maple, you know, it's really working and kind of put his hands on mine and got me positioned correctly and we just went swoosh and took a pass at the plane and off of it came this Gossamer silk ribbons, like I'd read who we were supposed to get and the feel of it and it was like life changing. Well, OK, not life changing, but it totally changed my perception on hand planes.
I realized that in 60 seconds he had taught me more about hand planes and how they work and all the little details and nuances and kind of most importantly how they feel when they're working than I had learned in six months banging my head against the wall by myself.
Um, and it certainly wasn't because I wasn't putting in the effort or that I didn't have good materials or that I was just kind of clueless. There's just pieces of that you could never get without, until you get it, until you have that moment where you can feel it working and it kind of clicks.
I think that happens to us an awful lot in software when we read something, whether it be, say I'm trying to do a code school online and putting syntax together but not really seeing how we're building something and how the pieces fit or we're taking a higher level design concept like really wanting to put small methods into practice or trying out test-driven development and we do exactly what I had described. We put real good effort into it and then when we're done we kind of look at it and go, it's OK, it's not what they said it was and I'm not that impressed and we kind of put it on a shelf. I'll break it out when I need it.
I think that's the difference between the self taught and the need for having a coach or a mentor that can help you find that moment, that click moment where you can see all the pieces that you can't describe in words and what that feeling is like when it all comes together and show you what those ideas look like in practice. And I think that we as an industry miss out on an awful lot of great professional development because most of us are working by ourselves and we don't have that person who is going to help us move forward and advance.
So that's why I'm a big advocate of an apprenticeship type of model for training software developers and why I coach and mentor developers professionally. Because I think that that moment is so magic that we're kind of gypping software developers by the fact that they miss it so often and we're gypping our businesses and our customers the quality and effectiveness and speed of delivery they could get from developers who get those moments in the ways that they need to really get to the level of accomplishment and skill that they wouldn't get to by themselves.