Tuesday, August 30, 2011

How I Would Learn Rails in 2011


An entrepreneur friend just asked me to recommend good resources for learning how to program using Ruby on Rails. Here's what I suggested, in descending order of helpfulness:


Tuesday, August 23, 2011

Towards a New Paradigm for Software Education

I posted a new essay to the OSI-Baltimore blog called Baltimore should become a software education leader:
The term “programming” connotes an analytical discipline, something derived from mathematics or engineering, and that’s how most schools teach it: as the domain of computer science. But computer science is only a part of what software makers do. Advances in computer power have made computer science less applicable in the day-to-day work of programmers because there’s less need to keep track of “ones and zeroes.” Making software has simply become a lot more fun than you might remember if you were ever forced to study it. 
These advances open the door for many different kinds of people to get involved in the software industry. Newcomers have launched a software craftsmanship movement addressing issues such as: how do we make something truly useful? How do we make it a joy to use? What can we learn from the worlds of art, design, psychology, typography, and architecture? Where you once had programmers thinking of themselves as scientists or engineers, you now have programmers who think of themselves as artisans.
Poet and computer scientist Richard P. Gabriel describes a vision of how we might train programmers as craftspeople in his essay “Master of Fine Arts in Software,” in which he suggests we emphasize the creation of software as a performance instead of as a body of knowledge to master. 
I'm very hopeful for this approach (which I also discussed a few weeks ago on WYPR's Maryland Morning) because I think it's a straightforward, exciting way to boost the number people able to compete for good jobs in the current economy. Read Marc Andreessen's recent op-ed essay "Why Software Is Eating the World" for more details on why this is going to be extremely important not just for Baltimore but for every city that wants to be economically competitive.

Tuesday, August 9, 2011

Open source experiment: Ignite Baltimore home page

It's time to update and refresh the Ignite Baltimore website. As Ignite is a not-for-profit labor of love, we've tried a few different approaches over the years to having a website that looks nice and can be easily maintained (e.g. we need quality work but don't have the funds to pay for it, so we try to barter).

I've concluded that the best way to do this, something I would recommend to anyone else running a project like this, is to make a super simple site with a few pages, with a design I can execute myself, and then link to external sites when we need specialty content. In Ignite's case, we'll be using EventBrite, Flickr, and YouTube to host all of our dynamic material. This means the site itself can focus on being a resource for things that don't change as much, like "About" and "Contact Us" and "Speaker Guidelines".

The current prototype is here: http://ignitebaltimore.github.com

I'm developing the new site out in the open on GitHub. This means anyone can contribute to the new site. If you have an improvement, please fork the project, make your changes, then send me a pull request. The repository is here: https://github.com/ignitebaltimore/ignitebaltimore.github.com.

A note on self-reliance: I know this site doesn't look as beautiful as it could, or as it should (given the high-touch feel of the event), but I also have decided that I'm not going to let my lack of design talent stop me from building nice things. On pretty much every software project I've worked on, I've felt hamstrung by a lack of design help. I mentioned this to Gabe Weinberg who advised me to treat design like just another facet of programming to hack around, over, and through. I've decided to take him on that and focus on making things that look "good enough", and that's what I've done here.