This feature first appeared in Certification Magazine. Click here to get your own print or digital copy.
Ordinarily when sitting down to write about IT certification, I would expound on how one could go about getting certain credentials, and what they cost, and the reasons why you would want to get them. That overall formula could be applied almost across the board in the IT realm: You can find certifications almost anywhere you look — unless you are looking for computer programming certifications.
The study of computer programming itself is not rare. It’s only certifications and certification tracks that tend to be few in number and lie far between across a vast and varied landscape. Using Google, for example, I can find 16 different Java classes without even looking outside my immediate geographic vicinity, to say nothing of all the web-based course offerings out there.
Many (possibly even most) of those classes, if I were to take and finish them, would end in a certificate of completion with my name on it. That isn’t a certification, however — the difference between certificates and certifications could be the subject of its own article — and by itself probably wouldn’t convince a potential employer to hire me as a Java developer.
The overall dearth of computer programming certifications is perplexing in some ways and makes sense in others. There are certainly other viable paths, however, for aspiring computer programmers to follow, both in terms of learning how to program and verifying their expertise. It’s an exciting and expanding field of professional endeavor and employment opportunities abound.
There Are No Certifications Here
First off, I think part of the scarcity of programming language certifications is an exam design problem. Think about how many people earn popular certifications in other IT disciplines. How would you create a programming language exam? The formal “solution” to any scenario-driven programming exam question would be one out of [large metaphorical number] possible correct answers.
In essence, the biggest hurdle to testing your knowledge of PHP or Ruby (for example) is that there is no “correct” solution to a development issue. How could a certification body credibly determine which answer is the most applicable? On top of this “more than one way to skin a cat” problem is the glaring fact that there is no practical way to vet every possible correct answer.
A second underlying problem that drives the lack of programming certifications is the speed of change. Creating a professional credential is not an easy process and if you are going to launch a well-received certification, then rushing to market is generally out of the question. Most programming languages, on the other hand, are constantly evolving.
Many programming languages are updated almost continuously. Languages also frequently branch and diverge. New languages pop up on a semi-regular basis — many of which directly compete with older languages — that do slightly different things in slightly different ways.
In many cases, solving a computer programming problem is a matter of “dealer’s choice” when it comes to what solution is ultimately put in place. A developer or company chooses what tech stack or language they will employ, and how their solution will be configured. It’s incredibly difficult to organize a governing body, or create a certification track, in that sort of environment.
There’s also a marketplace problem that undermines the development and spread of computer programming certifications. With the prevalence of YouTube and Udemy and all manner of less popular platforms charging a couple of bucks (or nothing at all) to teach programming and programming languages, the financial incentive for certification is simply not as lucrative as in other IT niches.
OK, Maybe There Are Some Certifications Here
While all three of these larger issues are driving the scarcity of programming certifications, there’s been no lack of trying across many years, to make such things come to fruition. One of the top IT certification designations for many years was Microsoft Certified Solutions Developer (MCSD). Microsoft ultimately lopped that branch off its certification tree, but still maintains seven different credentials for Azure developers.
Many other popular certification programs have developer credentials for professionals who specialize in designing and building software applications. By and large, however, these certifications tend to focus on working inside a particular environment. Certified professionals mostly learn to program variables within the structure of how a given development system works.
As such, most vendor-specific developer certifications largely test only how well you know a given platform and can design and apply a solution within that software methodology. They do not dive into how one would code or develop a solution. This is why many in the IT industry tend to pooh-pooh vendor-provided development certifications as an indication of programming acumen.
Amazon Web Services (AWS) has also attempted to crack the programming certification nut. Their associate-level AWS Certified Developer credential is among the best-known developer certs. AWS Certified Developer verifies skill at designing, building, and maintaining applications on the Amazon Web Services cloud platform.
Here again, however, what’s mostly being tested is proficiency at using AWS software development kits to improve AWS application performance and make changes within various AWS applications. None of this is meant to imply that developer certifications have no value. With AWS dominating the cloud computing universe, demand for certified AWS developers is booming.
Of note, the AWS Certified Developer exam could represent the future of developer credentials, moving closer to center of the target for testing development solutions. Though it incorporates real word challenges, the exam is structured to allow users to apply an AWS solution that solves a problem without a predetermined fix, circumventing the “more than one way to skin a cat” issue.
One Destination, Many Paths
If “get a certification” is not the answer to the question of how to learn programming, verify skills, and find employment, then what is? This is one area where traditional education still has enormous clout: You can certainly learn computer programming at a college or university, and programming degrees still carry a great deal of weight with potential employers.
There are also plenty of options, many of which cost next-to-nothing, to teach yourself computer programming and programming languages: books, online courses, and even free coding academies like The Odin Project. If you follow this route, then you will need to build up a portfolio or body of work. Nothing can speak to how well you program, solve problems, provide solutions, or have high fluency in a specific programming language like a portfolio.
If you pursue the DIY approach, then you will want to store your portfolio of projects and solutions in an online code repository like GitHub. When a hiring manager asks to you look at your work, you can simply tell them where to look. Whoever is vetting your skills will be able to see firsthand that you have the knowledge and can do the work.
If you don’t have the time or money to pursue an academic degree, but you also want more structure than is provided by learning on the fly, then an online (or in-person) boot camp might serve you well. Programming boot camps are by all accounts worth the money. They provide a certificate of completion as well as help you to grow the all-important portfolio.
There are other reasons to choose boot camps: They can provide an ideal solution for career switchers with no prior IT background. Your time commitment is generally measured in months instead of years. And boot camps are typically well aligned with high-interest programming languages and development niches. Do bear in mind that there’s a lot to learn in a limited timeframe: Be prepared to “drink from the firehose,” as they say.
You can also pay to learn in a more structured environment but go at your own pace. There are plenty of online learning options that won’t break your bank account. Udemy, for example, is a massive online learning platform that hosts thousands of hours of content for individuals wanting to learn computer programming and programming languages.
A few hours before I sat down to write this article, I finished a batch of individual learning programs covering the Python programming language and received a certificate of completion. I have bought more than 100 Udemy courses over the past four years. Some provide a better overall experience than others, but I haven’t found any of them to be useless, or even of particularly poor quality.
If you want to pursue a computer programming career, then there’s no reason to let the general scarcity of professional credentials stand in your way. No matter which education option you choose to pursue, there are near-limitless employment opportunities waiting on the other side.