Skip to content

What Isn’t Important

November 11, 2012

For someone like me, who has spent far, far too much time on sites like  Reddit and StackOverflow, one thing that never ceases to amaze is the extraordinary amount of emotion, time, effort, thought and bandwidth that is taken up asking about, deciding on, or arguing over software development technologies. Very few of the posts in these discussions even pretend to be objective, and their is almost always far more noise than signal. Perhaps even more importantly, for a beginner, none of these issues is really significant – here’s my advice if you are thinking of posting a question along these lines:

What’s the best first programming language?

Some people seem to spend weeks, or even months, agonising over which language to start with. This is time that you could actually be spending writing code. So just pick a language (I would recommend Python) and jump into it. Give it a couple of weeks, and if you find you don’t like it, try something else. It won’t be time wasted, unlike time spent worrying about which language to start with.

What’s the best programming language?

There isn’t one. There isn’t even one if you specify a particular problem that you want to solve – almost all applications use more than one programming language, and almost all of them could equally well have been written using a different combination, with little effect on speed., efficiency, code maintainability, or anything else. And once again, time spent worrying about this is time wasted.

What’s the best editor?

Once again, not something to worry about. There are a huge number of very powerful editors out there, and the one you start with really doesn’t matter – if you find it limiting you can easily switch to another, and if you don’t find it limiting, there is no reason to change. Worry about something else.

What’s the best IDE?

Yet again, this is not really a sensible question. If you are a student, use the one your teachers recommend, if you are learning at work, use the same one as your workmates. You can always change later, and as  a professional you will be expected to be able to use different IDEs whenever you change jobs. There are however IDEs you should _not_ use – for example, as a C or C++ programmer, you  should not consider using the truly awful DevC++ IDE.

Should I use an editor and command line,  or an IDE?

This is not an either/or question – you should be able to use both. If you don’t understand how the command line and your compiler’s command line interface work, you will sooner or later (and it’s very likely to be sooner) get completely stuck because you don’t understand what your IDE is doing, or what the error messages it producing mean. Learn to use both approaches from the start.

Which Version Control System should I use?

Of all the things I would never have predicted people would get excited about, version control systems would have come near the top of the list. Necessary, but deeply boring, has always been my attitude towards them, and I’ve used around a dozen different ones over the years. So don’t agonise just pick one of the widely used ones such as git or Mercurial – both will do everything you are going to need, and more.


There are many, many more technical decisions like these, and like these, the one you pick probably doesn’t matter much. Of course, if you are the CIO of a huge corporation and you are about to commit your organisation to a choice between, say ORACLE and SQL Server, then the choice will have far-reaching consequences. But I would hope you would not make such a decision based on the noise and fury you get by posting a question on a site like Reddit!


From → devtools, polemic

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: