Tim Buchalka

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.

What is behind the tech skills gap?

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.

4 key tech skills for today’s developer

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.

1. Web application development

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.

Examples of skills required for front-end development are Javascript or HTML, while some of the back-end programming languages include Python, Java and PHP. Today’s modern developer should learn as many programming languages as they can—so they can apply the right one to the right situation.

2. New cross-platform development tools

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.

3. Python and Java are the in-demand languages in a new cloud-based world

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.

4. Research, experiment and try things out

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.

Closing the tech skills gap through agile learning

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.

Java Programming Masterclass updated to Java 17
Tim Buchalka, Tim Buchalka’s Learn Programming Academy
4.5 (176,243)
Android Java Masterclass – Become an App Developer
Tim Buchalka, Jean-Paul Roberts, Tim Buchalka’s Learn Programming Academy
4.3 (10,344)
Learn Python Programming Masterclass
Tim Buchalka, Jean-Paul Roberts, Tim Buchalka’s Learn Programming Academy
4.6 (96,573)
Android App Development Masterclass using Kotlin
Tim Buchalka, Jean-Paul Roberts, Tim Buchalka’s Learn Programming Academy, David Reidy
4.3 (5,766)
Java Spring Tutorial Masterclass – Learn Spring Framework 5
Tim Buchalka, Tim Buchalka’s Learn Programming Academy, Goran Lochert
4.3 (6,154)
Learn C# for Beginners Crash Course
Tim Buchalka, Jean-Paul Roberts, Tim Buchalka’s Learn Programming Academy
4.7 (1,725)
Learn Java Programming Crash Course
Tim Buchalka, Goran Lochert, Tim Buchalka’s Learn Programming Academy
4.6 (3,489)
Data Structures and Algorithms: Deep Dive Using Java
Tim Buchalka, Goran Lochert, Tim Buchalka’s Learn Programming Academy
4.5 (13,878)
Kotlin for Java Developers
Tim Buchalka, Goran Lochert, Tim Buchalka’s Learn Programming Academy
4.5 (3,890)
Java SE 11 Developer 1Z0-819 OCP Course – Part 1
Tim Buchalka, Tim Buchalka’s Learn Programming Academy
4.5 (3,213)
Java SE 11 Developer 1Z0-819 OCP Course – Part 2
Tim Buchalka, Tim Buchalka’s Learn Programming Academy
4.5 (851)
Introduction to Continuous Integration & Continuous Delivery
Tim Buchalka, Tim Buchalka’s Learn Programming Academy, Eduardo Rosas
4.5 (3,904)

Courses by Tim Buchalka

Page Last Updated: February 2020