Monday, May 11, 2009

Getting Started in Software Engineering

Since I wrote an essay about how to become a software engineer, people regularly email me for more advice. Here is a reply I wrote this morning:

The great thing about working in software engineering is that you only need three things:

  1. a computer
  2. reliable Internet access
  3. the will to learn and expand your skills every day

The bad news is, #3 cannot be bought, and it cannot be given to you. But, assuming you have those three things taken care of, you get started by choosing a platform, downloading (in some cases, purchasing) your development tools, and seeking out some tutorials.

When I say choose a platform, I mean the kind of system that your software will run on. All the tools you use, tutorials you follow, books you read, and conferences you attend will be relative to the platform. Right now, there are only a handful of real choices: the Web, Windows, Mac, Linux, iPhone, Android, Blackberry, and maybe soon the Palm Pre.

Often, these platforms overlap. For instance, I develop Web applications on a Mac with Java, but the finished software runs on Linux servers.

If you haven't already chosen a platform, and you want to see the quickest results with the least hassle, use Google App Engine. It's a framework for hosting web applications which takes care of all of the infrastructure effortlessly. In other words, you don't have worry about setting up a server or figuring out to get everything online. You just write the code, and Google ensures that it will run on the Web.

And here's a book about it that will come out later this month. Charles Severance is a friend of mine: Using Google App Engine

Before you can begin programming for a career, you need to get some code under your belt. There's no time like the present.