Amalgam Insights Analyst Tom Petrocelli Suggests Four Vital Skills For The Modern Developer
Modern IT is like that as well. The vast majority of IT systems today are based on technology from the early 2000s or earlier, such as Java, middleware and Virtual Machines (VM). New technology and methodologies, however, have been percolating for years or decades, and are now bubbling up to the surface.
Given my profession as an industry analyst, I’m often asked by developers what new skills they should learning. This is my list.
1. Microservices Architectures
A microservices architecture uses small pieces of limited-purpose code to create systems. It’s like using Lego bricks to build a fire house — small units of reusable functionality are brought together to create the final product.
Containers are an operating system construct. Unlike virtual machines, which are a piece of software that runs an emulated hardware environment, containers are a form of virtualization defined by operating system level process and resource isolation. Containers provide higher capacity utilization than a VM, don’t require an entire OS stack, and are especially useful for creating microservices architectures. Containers were popularized by Docker, CoreOs and others.
3. Modern Languages
Python — Python has been around for 30 years but has more recently exploded in popularity. Part of the reason for the interest is its inherent data structures, including key:value structures called dictionaries, are highly efficient for processing large amounts of data quickly. This has made it a language of choice for data analytics and AI.
Go/Golang — Go a.k.a Golang excels at run-time efficiency and high-performance networking. It is the language that Kubernetes is written in. Developers like the ease with which applications can be written in Golang.
Rust — Developed by the Mozilla Foundation, Rust is designed like other curly bracket languages such as C++ and Java but with high performance and extreme memory safety. It is the language, going forward, that is used to build the Firefox browser.
4. Project Management
Two important development paradigms are quickly becoming ubiquitous: Agile and DevOps. Neither is technology but both benefit from a technology boost. With Agile, development is broken into small teams which make decisions independently and are self-governing (in theory at least). It is iterative, with features evolving over time. This is in contrast to waterfall which assumes all features are well known at the beginning of development. In the most popular implementation of Agile, called Scrum, development is timeboxed, or cut into small swift sprints. The pace and rhythm of Agile and Scrum can be difficult to adapt to for some developers. It can also place strains on the business as close involvement between various corporate functions and the development team is necessary to keep the process moving.
There are, of course, many other technologies that one might learn such as AI, or specific application frameworks like React. They represent specific technology choices. On the whole, skills that matter most are broader than that. Choice of languages, new architectures, and updated ways of doing work set a better base from which to explore other types of skills that will be beneficial to one’s career. Represented here are a few of the more prevalent ones, and arguably the more important ones. They are the start, not the endpoint for obtaining the skills of the modern developer.
Tom Petrocelli is a contributing analyst with Amalgam Insights. His area of interest is collaboration and new ways of work, developer tools, IT project efficiency, governance, and methodologies, and DevOps.