How to become a software engineer


Software engineers are more in demand than ever. Organizations around the world need engineers who can use a variety of programming languages, frameworks, and tools to build next-generation apps, websites, and services. Software engineers also have many opportunities to move into new and unexpected roles. For example, you might start as a Python-focused engineer, only to find yourself involved in machine learning.

But how do you become a software engineer? What do you need to know and what types of career paths are available to you? We spoke with a few experts to guide you to software engineering and a long and successful career.

Do you need a college degree to be a software engineer?

“I don’t think there’s a specific degree or training someone needs to become a successful software engineer,” Troy Fendall, software engineer at Opendoor, told Dice. “While having a degree in Computer Science (CS) is valuable, it is not a requirement for success in this field. I’ve witnessed and worked directly with talented engineers from a variety of backgrounds – those with college degrees, peers who graduated from coding bootcamps, and the self-taught. In fact, when companies hire engineers from diverse backgrounds, I’ve found you can create better end products with unique perspectives.

Danylo Tolmachov, Senior Director of Software Engineering at Techstack, agrees, “It’s nice to have [a degree] related to computers, but I knew a lot of people without specialized training who became very good engineers.

“There are a lot of successful self-made professionals,” says Sergii Zhuravel, lead software engineer at Absio.

One thing all of our experts agree on is that while a formal education may not matter, mastering important skills is essential. During the job interview process, recruiters and hiring managers will inevitably subject you to technical interview questions designed to assess your skills, including take-home whiteboard and coding tests.

What skills do software engineers need?

“Passion comes first,” says Maksym Mostovyi, software engineer at Rain. “If you are passionate about what you do, it will be difficult to build a successful career and maybe even land a job as a software engineer. On top of that, I would say attention to detail, ability teaching others and self-discipline are also important.

Fendall says, “There are four key skills necessary for software engineers to be successful in their careers: coding, problem solving, collaboration and ownership. For someone looking to get started as a software engineer, they need to master a programming language or two. Along with the nuts and bolts of writing code, a successful software engineer must also be able to understand a problem and come up with one or more solutions, while understanding the trade-offs.

Any aspiring software engineer should also commit to building their “soft skills” such as empathy and communication, as many engineers work as part of a larger team and need to communicate the details of their work to parties. stakeholders inside and outside an organization. “Another key trait is collaboration,” continues Fendall. “You have to be able to work with other people from different disciplines and backgrounds. It involves clear communication and often compromises. It is beneficial to have strong opinions, but it is important to hold them freely. »

Last but not least, ownership is essential. “Hold yourself responsible for reaching out and unlocking any obstacles you may encounter; don’t wait for others to ask you if you’re stuck on something. Make sure everything works once deployed and take responsibility for fixing bugs if it doesn’t,” Fadell says.

The key to remember is that being a team player is just as important as knowing how to code well. The era of a head-down developer coding in isolation is largely over.

Is there any specific training that software engineers should take?

Specific training can largely depend on the specialization of the software engineer. For example, the programming languages ​​and tools needed to become a cloud-centric software engineer differ from those required for a specialization in machine learning.

Many software engineers debate whether they should pursue formal training for two or four years versus bootcamps and/or self-study. For those looking to jump into a career as a software engineer quickly, a quick bootcamp might sound perfect, but as Zhuravel notes, bootcamps aren’t necessarily for everyone.

“You can’t become a software engineer after a bootcamp,” he continues. “But if the question is for software engineers who have already started their career, I would suggest getting training to improve the most important skills for software engineers. The main rule is: it’s good to learn from new things, but we also need to train our existing skills. Sometimes it’s better to learn more about the tools we already use than to learn something new just for fun or because we might need it. in the future.

Whatever your educational background, you can’t beat the real-world experience. “The most effective education comes from solving a real problem in a real company,” adds Andrey Sundukov, Java software engineer at Step. “To find your first job, you need more practice. Try solving real problems for real people. Make pet projects or participate in some. This project should be on your resume as work experience. Since you have it, you have a much better chance of getting the first real job. Then ask your employer about the courses. It should be the most efficient way to spend time and money on education.

Keep in mind that your software engineer CV should be “results-oriented”, emphasizing how your past work and projects have translated into concrete, positive results for organizations. Always be sure to use your experience section to show how you effectively used your skills and knowledge to complete the projects. If you don’t have much experience, you can use your personal projects and education to show that you have what it takes.

Mostovyi adds: “The best training is practice. I would definitely suggest practicing as much as possible. It’s great to try building things on your own, starting with small things and favorite projects to bigger ones.

Overall, you should emphasize accumulating experience as much as possible, whether in an organizational setting or through personal projects. “I think the most important thing is to start gaining experience,” adds Michael Saccotelli, director of Microsoft solutions development at SPR. “Ideally with a team of people. Working and learning on your own can be a great way to go beyond what you know, but unless you’re in a situation where you can fail with minimal consequences, it’s probably best to have a place where you can learn from your team. Working in a team also teaches you to work in a team. Most software engineers don’t work in a vacuum, so being able to function and work with others is essential. »

Fendall agrees on the need for as much experience as possible, especially on teams of software engineers and other technology professionals: “My advice is to do anything that provides experience coding products from quality of production and teamwork. College programs and bootcamps can provide this, but those who are self-taught can gain this experience by working on open source projects. However, I think the most beneficial training is what you learn on the job.

Fendall adds, “I got my bachelor’s degree in computer science, and even with a ‘traditional’ education, I acquired most of my practical skills through real-world work experience. My schooling focused on the fundamentals so I could establish a foundation to build on. But my willingness to continually learn is what I attribute my professional success and accomplishments to. For example, when I joined Opendoor as a software engineer, I had no experience in Golang, which is one of the main languages ​​we use. However, since I had knowledge of other languages ​​and an openness to learning new concepts, I was able to get used to it quickly. And that holds true for many other things I’ve learned throughout my career.


Comments are closed.