Posted on June 7, 2017
Companies are struggling with a widening tech skills gap, particularly in computer programming skills. In a 2017 Career Advisory Board tech skills survey, 60 percent of employers said most job applicants lack the technology skills key for success in their career. Moreover, 50% of employers indicated a tech skills gap in their current employee base.
But what are these tech skills gaps and how can your company upskill its current workforce? In the same Career Advisory Board survey, 76% of employers indicated key programming skill shortages in cloud computing and 72% in internet of things.
With the advent of the cloud and mobile devices to the Internet of Things, your company’s engineering team is constantly challenged and stretched to accommodate new technology innovation.
In the past, programmers built software applications with one single language for use on a desktop computer. With the rise of the cloud, this is no longer the case. Software doesn’t come in a box. It now sits on the web as part of a larger ecosystem for users to access or download.
This means developers must have a diverse set of ever-evolving programming skills to support a wider range of platforms and mobile devices. To keep up, today’s developers need to continuously add new know-how into their skill-set.
To help close the tech skills gap at your company, what skills should your engineering teams focus on adding to their toolbox? Based on my experience as a software developer and a Udemy programming instructor, here are the 4 programming skills your engineering team should master in order keep up with technology changes.
Since most software applications are released online today, core web application development skills are in high demand, and will continue to be moving forward. Companies need what we call “full-stack developers”—people who are well versed in every layer of the development stack from the back-end to the front-end.
What does this mean? When using Facebook, the “front-end” is the site you interact with, but when you upload a photo or status update, this data is pushed to the “back-end” database. Ideally, your developers should be well versed in server, client and hosting, data structuring and modeling on the back-end, and user interface and experience on the front-end.
With that said, it’s relatively rare to find a developer who is an expert in all these areas. It’s quite common in the industry to find a developer who is an expert at the front end or the back-end. This is especially the case with larger companies.
Mobility is a trend that’s only getting bigger. Being able to give customers what they want, irrespective of the device and platform they’re on is increasingly important. Different shapes and sizes of mobile devices from various smartphones, tablets, or smart watches create headaches for developers as they decide what operating system (OS) to optimize for and what kinds of tools and platforms to use in the development process.
The good news is there are new cross-development tools your engineering teams can learn that makes it easy to create applications across different devices. For example, Microsoft’s Xamarin enables developers to write software that works on a variety of platforms like Windows and Mac OS X as well as mobile platforms like iOS and Android, without requiring a separate version for each platform.
New programming languages like Python have risen in the new cloud-based ecosystem, while traditional languages like Java still continue to be popular. Python can be picked up quickly by developers and enables them to be productive in a very short time, compared to traditional languages. The language is also highly versatile and popular with many Fortune 500 companies. Google uses Python in their Search engine, Intel for testing microchips, and Instagram for powering its back-end web development.
While some developers tend to dismiss Java, this popular language isn’t going anywhere in the short to medium term. The reality is that the bulk of Android app development is done in this language and Java Enterprise Edition (JEE) is the primary choice for large-scale business systems. The Spring Framework is one of the most popular frameworks for Java Enterprise Edition (JEE) development.
The programming languages your company should invest in to upskill your engineering teams will be based on your current technologies and the legacy code involved. Python and Java are a safe bet due to the popularity, maturity, and versatility of the languages. Both also have extensive code libraries and user groups to help developers identify the appropriate code for specific situations.
Finally, two key traits I feel all developers must have are: (1) the ability to experiment and try things out, and (2) the ability to research and identify answers online.
Back when I started programming, the Internet in it’s present form didn’t really exist. We didn’t have online video courses from Udemy or sites like stackoverflow.com—a popular forum for programmers to pose technical questions. Textbooks went out of date quickly. As a result, I was forced to experiment and try things out for myself rather than just leaving a question in a forum and waiting for an answer.
Fast forward to today, and I still advise developers to do it themselves. Type in that source code, and if it doesn’t work, try something else. Experiment! This really helps them gain a deeper understanding of the problem. Today, the Internet is an absolute godsend for developers. There is so much information available. Don’t know how to deal with a particular error? Paste the error into Google to find how other developers have dealt with it. With developers sharing their coding best practices in code libraries, solutions are easier to find.
In addition, reading the programming language or framework documentation, while dry at times, is a great way for developers to understand how things work. Framework documentation can include support programs, code libraries, tool sets, and API integrations. These concepts are discussed at length in my Python, Java and Android courses on Udemy. I’ve found a deeper grasp of the background framework on how to use the code tends to make developers better at their craft.
Ensuring your engineering team masters multi-programming language skills is going to be critical to closing the tech skills gap at your company. In today’s world of multiple platforms combined with a steady stream of new devices, your engineering team should consider staying up to speed with Udemy for Business—an agile learning resource that’s driven by market demand and updated in real-time.