The job market for developers and programmers, despite recent layoffs across the tech sector, remains healthy.
A recent report from IT consulting firm Janco Associates reported the tech job market expects to add 174,000 new jobs in 2023. Further, tech unemployment, at 1.8%, is nearly half the overall national unemployment rate of 3.5%.
Security professionals, programmers and blockchain processing IT professionals are especially in demand with more than 145,000 unfilled jobs.
In fact, few programming skills become irrelevant. A healthy market still exists for common business-oriented language (COBOL) programming, after all. Yet, the question remains: Where should programmers and developers focus their efforts for in-demand jobs?
What is computer programming?
Computer programming is a multistep process of creating an application that executes a task on a computer or device. These applications are written in a programming language, a series of instructions or actions for the computer to take. The programming, called source code, is stored in a file before being compiled into an application.
There are many programming languages, but all eventually are converted into assembly code, which is executed on the computer. Applications are not written directly in assembly code because assembly is extremely difficult to program directly. Programming languages hide this complexity through abstraction, which simplifies a codebase.
Programming is one step in a lengthy process. Applications must be designed, planned and plotted out before code is written. Only after the application has been designed -- and all its major features defined -- does programming begin. Testing and debugging -- looking for errors -- follow. Only then can the application be deployed.
How has programming changed?
Some languages have endured. Other languages have emerged in recent years for newer use cases.
But the biggest change in programming today is its near-ubiquity in the developed world. Gone are the days of mainframe-based text applications displayed on a basic green screen. Applications now run on phones and watches, in cars on the road and on appliances in the kitchen.
There has also been a change in the structure of applications. From the mainframes of the 1950s to the Windows desktops of the 1990s, applications ran in one place: the computer on which it was installed. In the era of the web and mobile devices, applications may be broken up between the endpoint or client and the server.
In addition, the advent of integrated development environments (IDEs), which generate a great deal of basic code, has simplified programming, saving developers time otherwise spent on less important programming. IDEs also debug in real time, so developers don't have to stop, save the app and run a compile for testing.
Finally, generative AI is speeding up the programming process like never before. Developers experimenting with ChatGPT and other generative AI programs are building whole applications in days instead of weeks. This has raised the possibility and fear of job losses. However, a potential outcome, based on the tech sector's history, is an increase in job opportunities from this change.
While a bachelor's degree in computer science from Stanford is a definite door opener, the industry is replete with success stories of the self-taught.
There are many resources available online -- from courses and tutorials to communities of programmers ready to answer newbie questions -- to learn and develop the needed skills. In addition, countless books can provide the basics of programming.
Different languages for in-demand jobs
Computing plays a part in everyday life, and all that hardware needs to be programmed. Languages used in programming include the following:
- Python. Python is one of the most popular of the newer languages because its simple syntax makes it easy to learn for people new to programming. It's also quite versatile, with uses such as web development, data science and machine learning (ML). Few languages boast such flexibility. Python is a free and open source language, not owned by any single entity.
- PHP. PHP is like Python; it's easy to learn, versatile and open source. The key differences are that PHP is slightly more complex to learn, but it has more versatility in use. It can also be slightly slower than Python.
- Java. After more than 30 years, Java remains a popular programming language for developing web apps, mobile apps and enterprise software. Because it has been around so long, there is a wide array of source code available and a busy, active community to help fellow programmers.
- C++. C++ has been around since the 1970s and is a powerful programming language used for developing high-performance client and server applications. It is also used in game development and systems programming; both are areas that demand peak performance.
- R. The R programming language is primarily used in one field, but it's a big one: data analytics and data visualization. As analytics has become increasingly popular, so has the language used to process the data and display the results.
- COBOL. COBOL, which debuted in the 1950s, was the language of choice for mainframe development. Thousands of corporations around the world still run COBOL applications that are decades-old. In mission-critical environments, the old adage, "If it ain't broke, don't fix it," applies, and these applications have been left deployed for generations. Someone needs to update them, so COBOL programmers remain in demand.
In-demand programming jobs
Here are some of the most respected, relevant developer and programmer jobs in 2023.
Full-stack developers are skilled in both front-end and back-end development. Many developers focus on one end of the stack and understandably so since both the client and server are increasingly complex. Having skills in both client-side and server-side programming makes these developers versatile and in demand.
Data scientists are often not programmers but come from other disciplines, such as mathematics and statistical analysis. They deal with large volumes of data to extract insights and make data-driven decisions, utilizing statistical modeling, ML techniques, and highly specialized programming skills to process and interpret data, as well as develop predictive models.
DevOps engineers are in demand because, like full-stack developers, they are responsible for the entire software development lifecycle, from design to development, testing, deployment and operations. Many developers become experts in one portion of the stack, such as programming or testing. A DevOps engineer is skilled at all of them and, perhaps most importantly, thrives under pressure. Because DevOps is all about constant updates and delivery of software, fast turnaround is required.
Cybersecurity specialists are in high demand due to increased threats faced by companies and governments alike. Also, the consequences for a security breach can be considerable, ranging from fines in the millions to jail time. So, cybersecurity should be taken seriously at all levels of the public and private sectors.
Cybersecurity specialists work on identifying vulnerabilities, implementing security measures and responding to security incidents. Much of that involves using security software, but there is also some development involved. In addition, given the proliferation of open source software, security issues can be found simply by looking through the source code.
Mobile app developer
An ever-increasing amount of business is being done on smartphones and tablets, which are completely different environments from laptop PCs. Mobile app developers build applications that run on a screen as small as 5 inches and connect over notoriously insecure wireless networks.
Building applications for smartphones and tablets requires a different language skill than applications for PCs or the web. They require expertise in mobile app development frameworks and mobile-specific programming languages, such as Swift (iOS) and Kotlin (Android).
Business and industry are gravitating to blockchain technology, so more and more blockchain developers are needed. Demand is high because there are few skilled developers in the field. It is new, emerging and difficult to learn.
Blockchain is a distributed ledger technology that enables secure, transparent and tamper-proof transactions. It is especially popular in supply chain management, financial services and healthcare. Blockchain tools are free and open source, so there are a variety of tools available to study, as well as a growing community of developers from whom to learn.
Learn about must-have blockchain developer skills.
A good interface makes all the difference between a good user experience and a bad one. That's why there are specialists who focus solely on user interface (UI) and user experience (UX) design. Their focus is on creating intuitive, easy-to-navigate and visually appealing interfaces for applications and websites. Their discipline focuses more on layout design than programming.
Learn the difference between UI and UX design.
Cloud computing continues to gain popularity, but its use is evolving. Initially, enterprises saw the cloud as the complete solution to their on-premises IT infrastructure problems and wanted to move entirely to the cloud. Time and experience proved this an ineffective option. Today, many enterprises are adopting a hybrid cloud balance; some applications and data stay within the confines of the data center, while some go to the cloud.
Cloud engineers strike the balance in a hybrid cloud by designing, implementing and managing cloud infrastructure. They work with a combination of on-premises IT technology and cloud service providers, like Amazon Web Services, Microsoft Azure and Google Cloud.
Augmented reality (AR) and virtual reality (VR) technologies have experienced a slow and rocky start, mostly because people don't like wearing that heavy headset. Nonetheless, AR and VR are gaining momentum in fields such as gaming, education, service and repair, and architecture.
AR/VR developers build immersive experiences by creating interactive virtual worlds or augmenting reality with computer-generated elements. That makes development of proper applications extremely challenging. Adding to the difficulty, there is only so much computing power that can be installed in the AR/VR headset. Therefore, developers have to create realistic, immersive worlds with limited processing power.
Artificial intelligence (AI) -- machine learning (ML) in particular -- is white-hot right now, but the skills to excel in this field are complicated and difficult to obtain.
First, ML models are generated from data, and those models are only as good as the data they are trained on. This means data collection and preparation are critical in the ML development process. Additionally, they can be time-consuming, boring and challenging all at once.
Second, model selection is required. There are a variety of ML models available, such as linear regression, logistic regression, decision trees and neural networks. Each model has its own strengths and weaknesses, making it difficult to select the right model for a particular project.
Once a model is trained, it is performance-tuned on a test data set to see how it performs. Once a model has been developed, tested and optimized, it is deployed in a production environment.
Finally, it is important to monitor a model's performance after it is deployed and then continuously update, optimize and tune it for better performance. In short, ML development and deployment are extremely involved and require multiple development skills.