I’ve been programming for 21 years now. Most of my career I’ve spent being on the bleeding edge. This has helped when it came time to find work because I normally am one of the few people companies can find who have the skills they are looking for.
While I never intentionally set out to watch trends and adjust my skills accordingly, I’ve found that it has been a great asset, so that now I am a lot more intentional about watching trends and creating hypothesis about what they will mean for the job market. So, the following are some observations.
Most of the easy code has already been written
If you are a programmer, this is both good news and bad news.
First the bad news.
If you are an adequate programmer, you might want to start looking for another line of work. That is, if you can get the job done, but you have no real passion for your work, or find yourself struggling to understand how to do what you are currently doing, that’s not a very good sign. The problems are only going to get harder.
However, if you love programming, if you can’t wait to get to work in the morning, if the current problems seem too easy for you, I have great news for you. Someone has probably already written code that does what you are writing. It’s time to spend some money on tools, frameworks, libraries, etc. and use your time to write the real code.
This might seem obvious, but I’m still working at places that are re-creating the wheel. There are several really flexible content management systems that already have about 80% of whatever code you want to write written for you and allow you to concentrate on writing the other 20%. Pick one and start using it. If you are using ASP.NET, check out DotNetNuke. If you are on PHP, you should check out Drupal. Either are highly flexible systems.
There are frameworks, like NHibernate, or Entity Framework in the .NET world that will write most of your database access code. I’m sure others exist in the PHP world, but that’s not where I spend the majority of my time so I couldn’t tell you.
The Web is Where The New Code is
Notice I did not say it is where all new code is. But it is a significant platform.
Yes, there is still a significant need for desktop applications. Yes, the Google OS is just a bunch of hot air right now. But the fact that we now have an x86 emulator written in Java means something if nothing more than what computer you run on means nothing and that a web based operating system is not that far fetched an idea.
If you are a developer and have not yet learned web development, this is your wake up call. Unless you want to become like so many COBOL programmers from the IBM hay days.
Speaking of IBM…
IBM is to Microsoft what Microsoft is to Google
This has been so obvious to me for so long that I hesitate to put it here, but while this was true 5 years ago when I started saying this, it is even more obvious now.
When I started my career, IBM was the company everyone loved to hate and Microsoft was this new company that provided the main OS for the PC, a few apps, and mostly some really good tools for creating our own programs.
Slowly, IBM became less significant and Microsoft became king of IT.
Where are we today? Microsoft is the company everyone loves to hate. Like IBM, they aren’t dead, and Google is the king of IT. Like IBM, Microsoft probably won’t die. However, I don’t see them becoming the force they once were.
In fact, I’ll go so far as to say that Google will end up in the same spot. All businesses follow the same pattern. This could have been predicted for IBM and Microsoft only because companies start out lean, agile, and innovative because they have nothing to lose and then take fewer risks and become less lean as they take on more employees and have more money. This makes them less agile and innovative.
If you are a programmer and you aren’t paying attention to what the big G is doing, you’ll only have yourself to blame when you can’t get a job five to ten years from now. And PLEASE don’t blame it on your age… don’t get me going on THAT rant!
Watch Open Source
Anyone who’s followed me for a while knows that I’m a pragmatic programmer. I use what works. I don’t care where it came from.
My recent experiences with Ubuntu have been quite favorable. I’ve taken a look at Drupal and been impressed by the thought that has gone into that architecture. I use WordPress for any web site I don’t have to write any code for simply because it does exactly what I need. Why write code when you don’t have to simply because it isn’t .NET?
In fact, I’m seeing more companies trend toward open source solutions. Either using content management systems, or using Linux Apache MySQL PHP (LAMP) platforms to program it themselves.
What this all means for you
- If you are still writing all your code from scratch, stop. Get a CMS, some libraries, and frameworks. Doesn’t matter which one, but you should not be writing most of the code you deliver to your customer.
- You should at least be playing with
The trick in the business is to stay relevant. Watching the trends and responding to them is how you do that.