A couple of weeks ago I purchased a book called “Learn Python the Hard Way” (LPTHW). The book sat by my bedside under a stack of other reads until I rediscovered it over the weekend. I bought the book because of the unusual way it marketed itself. Learning something the hard way struck a chord with me because taking the easy way has so seldomly worked out for me. I had dabbled with Python throughout the years and even purchased a neglected book or two on the topic. One of my first professional experiences with Python was when I was tasked with fixing an automated process that was scripted in Python. Googling here and there I was able to patch up the script and get things running again, but I didn’t have the chance to really solidify my knowledge. I was amazed by how much I could do with so little code, but I found debugging and deciphering the code challenging. Since then I transitioned to other jobs, and worked with teams who preferred a different standard for scripting (For reasons I will never understand, Perl is a common favorite). Python felt accessible and yet mysterious and powerful to me. I wanted to learn more and see what other cool things I could do. Perhaps it reminded me of my early programming experiences.
When I was a kid, I used to go to my school library and read the RUN magazine. I would scour the pages to catch up on the latest techno gadgets and games that were on the horizon, but I also loved taking home code to try on my Commodore 64. I would meticulously transcribe the BASIC and assembly code from the magazine to my notebook. I couldn’t wait to get home to try out the new programs and games on my C-64. Often my programs would not run at all and I had to figure out what was causing the crash. This was a terrific training ground for teaching me how to write and troubleshoot code, skills I use to this day at work. Fast-forward to today where all of the information you could possibly need is at your whim and you might think kids have it made. Learning should be easier than ever, but people still need to go through the process and learn a wide array of skills. That takes time, effort, patience and a lot of hard work. You can’t skim over it. You can’t Google your way through it. You just have to do it.
Now, if you review Learning Python the Hard Way, you might think that the text is really just for beginners, but I believe anyone can benefit from the instructional approach to learning. I am going to work my way through each and every chapter in the book, not skipping a page, skimming over an exercise or cutting and pasting so much as a line of code. I am hoping to become a better programmer in the process, but also, I would like to teach my children how to program in Python using the same textbook. I think LPTHW offers a terrific start for anyone making their first steps into the wonderful world of software development. The book even comes with instructional videos to help you through the rough sections. Learning the Hard Way might be a tough sell for kids, but I hope they will gain an appreciation for programming but also learn important life skills like: self discipline, analytical thinking and problem-solving.