Software engineering is one of the fastest growing (and changing) careers in the world. As it doesn’t have a formal qualification structure, many students wonder how to become a software engineer. In this guide, we’ll explore different routes into the industry, including both university and non-university options, plus what you can do to improve your career prospects.

We also discuss Dukes Plus’s Young Computer Scientist Summer Experience, an incredible 2-week summer school in London for ages 15-18, which immerses you in what the life of a software engineer is really like and can help you with university and job applications.

What is a Software Engineer?

A software engineer is a professional who designs, builds, tests, and maintains software systems. This can include anything from websites and mobile apps to complex platforms used by businesses, governments, and organisations. Software engineers apply programming skills alongside problem-solving and logical thinking to create efficient, reliable solutions that meet the needs of specific users or businesses.

In practice, the role often involves writing and reviewing code, debugging issues, and collaborating with other developers, designers, and stakeholders. Depending on the job, a software engineer might specialise in areas such as web development, mobile applications, data systems, or infrastructure – but all roles are centred around creating and improving software.

You can learn more about the different careers in computer science here.

How to Become a Software Engineer: University Route

One of the most common routes to becoming a software engineer is to study a related course at university and then apply to graduate jobs. In this section, we’ll explore the different steps in that process in more detail.

School

If you’re planning to follow the university route, you’ll need to make the right choices to set up a successful application to a good university.

First, that means taking the subjects which universities are looking for at A Level / IB Higher Level. Maths is almost always required, and, if you’re following A Levels, Further Maths is either required or strongly preferred. Most universities don’t require Computer Science A Level, but if you’re interested and your school offers it, then taking it certainly won’t do your application any harm.

Years 10-12 are also a good time to do some Computer Science work experience. Not only will this improve your skills and demonstrate your commitment, it will provide you with material to discuss in your personal statement and (if applicable) at your Oxbridge interview.

Some universities also set an admissions test for Computer Science and similar degrees. For instance, at Imperial, Cambridge, and Oxford, the TMUA is required. Preparing thoroughly, for instance with a good TMUA tutor, can make a big difference to your application.

Degree

There are several degrees you can take if you want to become a software engineer in the UK. Some are designed specifically for this career, while others provide broader skills that can still lead into the field.

Software Engineering Degrees

A Software Engineering degree is the most direct route. These courses are built around the skills and knowledge needed to design, build, and maintain software systems.

You’ll focus on areas such as software architecture, testing, debugging, and development methodologies like Agile. Many courses also include collaborative projects, giving you experience of working in teams in a way that reflects industry practice.

Computer Science Degrees

Computer Science is one of the most common and well-respected routes into software engineering. It offers a balance between theory and practical skills.

You’ll learn programming languages such as Python and Java, alongside key concepts like algorithms, data structures, databases, and operating systems. This combination gives you a strong foundation for a wide range of technical roles, including software engineering.

Information Technology (IT) Degrees

Information Technology degrees are typically more focused on how technology is used within organisations. While they may not go as deeply into software theory, they still include practical programming and technical modules.

You’ll also gain an understanding of systems, networks, and business applications, which can be particularly useful if you’re interested in software roles within companies or large organisations.

Mathematics and Engineering Degrees

Degrees in Mathematics or Engineering can also lead to a career in software engineering, although they are not directly focused on programming.

These subjects develop strong analytical thinking, problem-solving ability, and logical reasoning – all of which are highly valued in software development. However, they usually include limited coding, so you may need to build your programming skills independently through projects, online learning, or work experience

Finding a Job as a Graduate

Once you’ve completed your degree, there are two main routes into software engineering: graduate training programmes and entry-level roles. Both can lead to the same outcome, but they offer slightly different experiences at the start of your career.

Graduate Training Programmes

A degree in a relevant subject can give you access to graduate training programmes. These are structured schemes run by employers that take you directly from university into paid work.

These typically last one to two years and take you straight from university into paid employment. During the programme, you’ll receive formal training, gain experience across different teams or projects, and develop the technical and professional skills needed for a long-term role.

For software engineering, this often involves working on real projects while learning the tools used by your company, with support from senior developers. Most programmes lead directly to a permanent position within the organisation.

By the end of the programme, you’ll usually move into a defined role within the organisation, making this a clear and supported pathway into the industry.

Entry-Level Roles

Not all companies offer graduate schemes, so many students begin their careers by applying directly to entry-level or junior software engineering roles.

These positions may be less structured than graduate programmes, but they still provide valuable on-the-job experience. You’ll typically start contributing to projects early on, learning through practical work and collaboration with your team.

Common job titles to look out for include:

  • Junior Software Engineer
  • Graduate Software Developer
  • Software Developer
  • Junior Web Developer (front-end or back-end)
  • Full-Stack Developer (entry-level)

Different companies may use different titles for similar roles, so it’s worth reading job descriptions carefully rather than focusing only on the job title.

Types of Organisations That Employ Software Engineers

Software engineers are needed across a wide range of industries, not just in technology companies.

You might find opportunities in:

  • Technology companies and start-ups, where software is the core product
  • Large corporations, such as banks, retailers, and media companies, which rely on software systems to operate
  • Government organisations and public sector bodies, which develop and maintain digital services
  • Consultancies and agencies, where you may work on projects for multiple clients

Building Your Employability

Whichever route you choose, competition for graduate roles can be strong. Alongside your degree, it’s important to demonstrate your skills and interest in software engineering.

This might include building a portfolio of coding projects, contributing to open-source work, or completing internships and work experience during your studies. These experiences can help you stand out and show employers that you’re ready to work in a professional development environment.

Young Computer Scientist Summer Experience

Immerse yourself in the career of a computer scientist on our incredible summer programme. Take part in a two-day game jam, programme an obstacle-avoidance robot, and visit a state-of-the art motion capture studio.

How to Become a Software Engineer Without a Degree

If you don’t want to study Software Engineering, Computer Science, or something similar at university, there are ways to become a software engineer without a degree.

Broadly speaking, this can be split into two paths: getting taught in a non-university setting like an apprenticeship or bootcamp, or teaching yourself the skills needed for your career.

In practice, many aspiring software engineers combine these two. For instance, you could do a bootcamp in a specific programming language or skill, while self-teaching the rest of the discipline.

Taught Pathway

Apprenticeship

A software engineering apprenticeship is an alternative route into the profession that allows you to earn a salary while you train.

During an apprenticeship, you’ll gain practical experience in areas such as coding, testing, and maintaining software, while also developing an understanding of how development teams operate in a professional environment.

This route can be particularly appealing if you prefer a more hands-on approach to learning or want to avoid the cost of a traditional university degree. However, places can be competitive, and entry requirements vary depending on the level of the apprenticeship and the employer.

Suitable apprenticeships if you want to become a software developer include:

  • Software and Data Level 2 Foundation Apprenticeship
  • Software Development Technician Level 3 Advanced Apprenticeship
  • Software Developer Level 4 Higher Apprenticeship
  • DevOps Engineer Level 4 Higher Apprenticeship
  • Digital and Technology Solutions Professional L6 Degree Apprenticeship
  • Game Programmer Level 7 Degree Apprenticeship

Bootcamps

Software engineering bootcamps are short, intensive training programmes designed to teach you the core skills needed for a junior role in a relatively short time – often around 12 weeks.

These courses are typically led by experienced programmers and focus on practical, job-ready skills. You’ll usually learn how to write code, build applications, and use common development tools, often through hands-on projects.

However, bootcamps are usually aimed at people looking to build specific or specialist skills, rather than develop a full understanding of computer science. As a result, they tend to be less narrower in focus than a university degree or apprenticeship.

For this reason, bootcamps are often most useful as a supplementary qualification. For example, they can help you upskill in a particular programming language or area of development, or provide additional experience alongside a degree.

If you’re just starting out, it may be more effective to begin with a more introductory course before committing to a paid bootcamp.

Self-Taught Pathway

It is possible to become a self-taught software engineer, but it requires time, consistency, and a clear plan. Depending on your starting point, it can take months or even years to build the skills needed for your first role.

Learn to Code

Most people begin by learning a programming language such as Python, JavaScript, or Java. The best choice depends on your interests – for example, JavaScript is commonly used for web development, while Python is often recommended for beginners due to its readability.

Once you’re comfortable with coding, it’s important to understand data structures and algorithms. These concepts underpin how software works and are commonly tested in technical interviews.

Build a Portfolio

Alongside this, you should focus on building a portfolio. Platforms like GitHub allow you to showcase projects, demonstrate your coding ability, and collaborate with other developers. For employers, this can be just as important as formal qualifications.

Prepare for Coding Interviews

As you progress, you’ll also need to prepare for technical interviews, which often involve solving coding problems and explaining your approach. Practising these skills regularly will help you feel more confident when applying for roles.

Choosing Between the Degree and Non-Degree Routes

There’s no single ‘correct’ path into software engineering, but choosing between university and non-university routes will shape how easily you enter the industry and how you progress early in your career.

Pros and Cons of the University Route

  • A Computer Science or Software Engineering degree remains the most reliable pathway into the profession.
  • Many employers still prefer or require a degree, particularly for graduate schemes and larger companies.
  • Graduates often start at a higher entry point, with better initial pay and progression opportunities.
  • University provides a strong theoretical foundation, helping you understand how and why systems work – not just how to use them.
  • It also demonstrates commitment and consistency, which employers value when assessing candidates.

However, a degree is a significant investment of time and money, and it is not the only way into the field.

Pros and Cons of Non-University Routes

  • It is entirely possible to become a software engineer without a degree, through bootcamps, apprenticeships, or self-directed learning.
  • These routes are often more practical and flexible, allowing you to build skills quickly and start working sooner.
  • However, candidates without degrees may find it harder to secure their first role, especially in competitive markets.
  • In some cases, you may start slightly lower on the career ladder or with lower initial pay, although this gap often closes as you gain experience.
  • Bootcamps and short courses can be useful, but they may focus more on practical skills than deeper understanding, so additional learning is often needed.

Key Considerations

Here are the key things to bear in mind when choosing which route to becoming a software engineer to follow:

  • Access and resources – If you have the time and financial support, university can provide a more structured and secure route.
  • Learning style – Some students benefit from structured teaching, while others prefer independent, hands-on learning.
  • Career goals – Certain employers and roles still favour degree-qualified candidates.
  • Long-term progression – Experience, skill, and persistence ultimately matter most, regardless of how you start.

Programming languages and tools

Students wondering how to become a software engineer often want to know which programming languages to learn first. There’s no hard and fast answer to this as different languages do different things, and what’s best for you to learn will depend on what you’re most interested in achieving.

Here’s a quick overview of some common languages learned by aspiring software engineers and what they are used for.

LanguageTypical Use Cases
PythonWeb development, data analysis, artificial intelligence, and automation
JavaScriptWeb development and interactive front-end applications
JavaEnterprise applications, Android app development, and large-scale systems
C++System programming and game development
C#Windows applications, web development, and game development
HTML/CSSStructuring and styling web pages and web applications
SQLDatabase management and data manipulation across software systems
SwiftiOS and macOS application development

Gaining hands-on experience

Your university or job application will almost always be strengthened by evidence of practical experience in computer science or software engineering.

Luckily, this doesn’t need to come from placements in big companies. There are lots of things you can do at home to gain relevant experience.

Personal projects

Creating your own applications, websites, or tools is one of the most effective ways to show what you can do. These might be simple projects, such as a basic website or app, or more complex builds like an e-commerce platform or data visualisation tool.

As this work is usually unpaid, many students choose projects based on their interests – for example, building something related to a favourite sport, hobby, or game.

Open-source contributions and wider involvement

Contributing to open-source projects on platforms like GitHub allows you to collaborate with other developers and gain experience with different tools and coding practices. You could also take part in hackathons, create tutorials, or write technical blogs. All of these activities help demonstrate your knowledge, initiative, and engagement with software engineering.

Experience a Career as a Software Engineer

If you’re interested in becoming a software engineer, Dukes Plus’s Young Computer Scientist Summer Experience offers an unparalleled immersion into a career in the industry.

During this two-week summer school in London for ages 15-18, you will:

  • Take part in a two-day Game Jam to design and build your own platform game
  • Programme an obstacle-avoidance robot using Python
    Visit a state-of-the-art motion capture studio in London
    Take part in a 3D modelling masterclass using Blender

You’ll be taught by experienced computer scientists and receive career coaching on university choices and ways into the industry.

Hosted at the UCL campus in London, you’ll also experience what it’s like to study at one of the world’s top universities.

Learn more about The Young Computer Scientist Summer Experience or book your place here.

Applying to Computer Science at University?

If you’re applying to Computer Science at a top UK university, we can he can help. Our UK & Oxbridge application support includes expert preparation for personal statements, admissions tests, and interviews.

FAQs

There are several routes into software engineering. The most common is to study a related degree, such as Computer Science or Software Engineering, and then apply for graduate roles or training programmes.

However, it’s also possible to become a software engineering through apprenticeships, bootcamps, or self-teaching. Whichever route you choose, you’ll need to learn programming languages and build practical experience through projects or work placements.

No, you don’t strictly need a degree to become a software engineer. Many people enter the profession through apprenticeships, bootcamps, or by teaching themselves to code.

That said, a degree is still the most straightforward route. Some employers require one, and graduates often find it easier to secure their first role and may start at a higher level at the company they join than self-taught peers. Nonetheless, over time, experience and skills tend to matter more than how you entered the industry.

A career in software engineering typically involves designing, building, and maintaining software systems. Day-to-day work often includes writing code, fixing bugs, testing applications, and collaborating with other developers and stakeholders.

The field is constantly evolving, so ongoing learning is essential. Many roles also offer flexibility, competitive salaries, and opportunities to specialise in areas such as web development, mobile apps, data systems, or infrastructure.

Explore our Young Computer Scientist Summer Experience if you’re interested in learning more about life as a software engineer.

The timeline for becoming a computer scientist depends on the route you choose. A university degree usually takes three to four years in the UK, followed by entry-level work experience.

If you take a non-university route, such as an apprenticeship or self-teaching, you could start working sooner, but it may take a similar amount of time to build the same level of knowledge and experience.

If you’re applying to university to study Computer Science or Software Engineering, A Level or IB Higher Level Mathematics is almost always required, and Further Mathematics is often recommended or preferred by top universities.

Computer Science is not always required, but it can be helpful if your school offers it. Other analytical subjects, such as Physics, can also strengthen your application by demonstrating problem-solving and logical thinking skills.