The demand for highly skilled software developers has been growing fast for years but shows no signs of stopping. Experts expect the market for software developers to grow 21% over the next 10 years, much higher than the average demand for other occupations.
While job opportunities may be easier to come by, software engineering is a competitive field where differentiation is becoming more critical. Developers today can choose to focus on a wide variety of languages and platforms, career trajectories, and ways to contribute uniquely to their teams (or stand out from competing applicants). So how do you determine where to invest your time and energy? Here are three ways you can improve your software development skills, broaden your knowledge, and decide what to specialize in:
No one has time to achieve proficiency across every language and framework. Of course, you might want to boost your skills in a couple of new software development technologies. But don’t forget to look at the big development picture: process management, workflows, project management, tooling, team culture, communication, and so on. Identify a few areas that are meaningful to you right now, and set some small goals. Here are some ideas:
Knowing what you don’t know—and what you need to know for personal and career growth—will help you focus on the areas that matter the most beyond language and framework knowledge.
As a developer, you’re a deep well of unique, specialized knowledge you’ve acquired from your formal education, all the learning opportunities you’ve taken advantage of, and a career full of analytical problem solving (and not a small amount of trial and error). Why not tap into the unique, specialized knowledge of your peers? Collaboration is a great way to learn from other software developers and diversify the ways you accomplish tasks.
Pair programming is an excellent way to improve software development skills, but it’s not always practical. Luckily, there are dozens of collaboration tools available, from Slack to Stack Overflow. Many of these products let you get solicit feedback while you’re in the middle of a project or tackling a particularly tough problem.
Many developers don’t see security as a skill, but it is. If you do it well, coding securely allows you to write code faster and prevents you from having to scramble to make last-minute changes (or worse, release a codebase that’s easy to break into).
The demand for secure software development skills keeps growing. Learning these skills is an easy way to set yourself apart in a competitive job market. Kaspersky Lab’s 2019 IT Security Economics Report noted 66% of both large and small companies were planning to increase their investments in specialist IT staff over the next year.
The reason: Investing in security pays off. The survey found that having an internal security operations center cut the financial impact of a data breach nearly in half ($675,000 as opposed to $1.4 million). Developers who can help prevent these kinds of incidents are inherently valuable to any software development organization that deals with data, not just those in traditionally risk-averse industries such as healthcare and finance. Here’s how to get started:
Every company everywhere struggles with security. Why reinvent the wheel when expert guidance is already available? The Building Security In Maturity Model (BSIMM) is a helpful tool to learn more about software security. The BSIMM describes over a hundred software security activities practiced by real-world development organizations. Download it for free and get inspired to work on the software development skills that have the most impact.
Software developers know that no technology is free from security problems. Open source software is a great example. Even though an open source project might have thousands of eyes on it, new threats in popular open source components are discovered every day. Take an inventory of your stack and learn more about the risks inherent to each framework, language, third-party service, and open source component.
Writing use cases is part of your daily process. So why not incorporate the practice of writing abuse cases? Train your brain to start thinking like an attacker. Ask yourself questions like “Why would someone want to exploit my code?” and “How would they go about breaking in?” Put your hacker hat on and start building security into your applications.
Code reviews are great but can be infrequent and inconsistent. Instead, look for a tool that automates code reviews, surfaces open source issues, and integrates with your build process. Even better, find an IDE plugin for secure development. You’ll save hours of triaging and learn how to fix a huge number of issues before they leave your desktop. And as you know, learning by doing is the best way to boost your software development skills, hands down.