Python. All the cool kids are doing it. It’s almost a buzzword at this point, but it’s actually not a buzzword, it’s a just coding language, dummy. And it’s great too, I love it. I mean syntax errors, amirite? I love ’em. There’s nothing like a little unsolicited, constructive criticism from my stubborn computer after continued troubleshooting of my feeble, beginners Python code. Just warms my afternoon right up like a cup of hot chocolate.
Sarcasm aside, I myself have been wrestling with learning Python. Not gonna lie, it’s been frustrating. Tedious at times. Deflating. Frustrating again. Bear with me.
This journey starts a few months ago with a weekend Python class in downtown SF. Class started and I was feeling great. Things seemed pretty comprehensible for the most part. I was printing out “Hello world!” and creating strings and booleans and functions and variables. It was the best of times. Learning functions at first was a tad complicated, but I was in this to win this. Then we had to build some sort of “future clock” and I lost all of my doo-doo right into my pants. Why can’t I get this? How is it that everyone else is seemingly figuring this out and I’m sitting here not even knowing what questions to ask? I hit the proverbial wall, so to speak, and instead of doing what you should do, which is bear down and climb over it, I just stared into it wistfully and decided maybe this just wasn’t for me.
Flash forward to about a month or so later when enough time had passed that I had forgotten about “the wall” and decided to try my luck with Code Academy. I figured it would most likely be tougher without a teacher present to throw questions to, but I figured my new found motivation for figuring out this Python puzzle would power me through the slog. Soon, I was back where I started, staring at the wall again. This time getting stuck on a “Pyg Latin Translator.” I quit again. “This is annoying,” I thought. “I don’t care.”
Fortunately, I was only speaking out of annoyance. I do care. I care a lot. This can’t be THAT hard, and I’ve made it a personal goal to learn this, I have to figure this out. It wasn’t until I picked up the book Learn Python The Hard Way by Zed Shaw that I started to realize where I was going wrong. “The problem with teaching you programming is that to understand many of my descriptions, you need to know how to do programing already.” Zed then encourages novice programmers not to stop when they come to something they don’t understand, as most of the time it’ll make sense later on down the road. Hey, great, that’s just about the exact opposite of what I’ve been doing. Stopping, trying to figure it out, and then later getting discouraged when I couldn’t figure it out, was smothering my motivation to continue forward. He then goes on to say, while referring to himself learning to play the guitar, that “repetitive practice is natural and is just how to learn something. I know that to get good at anything you have to practice every day, even if I suck that day (which is often) or it’s difficult.” Man, why hadn’t I thought of this? Why hadn’t I been applying this to learning Python? Everything that I am moderately decent at in my life is a direct result from persistent practice. Cooking, baseball, cooking baseballs, golf, creating sentences that end in ‘etc,’ etc. This was an enormous fail on my part. I decided to change up my methods.
I now have 3 different python learning courses going at the same time, all three with different starting points, teaching styles, etc. Code Academy, which is the faster moving, somewhat concise, teacher who sugar coats very little. Learn Python The Hard Way, which is a more light-hearted, repetition based, slower moving method of learning. And CodeCombat, which is essentially a video game designed to get kids into coding. Do I care that it’s for kids? Nay. I still consider myself a kid in a lot of ways. Pull my finger.
All of them teaching the exact same language, but from different perspectives. If I get tired of doing one exercise, I stop myself and move onto an entirely different course. This is my own way of climbing over “the wall” and, so far, it seems to be working. I’m figuring this out and, as prophesied to me by many, it’s starting to make more sense. There are still hiccups. I still get frustrated. I still can’t really build much more than a tip calculator at this point, but I’m not worried. The more I push myself, the more I’m learning. The more I continue to learn, the more satisfied I feel about putting the effort in. It’s a slow process, but I’m okay with the fact that it’s not supposed to be easy.
As the old saying goes, Rome wasn’t burnt in a day.
Pull my finger.