Archive for April, 2011

Thing of the Week – Learn Python the Hard Way

Saturday, April 30th, 2011

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.

Zed Shaw on Being Different

Saturday, April 30th, 2011

Finally, I will say that learning to create software changes you and makes you different. Not better or worse, just different. You may find that people treat you harshly because you can create software, maybe using words like “nerd”. Maybe you will find that because you can dissect their logic that they hate arguing with you. You may even find that simply knowing how a computer works makes you annoying and weird to them.

To this I have one just piece of advice: they can go to hell. The world needs more weird people who know how things work and who love to figure it all out. When they treat you like this, just remember that this is your journey, not theirs. Being different is not a crime, and people who tell you it is are just jealous that you have picked up a skill they never in their wildest dreams could acquire.

Thing of the Week – The Solarized Color Scheme

Saturday, April 23rd, 2011

Yes, I'm working through Python the Hard Way

Late last week, I saw Ben Brooks link to the Solarized color scheme from Ethan Schoonover. Initially I was a little skeptical of Mr. Brooks’s claim that he was using it now “for everything,” and took a look. He was exactly right. I applied the TextMate theme and was blown away at how comfortable it is to work in. I’ve now applied the color scheme to the Terminal, OmniFocus and (using the OS X color palette) I even retouched Scrivener to display the light theme.

Just one more justification for my quest to never open Word or Pages ever again.