Ever thought you might want to become a software engineer? But what do software engineers do? Well, here are some options. You could find yourself:
- Controlling the movement of assembly line robots.
- Creating the intelligence of online characters like those found in games like The Sims.
- Developing software for GPS so drivers don’t get lost.
- Writing software to make it possible for people to communicate over great distances. Think of the benefit small companies now have to hire workers from all over the world. And how remote office environments have radically changed conditions of employment.
Dr. Melanie Willett, content writer at HyperionDev and former ICT lecturer at Nelson Mandela University and CTI Education Group, explains that there is a difference between a developer and software engineer. “Put simply,” she says, “the difference is that a developer is usually thought of as someone who mainly writes code to solve a problem, whereas an engineer, engineers the solution to the problem. They design the solution, see which components are needed for the solution, how they interact with other systems and users etc.”
So if you’re someone who wants to develop cool video game computer software or you want to make the software run faster on different computers or those that have different operating systems, you should think about software engineering. You’re basically using computer skills to solve problems with software and software is everywhere.
Think about it. Says Willett: “Software affects almost every aspect of our daily lives. You cannot go a day without encountering some sort of software; software is everywhere.” The interesting thing that you may not realise is that software is not just a computer program that provides specific features and functionality. It also includes all the associated documentation and configuration data to ensure that the software operates smoothly and effectively. And of course, there’s also software sold onto customers, known as software products. Software engineering is basically an engineering discipline concerned with the development of software products, using well-defined scientific principles, methods and procedures.
<Quick Read: If you want to more about what a software engineer does on a daily basis, then read this interview with Jeff Hagen who works as a manager for a team of software engineers.>
Software Engineers: Key Requirements
So have you got what it takes to be a software engineer? The good news is that you don’t need a Computer Science degree – an informal education is sufficient (such as an online coding bootcamp), as long as you learn the appropriate technologies and can code proficiently. In addition, companies frequently look for other things besides your credentials. This includes big tech companies like Google, which, in a New York Times piece, states that the “proportion of people without any college education…has increased over time”. And that cognitive or learning ability, the skill of processing on the fly, is more important.
If you want to become a software engineer, you should possess the following:
- Deductive and inductive reasoning
- Mathematical reasoning
- Original thinking
- An understand of what people want from their computers
As far as computer languages and technologies go, Willett explains that it depends on the application you’re building and the environment in which you find yourself. In the Software Engineering Bootcamp at HyperionDev, we teach Java and Python, which are good languages because of their “versatility and their ability to be used to build many different types of applications in different environments – e.g. desktop, mobile and web,” she says. Besides programming languages, you should also be comfortable working with one or more software development frameworks, such as Eclipse or Django, and you should have a good grasp of how to apply the most important aspects of computer science, data science and software engineering to the software development process.
<Read about how to become a software engineer in South Africa.>
If you decide to switch careers to become a software engineer, what can you expect?
Software Engineering: The Working Life
Good Job Demand
In the US, there are currently about 718,400 Software Engineers. This is expected to grow by 24 percent from 2016 to 2026, much faster than the average for all occupations, according to the Bureau of Labor Statistics. Also, increasing automation of various industries will contribute to that growth, as well as greater concern about computer security.
High Pay
The median US salary for software engineers is $98,260 per year, with a range between $57,340 and $153,710. Here is more information on developer salaries by region internationally.
Wide Range of Work Environments
Although you’re likely to work in a tech company, this doesn’t have to be your only option. As can be seen from the graph below, there are a wide variety of settings that will appreciate your software engineering skills.
Lastly, what makes a good software engineer? Here are a few ideas.
Software Engineers: What Makes a Good One?
You might think software engineering is just about technical experience and knowledge. However, this is not entirely true. A good software engineer is more than the sum of their technologies with which they have worked. Below is a list of some important characteristics embodied by these professionals:
Passion for code – you should have an inherent interest in programming and enjoy working with code.
Good team player – you’ll frequently find yourself working as part of a team.
Excellent communications skills – you have to be able to communicate with team members and clients, as well as write reports and give instructions.
Curious – you’ll be the sort of person who wants to know why and how things happen. This enables you to think out the box and come up with creative solutions.
Broad technical experience – you should know a variety of computer languages, as well as agile methodologies, task management software and version control. And of course you must be willing to continue studying and learning new technologies.
Check out HyperionDev’s Software Engineering Bootcamp.