The time has come. You see, I used to code. Indeed it used to be my career. Then I got involved in UX, learned the joy of prototyping, and now I don’t code. Well to be exact – I’m rusty. Oh, I can still hack scripts in python (mostly log analysis and text processing), and websites in HTML/CSS with a bit of JQuery. I can quickly grasp coding/technical concepts while chatting with real engineers. And I’ve done a fair few Rails / Python / PHP tutorials. Still, every time I want to build something, it feels like I’m starting from scratch. Its time to get my hands dirty again. And keep them dirty.
I’m setting myself a challenge. In 100 days, get up to speed with the state of the art in web technology. I don’t expect to be a full-time coder again but I want to be able to quickly engineer basic interactive web/mobile prototypes.
Why? Why not just build click-through mocks? Well …
- Engineering is fun and I miss it (even the debugging, sometimes …)
- I don’t want to be one of the people with a CS degree who don’t code anymore. There’s lots of us out there!
- Who knows I might join or start a startup sometime soon, and more hands-on coding skills would be handy
Its not going to be a consecutive 100 days. However, I’ll try and do at least 2 days a week. Each “day” will be accompanied with a brief blog post outlining what I did and why, and maybe a helpful hint or tip for people doing the same. My stretch goal: add to stackoverflow or similar discussion websites as and when I manage something and can contribute to online “solutions” (many of which are lacking).
Any tips/hints to tutorials/languages/frameworks appreciated! Else maybe I’m past it. What do you think?
Here’s my current hit list, and current skill level. I acknowledge that its quite varied. First I want to try a range of stuff out. Then towards the end I’ll focus so I’ll have a basic toolkit for prototyping. Thats the plan.
Web application framework
I want to get up to speed with an MVC web framework. I’ve dabbled in 3. I’d like to say I can develop in one. Here’s the shortlist:
- Ruby on Rails (I did the excellent tutorial by Michael Hartl and produced a nice little twitter clone. However, I got bogged down deploying it to heroku, and Rails is so arcane! Expect a post or two!)
- Django/Python web framework (recently did tutorials, but got stuck with some fiddly stuff like handling AJAX POST calls within the CSRF filter framework. Expect a post on that too)
- PHP: Hello World and basic database calls
- Google App Engine (python), just a bit of hacking with my pal Lindsey.
Any web work requires a reasonable understanding of HTML, CSS. Again, I can hack. The “code” I produce is as ugly as hell. I can do better. Also I keep forgetting my CSS selector syntax. It’d be nice to remember stuff like that in my head.
Along with the above languages, frameworks, and standards – any self-respecting developer has to know his database admin, source code control, and how to deploy. Django I’ve got running on Dreamhost as a first baby step.
Basic Mobile App development
Android or iOS? I want to play with both. My first post is actually going to be about getting the emulator working on MacOSX (which is not as trivial as you might expect).