Thing of the Week - Learn Python the Hard Way

For a long time I’ve wanted to learn a serious programming language. I’ve been down with HTML and CSS for well over half my life now, but have always wanted a little more. With my web development days mostly over, digging into PHP or JavaScript didn’t seem very useful. Learning C (or C#, Obj-C or C++) is a little low level for the things that I’m looking to do. Perl has always had some appeal, primarily because it’s easy enough to read (mostly in issues of 2600) but I couldn’t find a great resource to get me from zero to fully functional scripts in enough time. I’ve used and loathed Java apps and read enough Joel on Software to be pretty bias against that nonsense too.

When I saw Adam Laurie give his talk about the RFID passports at LayerOne a few years ago, he raved about how nice it was to work in Python and that’s stuck with me. From time to time, I’d take a look at some samples of textbooks online, but never found anything that seemed to click.

I saw a recommendation for Learn Python the Hard Way by Zed Shaw and decided to check it out. I’m currently about halfway through the exercises and am extremely happy with the results. One of my favorite parts of this book encapsulates why I think that anyone who is ready to start making computers work for you instead of the other way around should learn Python or any other scripting language.

Programming as a profession is only moderately interesting. It can be a good job, but if you want to make about the same money and be happier, you could actually just go run a fast food joint. You are much better off using code as your secret weapon in another profession.

People who can code in the world of technology companies are a dime a dozen and get no respect. People who can code in biology, medicine, government, sociology, physics, history, and mathematics are respected and can do amazing things to advance those disciplines. - Zed Shaw at page 155 of Learn Python the Hard Way

He left one discipline out there: Law. If you do a lot of repetitive calculations, such as document review estimates, spousal support calculations or estimates for lost income then Python gives you the opportunity to create a tool that is superior to doing calculations by hand or in Excel.

It’s not just Python that you end up learning though. You end up learning about how your computer works, why special characters like the \ character can cause problems in other software and most importantly how to use your keyboard.

When you’re working through the exercises, you’ll get really sick of using the mouse to move around and select text. Where you always might have known that you can theoretically use a computer without a pointer device you can see why that’s a good thing through banging out lines of code. Heck, I even have started to appreciate (although I haven’t made this nerd jump quite yet) VI and VIM key bindings.

The book is tremendous for anyone at any level of knowledge of technology and gets my highest recommendation.