In a couple weeks, I’ll be starting a new job (deets later) and thought it was time to clean the rust off the tools in my toolbox. I’m starting an ugly little blog called “Learn to Code Already (and while you’re at it, learn some data, too)”. During my union organizing days, I wrote code to pay the bills (hopeless political causes are romantic and certainly the good fight, but they are financially suspect). When I became a digital/interactive/game designer, some time in 1996 – 1997, I realized that basic computer knowledge could have a huge impact on the quality and innovation of a design. My computer knowledge was basic:
– databases (I wrote programs in C and Java for Paradox and DBase IV and in Visual Basic for Access)
– command loops
– data variables and structures like arrays, lists, and structs
– conditions (if … then)
The only hard part, conceptually was learning about relational databases once my freelance work required me to move past flat file systems. The rest was pretty straightforward, requiring some rote, some instructive debugging, and excitement at what these things might do. (I learned BASIC on TRS-80 and within a week was hooked, writing D&D character generators, lunar lander games, and even the beginnings of a Zork-style adventure game.)
With this small bit of knowledge, some free time, and youthful arrogance and curiosity, I was able to write database programs for health organizations, artificial intelligence routines for a deer hunting game as well as several classic board games, re-write the timesheets reporting program so I could get better data on my clients at R/GA, create small HTML tools that sped up and improved the accuracy of posting to client review sites . . . to name some highlights.
Today, those skills are rusty and there are new languages and types of languages that make me want back in. As I wrote to a programmer friend of mine:
* I’m frustrated that I no longer have a coding language or tool to play with ideas (I used to have VB and that allowed me to write bulletmaker and a new timesheets program for Nike as well as a deer AI).
* I’m frustrated that it’s so hard to find a place to start
* I want to start a new language
* I want to blog about coding. I bought “learntocodealready.com” and want to make it a group blog for four or five people to record their progress, save resources, share tips, and build the case that
code is the cell unit of creativity
He wrote back:
Nice. Just last weekend I realized there were far more powerpoints on my computer than source code files. Not good.
So starting digging in with jquery tutorials.
It’s also worth highlighting Douglas Rushkoff’s Program or Be Programmed argument. Read it yourself, but the short version is: we can master our tools, or let them drag us along by the nose and hope we go somewhere interesting. Or as the good folks at Whole Earth Catalog used to say, “We are as gods and might as well get good at it.”
I’m starting with Python, using Zed Shaw’s Learn Python the Hard Way, a book targeted at absolute beginners and which strives not to teach Python in a hard way, but in a way that has lasting value.
Three goals for the site:
1) convince people that learning to code is valuable, fun, and attainable. Further, that it should be part of our literacy in the digital age, especially if we’re in that business.
2) Collect resources, inspirations, code snippets, and advice that clears the way for people to start learning at a level and in an environment that works for them.
3) Collect little tidbits of information, inspiration and wisdom from my own experience working through some Python books, then getting into HTML 5, then PHP/MySQL.
Ping me if you want to join up: kip dot voytek at gmail dot com.