Friday, December 9, 2011

It Still Isn't Easy


The following is a short essay I had to write for a class.

Its common for people to say that the level of entry into the field of software development has never been lower. Development tools have never been cheaper and easier to use, there is an infinite supply of programming tutorials on the internet, and the growth of the development market is rapidly outpacing the supply of software developers.

When we say that the level of entry has never been lower, it sounds like we're saying its easy to get started. But it we are strongly something much more than that. We are implying that the possibility of an average person becoming successful in the industry is approaching the possibility of success for a person who has been formally trained and educated; we are saying the Ubuntu, Eclipse, W3Schools, and StackOverflow are a worthy replacement for a bachelors degree in Computer Science. That is just as ludicrous as proposing that you could train to be a surgeon by watching YouTube videos and practicing on rats.

I don't mean to say that a getting a degree in Computer Science is a requirement to be a good software engineer. It is possible for a programmer without a degree to be better than a programmer with a degree. There are plenty of terrible programmers who earned a BS degree. But there aren't as many stellar programmers that don't have CS degrees. Why? Because software development isn't easy!

I recently attended a university job fair where multiple companies told me that they will no longer hire Electrical Engineers for software development positions because they just can't manage the advanced programming techniques and theories. But those can be learned with experience, right? Not easily. I know a guy who has been freelancing for 20 years but can't code a recursive binary tree traversal.

Large tech companies understand the difficulties of software development. Google is much more willing to hire someone with a masters degree than with a bachelors degree, even though they have to pay him more. The assumption is that he has received more education concerning advanced topics and is therefore closer to being an expert programmer; and they're usually right.

The trend of outsourcing programming to India is also ending because people are realizing that talent does not come cheap, but coding monkeys do.

A contributor to Forbes recently wrote an article titled “The Rise of Developeronomics” which states that demand for good developers is quickly outpacing supply which is causing the rise of what he calls developeronomics. Companies are acquiring other companies purely for talent (not necessarily for products or technology) and investors are keeping talented developers busy on fluff projects just to keep them around. If the level of entry were low and the promise of success were high, then the supply of good developers would not be a problem.

But the shortage of talented software developers is a problem because the level of entry isn't low. It will remain that way until there is a fundamental change in the field; new tools, resources, and languages cannot make this happen.

No comments: