A Computer Programming History Lesson

rA number of years ago, I was doing a study on behalf of three universities wherein I had been asked to research what programming courses were being taught at those universities in comparison to what programming languages students were really needing to learn in order to get jobs when they actually rejoined the workforce.

My research at that time led me to the discovery that the technical colleges were doing a much better job of staying technically current and relevant course wise than the universities were doing. In those days, it took quite a bit more time to build curriculums for students than it does today and taking detailed courses online was practically an impossibility – it had to be done in classroom sessions. So once a professor had built a working curriculum for his/her students, he/she tended to use it for many years almost without change.

I particularly remember while interviewing one aged professor at one of the universities I was working at saying to me after I had confronted him about the fact that he was still offering a course on a 3GL programming language (Cobol) that no one was hiring for any longer, the world having moved forward to more technically current 4GL and above languages such as C, C+, C++, Forte, SQL and others then being used; who said to me that he was “teaching students how to learn – not how to get jobs using a specific language so the language being taught in the class was irrelevant.”

This sentence stayed with me throughout that day and in an eerie coincidence later that same afternoon, I happened to take a taxi ride with a driver who as it turns out, had taken four years of university classes in the field of IT and programming and this is one of the teachers he had taken a course from. I asked him why he was driving a taxi and he told me, almost crying at the memory of it, that to try to make a better life for his family, (he had a wife and two small children); he had borrowed massively and spent everything he had to get his IT based degree from university in the hopes of making a greater income once he had his IT degree.

After getting it, he found he could not find a job with his degree because what he had spent his money learning were programming languages that were basically obsolete; companies were no longer hiring for them. They were in fact, laying people off who had the same skills he had just learned and the companies were replacing existing staff with more technically current resources so they could build systems that were more technically current, more scalable, efficient, flexible and ultimately, more profitable.

I have been in the IT consulting profession for over 30 years and the reality is that we as consultants have almost always been brought in to systems delivery situations because we were more technically current and knowledgeable than the internal staff corporations had on board. Rather than spending the money on their own internal staff to bring them to technical currency, I have often seen where they would hire consultants to build the new systems required because they were in a hurry to regain business competitiveness; and their existing staff were left to maintain the old systems while the new were being built. Once the new systems were built to replace the old:

  • The consultants used left because they were too expensive to keep around longer; and,
  • The existing staff were let go and new, more technically current staff were brought in to replace them.

This pattern in the IT world repeats itself over and over again, even today. Not everywhere, granted, but it shows up enough times so that you can see this as a real pattern within corporations. In fact, knowing this pattern exists is something that professional consultants use as part of their sales pitches with corporations in order to get consulting and IT delivery projects. “Are your sales slowing down? Our new systems can help you regain your competitiveness in the marketplace” – is a quote often heard.

So the bottom line about the IT consulting profession and about IT in general as it relates to IT staff within corporations, it is my experience that nowhere within this profession is there and real career security. Corporate systems have a “Lifespan” and they get rotated out just as the IT staff supporting them do unless they are internal “Superstars” and when the consultants come in to build the new, systems, they are able to join the new development teams.

My bottom line to this lecture to this point is that to keep getting paid, you absolutely have to keep technically current as an IT professional and it is on you only to see that you keep getting the training and experience in current languages, infrastructure technologies, development environments, SDK’s, etc. and related systems implementation and deployment strategies.

The second part of this article is that once you have learned the languages through your courses, what do you do with them? How do you use your new skills to earn money? Well, you can look for a job and get on the employee wagon at that point with a company and you can ride the job for as long as you are able to remain technically current or “perceived” to be technically current by that corporation’s management and HR teams.

Your second option is to learn the art of professional consulting so you can use the skills and knowledge you have gained to sell and land very profitable consulting engagements. Note that you can make a lot more money as a professional consultant if you stay busy at it and technology is changing so rapidly out there, that there is plenty of work to be had if you are technically current. You just need to know how to do get the work and how to protect yourself financially while negotiating the terms of your employment.

In summary, keep your technical skills current and learn the art of professional consulting as well. You will very likely be needing both types of knowledge to succeed in your professional IT careers.