Software engineering is one of the fastest growing and highly paid careers, which means many people are vying for a position. Luckily, there’s more than one path to success.
At its core, software engineering is problem solving. While technical skills are important, technology is always changing. Even seasoned professionals are constantly learning how to do something new. As a result, software engineers come from many backgrounds. Some opt for the traditional route, majoring in computer science in college, while others switch mid-career.
We sat down with two engineers who work on the development team at our partner, Anaconda, Inc., to learn more about their individual journeys. Ken Odegard took the more traditional, academic route, while Bianca Henderson is self-taught and transitioned to software development later in her career.
Here’s what they had to share.
There’s no wrong way to become a software engineer
So you want to become a software engineer? Good news: there’s no wrong way to do it.
The right path depends on where you’re at in life. How much time are you able to spend learning new skills? How much money do you want to invest?
Here are a few ways to help you get there:
- Traditional education: A four-year degree at a college or university is a more traditional path to software engineering, with education that focuses on theories over hard skills. However, it’s also the most lengthy and expensive option
- Bootcamps: Multi-month courses (like General Assembly’s Software Engineering Immersive) or trainings focused on specific languages, frameworks or skills can help you become a software engineer without a college degree
- Hacker: Self-taught engineers often embark on learning new skills solo, leveraging any free resource they can get their hands on and learning on the fly (e.g., by using developer tools in the browser to see how web pages work).
While these are some ways to get started, any seasoned engineer will tell you that with technology always evolving, your time as a student never really comes to an end.
“Whatever path you choose, remember that no matter what course you initially chart for yourself, your career as a student will always look very different from your career as a software engineer,” said Ken. “Furthermore, the road never ends; there’s always more to learn!”
Understand what coding role you want to pursue to narrow in on your dream job
Just as there are many paths to becoming a software engineer, there are similarly many different paths a career in software can take you. As you take the leap into software development, consider what role might be right for you.
The main types of software engineers fall under four categories:
- Front-end developers make applications and websites functional, efficient and designed to optimize the user experience
- Back-end developers work on server-side design, building and maintenance
- Full-stack developers have both front-end and back-end skills
- Quality engineers focus on quality assurance checks throughout the development cycle, performing tasks like automating tests and identifying issues that arise from testing.
So how do you decide? If you love the idea of working with UX and design, a career in front-end web development may be for you. Alternatively, if you love solving puzzles and playing logic games, a career in back-end development could be best. Fall somewhere in between? Consider full-stack development.
The best way to understand which path is right for you is to connect with engineers in the role you’re interested in to understand their day to day and whether it’s interesting to you.
“After months of shadowing different engineers and reading their code, it became clear to me that back-end work was, in my opinion, the most ‘puzzle-y,’ and since I love logic games and puzzles, it was the best fit for me,” said Bianca. “Understanding this was a huge boon to achieving my goal of working as a programmer.”
Build confidence through your allies and mentors
Just like talking to people in the role will help you decide if it’s a fit, building your network will help you continuously develop your skills, receive feedback and uncover new opportunities.
According to Bianca, having multiple mentors while working in tech can make a huge difference, especially if you struggle with imposter syndrome, which can strike even the best engineers.
“You can talk to multiple people regularly, and learn many different approaches and methods,” she explained. “This is a great way to figure out what your own style is, and to develop it with confidence as you receive regular feedback.”
Software engineers who identify as part of an underrepresented group, however, may struggle to connect with other colleagues like themselves, Bianca said.
“There will be times when negative interactions happen or identity-related self-doubt creeps in, so make sure you surround yourself with kind people as much as possible,” shared Bianca, who recommends seeking out an employee resource group (ERG) to build a network of mentors and allies. “If there isn’t an established group that is accessible to you or others in your role, consider starting one.”
Always be learning
The pace of technology evolution is only accelerating, so the most important skill you can develop as a software engineer is the ability to adapt. It’s easy to go on autopilot, but the most successful engineers adopt a growth mindset.
“As you learn and the world around you learns, a previously solved problem can be solved again using a different technology, theory, or perspective, and could result in a more elegant solution,” said Ken.
Whether you are post-bootcamp or just landed your first coding job, you’re never done being a student. It’s important to keep your skills relevant by learning new techniques and technologies early and often.
“Tomorrow’s tech stack doesn’t exist yet, and project management methodologies are ever-changing,” added Ken. “The workforce you enter today will not be the one you exit years later.”
One last piece of advice?
“You can’t rush learning,” said Bianca. “Take your time and try to enjoy the journey!”
Interested in trying out a career in coding? Try one of our free intro classes here.