Before I start today’s post, I would like to give a huge shout-out to my good friend Dana at Accularian, who generously and unexpectedly donated hosting space, enabling My Python Adventure to move to its own home on the Web!
In my early days of Python (read: less than 6 months ago), I seem to recall reading that web-based applications are the wave of the future. I discovered web2py and learned that a web app can live on my local computer as well as online and reasoned, why bother learning how to write desktop based apps at all, if a web based app can be both desktop and online? I decided to jump right in to web development, fresh out of Code Academy, and web2py turned out to be simple to install and easy to set up (Django was another matter entirely, but that’s a topic for another post.) As I rummaged around the internet looking for a web2py tutorial, I found Killer Web Development.
An amusing aside: at some point I mis-typed the URL and ended up with a “Page Not Found” error, with a sidebar of other suggestions along the lines of “Murderer Web Development”, “Assassin Web Development”, etc. I hope the internet’s slang-recognition algorithms improve before I get in trouble with Homeland Security.
The best thing about this tutorial is it not only gives a thorough introduction to basic concepts of web development (such as model-view-controller), it also introduces essentials of coding in general, such as version control, using and sharing repositories and test-driven development. I was clueless about all of these before. The author is not a native speaker of English so his grammar is hard to follow at times, but on the other hand, he’s doing way more than I could dream of. I doubt I could come up with an intelligible toilet flushing tutorial in German, even with Google Translate, never mind a highly technical topic like Herr Laspe dared to tackle in a foreign language. His enthusiasm for his subject matter shines through, and is contagious. I came away with the sense that I’d learned, hands-on, all the essential steps of professional programming — not just the particulars of a specific language or tool. This was extraordinarily valuable. Now so much of what I hear from the coding community, phrases like “repository”, “testing framework”, etc. is less and less Greek to me.
I also learned from this site that “web development” Python is almost like a different language from “Code Academy” Python. In studying the web2py code I’d created in the tutorial, it seemed to resemble very little of what I thought I had learned. I therefore decided to do something that is difficult for me: admit that I perhaps bit off more than I can chew, back up and start again from a simpler foundation. So now, off to desktop GUI building. Hello, Tkinter!