With organizations increasingly software-driven, demand for software developers is running strong. Software developers with highly specialized skills are particularly prized, and can negotiate for high salaries and great benefits. But how do you actually become a software developer?
Fortunately, there are multiple pathways to a career in software development. By learning new programming languages and tools, software developers can also enhance their careers and explore new areas of tech. Numerous resources—from four-year colleges to online tutorials to bootcamps—can help technology professionals start and grow their careers.
In addition to hard skills, software developers must master “soft skills” such as communication and teamwork, especially if they end up running teams.
Multiple Paths to Software Development Careers
Brianna DelValle, developer educator at Twilio, dabbled in web development as a kid and again in college, but hadn’t thought of tech as a viable career path until a friend took her on a tour of Turing School. “It took me about three years to build up the courage to apply to the seven-month, full-time program at Turing,” she says. “It was, hands down, the best choice I’ve ever made for myself.”
After graduating from Turing, DelValle first worked as a full-stack developer for an airline, but after a year and a half, she realized she missed the creativity that came with teaching, leading her to the developer educator role at Twilio.
Her everyday work as a dev educator includes writing API documentation for Twilio's builder community, creating sample code, QuickStart applications, and tutorials, facilitating hackathons and delivering webinars on Twilio Voice.
Other than the program she completed at Turing, DelValle don't have any formal certifications related to software development: “Most of my learning has been through on-the-job experience, which I think is one of the best ways to learn and hone your skills as a developer.”
After learning the basics of HTML, CSS, and JavaScript, she mastered React, Redux, and testing frameworks like Mocha and Jest. “We worked with Node.js, PostgreSQL, GraphQL, and ReactNative,” she says. “We also learned about browser automation with Nightmare.js, web accessibility best practices, and Git.”
With this foundation, she was able to jump into a full stack C#/.NET role and merged her first PR into production within two weeks of starting. She has also worked with Azure Functions, some legacy jQuery code, TypeScript, and Vue/Vuex, as well as two CMSs, Umbraco and Sanity.io.
Oluebube Princess Egbuna, a software engineer and developer advocate at Spectro Cloud, knew from a young age that she was interested in computer science. After learning the basics of software engineering at school, she felt she still had considerable knowledge gaps, which she filled by enlisting in various bootcamps.
Programming Languages and Soft Skills
From Oluebube Princess Egbuna’s perspective, the most important technical skill is being able to understand the basics of different technologies and knowing how and when to apply them.
When it comes to programming languages, Python and JavaScript have been the two most important. “You can use JavaScript in machine learning, you can use it on the web, you can use it to build mobile applications,” she says. “It's very versatile and the same goes for Python, which you can use to help automation on any platform at all.”
Nicolas Vermandé, senior DevRel manager at Spectro Cloud, says the most important type of skill is being able to understand the problem you're trying to solve, expressing your reasoning with a common language before even thinking about a programing language, and fundamentally understanding how computers work.
"You have to understand how the operating systems works, like CPU and memory and all those little things, so that you can better understand what the computer is doing, because at some point you need to debug things," he says.
Vermandé started programming with C before moving on to Java, then Python, before picking up Rust and Go. He thinks anyone who wants to become a software developer should embrace strong communication, ability to work in a team, and leadership skills.
Egbuna adds it's important to be confident enough to ask for help when you're stuck on a programming problem, and both she and Vermandé pointed to the importance of navigating Stack Overflow, a public platform with a collection of coding questions and answers.
Keeping Software Development Skills Fresh
"Learning never stops when you work in tech," DelValle says. "Thankfully, my teammates are all developers skilled in various languages so we can help each other along the way. Also, a few of us took an iOS course with Big Nerd Ranch this year, since iOS development was one area we wanted to improve."
Egbuna says being a part of the software development community has been a critical part of her career path, whether through Stack Overflow developer surveys or attending conferences and other events where she can accrue new knowledge. “I try to limit what I'm learning to my career path or to where I want to get to in the future,” she explains. “It's not just about being in any community, but the right community.”
Vermandé lists RSS feeds, YouTube channels, influencers and books among his chief resources for staying up-to-date: “Once you have discovered something like a new language and want to learn more, go to a conference focused around that topic and talk to people.”
Both Vermandé and Egbuna also stressed the importance that the role of a mentor can play in building up skills.
Networking and the Curiosity Factor
"Don't be afraid of networking," DelValle says. "Attend meetups, workshops, join a Discord server or a Slack community. I hated networking at first, but it gets easier and it's worth it."
It's also important to keep track of your accomplishments, no matter how small. “Sometimes called a brag doc, you need a way to track the work you're doing,” she says. “The nature of remote work can obscure our impact, and the speed of tech development can prevent us from reflecting on our performance. Did a coworker say something nice about your work in Slack? Bookmark it. Have a quote from a customer on how you directly affected their work? Screenshot it.”
Tech companies can experience exponential growth, constant change, turnover, and shifting priorities, which means software developers need to keep their skills (and resumes) perpetually up-to-date. “This isn’t going to change, but you can prepare for uncertainty by creating, relying on, and reusing playbooks, guidelines, or a work philosophy,” DelValle adds. "This will be better for your team and will allow you to be proactive when faced with novel or ambiguous situations."
DelValle, Egbuna and Vermandé all agree that a healthy sense of curiosity is a must-have skill for those considering a career in software development. “Always Google things—if you come across something you don't know, check it out,” Egbuna says.
Vermandé says it's also important to ask for feedback on what you've done. The developer industry is competitive, and getting honest criticism will help you improve faster. “You have to reinvent yourself quite often,” he adds. “The end of your curriculum path is just the beginning of your learning. In university, they teach you how to learn. But as a software developer, you must continue learning for the rest of your life and your career.”
Related Software Developer Jobs Resources: