Earlier in my career I was a C programmer. Not a C++ programmer, a C programmer. The reason I didn’t program in C++ is because it didn’t exist yet. I thought that C, and then C++ when it entered the scene, were incredibly strong and versatile programming languages. Having previously programmed in various other languages, I thought it was interesting that I could increment a counter by putting two plus signs before or after it. For those not in the programming world, “x = x + 1” and x++ are equivalent statements.
I remember asking the person who was teaching me how to program in C why this new syntax existed. He told me four things:
1. It provides greater flexibility when forming computations because you can refer to and increment the value of “x” in the same statement 2. If you place the “++” after the “x” it increments after its use and if you place the “++” before the “x’ it increments before its use 3. This syntax assists the compiler in creating efficient assembly language code (compilers were not as advanced at that time) 4. It looked really cool and people using other programming languages wouldn’t know what it meant.
I then asked him if the “x = x + 1” format would still work. He told me that yes, it would, but never use it in C programs because the other C programmers will make fun of you. Real C programmers only use the “x++” format.
When asking people why they like one programming language over another, one of the following themes, best described in memorable TV commercials and great classic songs, comes to mind:
• Less Filling, Taste Great: This theme illustrates that sometimes more than one programming language can appropriately do the job, it just comes down to a decision between two great options. (Ok, yes, I’m thinking about Java versus .NET). • Love the one you’re with: This is the case that sometimes the language you know always seems to be better than the language you don’t know. • Try it you’ll like it: This is often the theme brought forward by technical evangelists, rightly so, trying to get you to learn a new emerging technology. Remember, there was a time when C++, Java, .NET, PHP, and even COBOL were brand new languages. • I heard it through the grapevine: This is when a new language, or other technology, gets incredible hype within the industry and everyone starts (or wants to) hop on the bandwagon. • My dog is better than your dog: This is the case when people get entrenched in a specific technology and feel like it is the solution to all problems. Another way to state this phenomenon is that when you have a hammer, everything looks like a nail.
My reason for telling you this story, other than the fact that I always smile when I think of it, is because it takes an increadible amount of time, effort, and commitment to truly become expert in a specific programming language. As a result, you should think carefully before selecting a language to be sure it's the right language for your marketability, interest, and long term career.
Consider the following questions in making the decision to learn a new programming language.
• How marketable is this language in my geographic location? For example, if you work in Boston, how many local companies hire people with knowledge of this language? • Is this language used within the industry in which I would like to work? For example, if you want to work in the video game industry, you should learn the languages most often used in the creation of software for video games. • To use this language effectively, what other technologies will I have to learn? For example, if you are considering learning .NET, then you may also want to learn how to use SourceSafe and SQL Server. • How large is the job market for people knowing this language? Alternatively stated, is this language generally used in all industries and for many purposes, or is it a nitch language only used for specific purposes? • How much competition is there for jobs using this technology? That is to say, are there more people than jobs or more jobs than people. As an aside, if there are more jobs than people, the average pay of everyone knowing that language will generally go up because the demand for this skill set is larger than the supply of people who have it. • What is the language's future? Is it growing or shrinking in popularity? That is to say, in two years and/or five years will there be more jobs or less jobs available for people who know this technology.
I chose a programming language as my example, but I could have used any technology or any IT related job. There are a lot of great technologies out there, programming languages, analytical tools, software packages, hardware devices, and software tools. As technologists, whether you are a programmer, a help desk professional, a software tester, or any other hands-on techie, carefully choose the technologies you learn and the technologies you decide not to learn. These decisions, whether through good luck or bad, deep analysis or wild guess, will help frame your professional future. Be careful and choose wisely.
If you have any questions about your career in IT, please email me at eric@ManagerMechanics.com or find me on Twitter at @EricPBloom.
Until next time, work hard, work smart, and continue to grow.
Read more of Eric Bloom's Your IT Career blog and follow the latest IT news at ITworld. Follow Eric on Twitter at @EricPBloom. For the latest IT news, analysis and how-tos, follow ITworld on Twitter and Facebook.