From Instagram and Snapchat to Sims Mobile, Microsoft Word and Google Chrome, the apps and programs you use every day didn’t come from nowhere.
Software engineers are the creative, problem-solving gurus behind everything that makes our electronic lives easy and entertaining. In this article, we explore what the job involves and how to become a software engineer.
'Think you've got the creativity, determination and problem-solving skills to craft the next Facebook or mobile game from code? Find out how to become a software engineer'
What is a software engineer?
Software engineers listen to clients’ needs and work out how to create software to achieve a particular function. They oversee the process of designing, building, testing and debugging computer software such as databases, apps and programs, and for electronic products.
Software engineers use programming languages understood by computers to create algorithms, which are sets of instructions computers follow to carry out a particular task. They may create software from scratch or adapt existing “off-the-shelf” software.
In this video, Mayuko talks about her role as a kind of software engineer called a product engineer. She mainly works on mobile apps:
What is the difference between a software engineer and a software developer?
We’ve thrown this one in as you may have heard the terms used interchangeably when they actually describe separate roles. Before we get on to how to become a software engineer, we thought we should be super-clear about how it is distinguished from other careers in software field.
Software engineers use engineering principles to create software that meets the needs of a client. Software developers come up with the specifics of how this might be carried out in code and work with clients to make sure the program works as expected and solves the initial problem in a satisfactory way. Software engineers tend to oversee the project.
In some companies, particularly smaller ones, software engineers and software developers may be the same people.
How to become a software engineer
Many employers look for graduates with degrees in subjects such as:
However, this is not universally the case and many will be interested as long as you can demonstrate an aptitude for programming, which you may have picked up as part of a hobby.
You could apply for an advanced apprenticeship as a software engineering technician straight after completing your GCSEs. On this programme, you would create small pieces of code to fit into a large software project or work with bits of code written by software engineers.
This way, you would gain the basic programming skills and other technical abilities to train as a fully fledged software engineer. You could do this through informal training and experience with your employer, or by completing a higher apprenticeship, which your employer may agree to sponsor.
What grades do I need?
If you know you would like to become a software engineer, you should focus on building strong problem-solving and logic skills. Employers will look at your CV for evidence of how you’ve developed these skills through your education.
If you are considering a degree in computer science or a related subject, university courses often require students to hold maths and other STEM qualifications. Although computer science is rarely a hard requirement, it will help lay the groundwork for your degree course in computer science.
Subjects to consider include:
- Computer science
You should aim for high grades and consult university and employer websites for entry requirements for degree courses and apprenticeship schemes. Remember too that the better your grades, the stronger your advantage against other candidates.
What skills do I need?
Problem solving: It’s a programmer’s job to work out the steps needed to get from A to B and turn this into a set of instructions a computer can understand – and this is an act of problem solving.
Creativity: Software engineers literally create something out of nothing. Like all engineers, it is there job to come up with solutions to real-life problems. This is a highly creative act, aided by the qualities that come along with creativity, such as curiosity, determination and concentration.
Independent learning: As you will have gathered, software engineers spend a lot of time trying to figure out problems, and the ability to find standard solutions online and create your own is essential. You will also need to teach yourself new programming languages and best practices.
People skills: Thanks to the stereotypical computer geek who barely speaks to another human being, you may find this surprising. But you will have to explain complicated concepts to non-technical clients and colleagues and work with others to plan software projects. An affinity with people will give you a good head start.
Critical thinking: Efficient working relies on the ability to break down problems into their constituent parts using a rational, cool-headed approach and come up with solutions to every step.
Technical skills: Computer code is the software engineer’s bread and butter. You will need to know several programming languages and have the enthusiasm and ability to teach yourself more to succeed in a programming career, as well as have a range of other technical skills.
The website Hacker Noon lists a number of surprising skills software engineers need to possess. These include:
- Empathy: Key to understanding the client’s requirements is being able to see things from their point-of-view. Your work will often be for the benefit of non-technical users.
- Teamwork: Related to people skills, you will need to be able to work with a team of technical and non-technical colleagues to complete big software projects.
- Open-mindedness: Solving challenging problems will require you to try new ideas from time to time, so you mustn’t be afraid of the unfamiliar or zany!
What work experience should I look for?
Work experience is always worth building up as it allows you to take your knowledge and apply it in the workplace, developing technical skills relevant to a future employer. When you don't have a long career to draw on, employers value work experience as it shows that you're able to take your academic capabilities and apply them at work.
Look out for work experience schemes with the big IT employers such as IBM, Google, Apple, BT and Amazon. You could take these as part of your Year 10 work experience, during the gap between Year 12 and Year 13, when many employers offer formal programmes. Check out our Jobs & Courses page to see what's on offer, and use Google to search for opportunities as well.
There are plenty of small software consultancies across the country, so it would be worth looking up any local to you who you can get in touch with proactively to ask about work experience placements.
A personal enthusiasm for technology will take you far in the software engineering world. Many would-be software engineers learn code to create programs for fun or to solve problems in their other areas of life. Some build their own computers and other hardware.
Some things you could do:
Learn to code: Use websites like Codeacademy, Code Avengers or Code School to teach yourself to code. Start with Python and C as these are almost universally needed in the business.
Build your own computer: This can be expensive and time-consuming, but successfully building a computer will help you understand what each component is for, how it can be customised to give you more power in a particular area of computing. Granted, this isn’t software engineering, but it will help you understand the way the physical hardware works.
Take up a craft. Hands-on crafts such as woodwork, embroidery or painting help you hone your creativity and problem-solving skills.
What is the salary?
In the UK, the salary of a software engineer ranges from £24,000 to £55,000, averaging at £34,000, so you can expect a healthy paycheck once you’ve built up some experience.
It’s not just the salary that makes training to become a software engineer a smart move. Jobs advertised have risen dramatically over the last three years and there is a shortage of people with the right skills to do the job. If you’re willing to move where the work is, good candidates shouldn’t struggle to find a choice of well-paid work.
If you like the sound of software engineering and would like to find out about other roles in the tech world, check out our IT & The Internet Career Zone.