6 Choosing Your Future
Your future is full of exciting new possibilities, but which of these options will you choose? What are all the opportunities for students of computing? How will you choose the one is best for you? When choosing your future, do you see yourself as a default user
or the weird edge case
pictured in figure 6.1?
Perhaps you’re a weird edge case. Perhaps typical graduate destinations such as large multi-national corporations, do not really make you want to Shake Your Thang? (Isley, Isley, and Isley 1988) Perhaps you are more interested in:
- working in computing in roles beyond software engineering?
- using your technical skills more responsibly and ethically to make the world a better place?
- starting your own business and making money for yourself, rather than other people?
- finding hidden or unadvertised vacancies?
- joining or founding a startup company or a scale-up company instead of a large multinational corporation?
- venturing outside of the private sector?
Broadening your initial job search described in chapter 11 will open up more opportunities on your horizon. This chapter will broaden those horizons and get you to think about some of the less obvious options you can choose from.
Many technology jobs exist outside of technology companies, (Asay 2020) because a lot of software is written to be used rather than sold. Consequently, many employers create bespoke software to fit the needs of their business. The people who build it are often employees, rather than people employed by a technology company. In the United States for example, ninety percent of IT jobs are outside the traditional tech industry. Technical jobs outside the technology sector often have the advantage of being more accessible than those within a very competitive technology sector. (Markow, Coutinho, and Bundy 2019)
Your future is bright, your future needs choosing, so let’s start choosing your future.
6.1 What you will learn
- Describe the less obvious careers that computer science can lead to, besides software engineering, including:
- Starting a business or joining a startup
- Working outside of the technology sector
- Working outside of the private sector (governments, non-profits etc)
- Roles allied to software engineering that require you to be a conversational programmer (Cunningham et al. 2022)
- Recognise the social responsibilities that accompany the power held by computer scientists and software engineers
- Evaluate and compare the values of an employer with your own values and ethics
6.2 Vocational or academic?
Some undergraduate degrees like medicine, dentistry and nursing are highly vocational. Other degrees have a stronger academic flavour. According to some studies, vocational degrees can be the best route to highly skilled jobs. (Adams 2018) Computer Science degrees often develop highly vocational skills and knowledge, through disciplines like software engineering for example. They often contain more theoretical, scientific and academic topics like the theory of computation, graph theory and probability theory too.
What is the blend of vocational vs. academic study in your degree? It’s good to have a mixture of theory and practice, see figure 6.2, because employers value both of them. (Adams 2018) However, unless you’re considering a career in research or academia (see chapter 16) it’s probably the vocational parts of your degree that will give you some of the clearest initial directions into paid employment.
Those who came before me, lived through their vocations, from the past until completion, they’ll turn away no more. (Gilbert et al. 1983) Many computer scientists live through their vocation of software engineering, but software engineering isn’t the only vocation available to students of Computing. Let’s look at some of the other options so that we can broaden your computational horizons.
6.3 Broadening your future beyond software engineering
The phrase software engineering has been around since Margaret Hamilton (figure 6.3) led the development of software for the Apollo Guidance Computer in the sixties. However, the practice of software engineering has been around even longer right back to Ada Lovelace in the nineteenth century.
Software engineers (or software developers if you prefer) are one of the most popular roles for graduates (see e.g. figure 7.8) but there are plenty of affiliated roles that computer scientists can choose besides software engineering. While engineering are popular roles taken by computer scientists, they are not the only roles that graduates and undergraduates of Computer Science go into. What are the other options beyond the default
setting of software engineer?
- 🃏 Anything you want! It’s true that you can be anything you want to be by playing your computational joker described in section 7.7. Graduates from the Department of Computer Science at the University of Manchester have gone on to diverse careers including stunt-doubles, stand-up comedians and Members of Parliament (MPs), see figure 6.4.
However, while knowing that anything is a viable option, it probably won’t help you decide what your next step will be. So let’s look at some specific examples of first steps you could take and their subsequent destinations:
- 🧪 Data scientist: somebody who finds valuable insights in all the data. Sometimes called data engineering, see figure 6.5 and prospects.ac.uk/job-profiles/data-scientist
- 🤖 Machine learning engineer: somebody who trains all the machines, see MLOps and prospects.ac.uk/job-profiles/machine-learning-engineer
- 📆 Project manager, product manager and engineering manager: somebody who leads and organises all the engineers, liaising with customers and management. They may define and enable what a product does, what a project delivers or what a team delivers, see prospects.ac.uk/job-profiles/project-manager and prospects.ac.uk/job-profiles/product-manager
- 📊 Business analyst: somebody who analyses all the business, see prospects.ac.uk/job-profiles/business-analyst
- 💰Technical sales: somebody who talks to all the customers and clients, see prospects.ac.uk/job-profiles/technical-sales-engineer
- 🔐 Cybersecurity: somebody who makes it all secure. See penetration testing and other forms of “ethical hacking” see prospects.ac.uk/job-profiles/penetration-tester
- 🔍 Forensics: somebody who investigates criminal activity. See forensic computer scientist and prospects.ac.uk/job-profiles/forensic-computer-analyst
- 💼 Consultancy: somebody who advises all the other people how to do it, see prospects.ac.uk/job-profiles/management-consultant and prospects.ac.uk/job-profiles/it-consultant
- 🏠 Architect & designer: somebody who makes it all fit together, see for example chapter 32. Architects are usually more senior engineers, see software architect. Architects don’t just design software though, someone has to design all those chips that the software is running on too, see chapter 27.
- 😎 Operations: somebody who makes it all run smoothly. See DevOps, sysadmin and site reliability engineering
- 👩🏾⚖️ Patent attorney: somebody who protects all the technical IP. Patent attorney, protecting and organisations technical intellectual property (I.P.) see prospects.ac.uk/job-profiles/patent-attorney
- 🚨 Tester: somebody who finds where all the flaws are (QA: quality assurance), see prospects.ac.uk/job-profiles/software-tester
- ✍️ Technical author: somebody who writes down and illustrates all the stuff that the engineers can’t (or don’t bother to) explain, see section 4.6.2
- 🙂 UI/UX: somebody who makes it all easier to use. Often specialising in Human–Computer Interaction (HCI), User Experience (UX), User Interface (UI) or sometimes front-end development
- 🌱 Founder or co-founder: somebody who starts it all themself
- 🎓 Teacher: somebody who educates and trains the next generation. Secondary school teacher, if you’re good at communicating and you love working with young people, why not inspire the next generation of computer scientists? In the UK, the British Computer Society (BCS) awards tax-free scholarships for you to train as a teacher, see bcs.org/about-us/bcs-academy-of-computing, coding their future and teachfirst.org.uk. (Sentance et al. 2023; Simmons and Hawkins 2015) See also Professor: you’ll probably need to do a PhD first, see options for postgraduate study and research in chapter 16.
These roles are not exclusive either, they are just some of the roles that you might find yourself applying for and playing as a Computer Scientist. There’s also several different names for what is essentially software engineering or hardware engineering including:
- Database administrator (DBA), see prospects.ac.uk/job-profiles/database-administrator
- Freelance, becoming a self-employed contractor, see section 6.3.2
- Game developer (that’s really just another name for software engineering) but see prospects.ac.uk/job-profiles/game-developer and entering the video games industry as a graduate (Hanuk et al. 2022)
- Research software engineer, see section 6.3.1 and figure 6.7
-
Web designer can involve both back-end (e.g. databases, network) and front-end development, but usually focussed on front-end client software (JavaScript, HTML, CSS, Graphics etc). You’ll sometimes hear web designers calling themselves full stack developers, this role is closer to software engineering, speaking of which …
goes by many different names (including some of the synonyms above) with closely related roles
solutions architect
ortechnical analyst
etc
The links above give some basic information on what these different roles entail, we’ll look at two in particular in more detail in the next two sections, 6.3.1 and 6.3.2
6.3.1 Research software engineering
There are plenty of roles in computing working in research, either in computer science, or working alongside natural scientists, such as physicists at home.cern or laboratory scientists working at the bench. For example, there are lots roles in research software engineering (RSE), using code to facilitate better scientific research, see the Society of Research Software Engineering: society-rse.org. (Woolston 2022; Bell 2023)
CERN employs ten times more engineers and technicians than research physicists, see figure 6.6. For physicists to understand the data that pours off the Large Hadron Collider (LHC), you need armies of engineers to enable the scientists to do their work. A lot of those engineers are working on hardware and software, and many of them won’t be physicists. (Hull 2020)
Some examples of science laboratories in the UK and Europe that employ computer scientists is shown below:
- CERN, see careers.cern/summer for summer internships and careers.cern for placements and everything else. Chapter 39 has more details on life at CERN.
- The Francis Crick Institute see e.g. crick.ac.uk/careers-study/students/sandwich-students
- The Daresbury Laboratory, see stfccareers.co.uk/students under Computing
- The Diamond Light Source diamond.ac.uk see diamond.ac.uk/Careers/Students/Year-in-Industry-Scheme.html
- The European Bioinformatics Institute ebi.ac.uk see ebi.ac.uk/careers
- The Earlham Institute earlham.ac.uk e.g. earlham.ac.uk/year-industry
- The ISIS Neutron and Muon source see isis.stfc.ac.uk/Pages/Students.aspx and stfccareers.co.uk/students/ under Computing
- The Jodrell Bank Observatory jodrellbank.manchester.ac.uk
- The metoffice.gov.uk, see metoffice.gov.uk/about-us/careers/apprentices-graduates-and-placements
- The National Physical Laboratory npl.co.uk see npl.co.uk/careers/industrial-placements
- The Plymouth Marine Laboratory pml.ac.uk see pml.kallidusrecruit.com
- The Rutherford Appleton Laboratory (RAL) see stfccareers.co.uk/students under Computing
- The Wellcome Sanger Institute sanger.ac.uk
- More like this at jobs.ac.uk
These are mainly UK opportunities, but it is a similar story around the world. Many Universities and research institutes have summer internships for computer science students working alongside researchers. For example, at the University of Manchester, summer vacancies tend to be advertised each year around April/May. Wherever you are, speak to the head of a research lab you’re interested in. Ask them if they have plans to take on summer students.
If you’re thinking of doing postgraduate study, see chapter 16. Commercial experience gained on a summer internship or placement year is valued by all employers (not just commercial ones) so doing an internship or placement during your undergraduate degree is valuable wherever you end up, see section 16.3.
6.3.2 Freelancing and contract
Organisations frequently employ software engineers and other technical staff as contractors, for fixed periods of time (weeks or months), rather than as permanent employees (typically years).
There is lots of work available on a freelance and contract basis. The sites below could help you bid for work available as a self-employed contractor and freelancer
- toptal.com You need to interview to get invited to join the network
- upwork.com Can be quite heavy on fees but lots of leads
- freelancer.co.uk A lot of international competition, but still plenty of work
- fiverr.com another marketplace for freelancers
The key to getting contract and freelance work via these websites is to get good reviews. You could start out by offering low prices and bidding on smaller projects to get a good reputation before starting to focus on larger, higher paid projects. Beware that if you are going to use the sites above you’ll be paid a low rate as you’ll be competing with freelancers in countries with much lower costs of living. Having said that, any freelance or contract work will look good on your CV if you’re competing with students who have no paid experience at all, not even casual work. Some pros and cons of freelancing are shown in the table below.
Pros | Cons |
---|---|
Can have greater control over work | Fewer employment rights, no pension, no annual leave |
Can have a variety of clients and work | Limited cover for sickness, emergencies and redundancies |
Can facilitiate more flexible working conditions, hours, workload and location | Renting and buying property can be more challenging for self-employed people |
To find projects where you can work directly with the client (without going through a broker or agent), a good place to start is attending local meetups. Organisations like technw.uk, meetup.com and eventbrite.co.uk etc are all good places to start looking.
Other good leads are friends and family, can you develop software or hardware that solves a problem that your friends or family have? You could charge them “mates rates”, to get your business off the ground.
6.4 With great code comes great responsibility
Whatever kind of Computer Scientist you decide to be, you might find yourself wielding significant power and responsibility. We know that:
- With great power comes great responsibility (Parker 1962)
- With great code comes great responsibility (Goldman and Schlesinger 2018)
Given the growing power of computing in the twenty-first century, computer scientists have a duty to society to use that power responsibly and justly. How can they do so? For example, recent advances in Artificial Intelligence have raised many ethical questions. (Hogarth 2023) According to some people (see figure 6.10), the people that control AI, could potentially rule the world or save it. (Andreessen 2023)
Since there’s so much power and money tied up in computing, do computer scientists need to sell their soul to the highest or most powerful bidder for their services? How can computing be used to make the world a better place, not just making rich people richer? Or powerful people more powerful? This is not a book about ethics in computing, (Reich, Sahami, and Weinstein 2021; Gotterbarn et al. 2018) but lets look at some of these questions in more detail.
6.5 Do you need to sell your soul?
You will sometimes hear people saying you need to sell your soul to get a job, shown in figure 6.11. See for example:
- Soul sold for less than £12 (Malham 2002)
- Am I Selling My Soul to Work for My Company? (Bell 2021)
- google.com/search?q=selling+your+soul+to+your+employer
So when you’re searching for jobs and researching potential employers, one of the first things you need to find out is what the values and ethical principles of an employer are, see section 11.4. This is a quick way to evaluate what makes an organisation who they are. Most employers publish their values and ethics openly, here’s a small selection to give you a flavour:
- Amazon amazon.jobs/principles (Bezos 2014; E. Jones 2022)
- Microsoft microsoft.com/en-us/about/corporate-values
- Apple apple.com/compliance
- Google ai.google/principles
- Morgan Stanley morganstanley.com/about-us/morgan-stanley-core-values
Let’s look at Morgan Stanley (figure 6.12) as an example, I’ve chosen these values because they are brief and self-explanatory. Morgan Stanley’s values are to:
- Do the right thing: act with integrity
- Put clients first: listen to what the client is saying and needs
- Lead with exceptional ideas: win by breaking new ground
- Commit to Diversity and Inclusion: value individual and cultural differences
- Give back: serve communities generously with expertise, time and money
Look at these values carefully, or choose the values of another employer you’re interested in. What do they mean to you?
How well do employers words match their actions? The words Don’t be evil are easy to say but much harder to action, see figure 6.13.
Good intentions are often easier said than done. So returning back to our original question, do you have to sell your soul?
- You don’t have to sell your soul (I. Brown and Squire 1989)
- It depends what’s in your soul anyway
- If you need help doing some soul searching, see chapter 2
6.6 Computing the future
The human race faces some huge challenges in the 21st century:
- Mitigating the effects of climate change, see figure 6.14
- Tackling inequalities of wealth, income, race and gender (Stanley 2022)
- Ensuring algorithms benefit everyone in society, not just the (predominantly) rich old white men that control the technocracy, see figure 6.15
- Ensuring that technology enables democracy, rather than undermining it, as commentators like Jamie Bartlett, Carl Miller, Rob Reich, Mehran Sahami (any many others) have argued. (Carl Miller 2019; Bartlett 2018; Reich, Sahami, and Weinstein 2021)
- Providing sufficient food, water, shelter, energy, education and healthcare for a growing global population of 8 billion people and counting… (Hegarty 2022)
- Meeting all these goals sustainably and renewably without irreversibly depleting resources
How can computing be an ethical force for change that improves the lives people everywhere, not just those that are lucky enough to be on the wealthier side of the digital divide?
- How can computing make a difference?
- How can YOU use Computer Science to make the world a better place?
Here are some examples to get you started:
-
Net Zero and greener computing
- see greensoftware.foundation and green-algorithms.org [Lannelongue, Grealey, and Inouye (2021); Knowles et al. (2022); Engineer (2021); Lannelongue et al. (2021);]
- Smarter cities and more automated homes which use resources more efficiently (Hankin 2022)
- Fairer algorithms: see algorithmic bias, responsible.ai and figure 6.15. The algorithmic equivalent of the hippocratic oath do no harm.
- More humane technology that respects users attention and minimises distraction by enabling “Time Well Spent”. Humane technology supports democracy, rather than undermining it, by encouraging slow thinking, rather than just fast thinking (Kahneman 2011)
- Games for change, that have social impact rather than economic impact (profit) see gamesforchange.org
- Better education with computing:
- as a subject in its own right: Computer Science Education
- as educational technology that enables the teaching and learning of every subject
- Scientific computing for the benefit of humanity, see section 6.3.1. Creating better, cheaper and faster software and hardware for scientists and engineers, for example:
- Improved climate modelling and weather forecasting
- Quicker development of new vaccines and drugs, for example technologies like Alphafold are already making a difference to drug discovery (Jumper et al. 2021)
- Better healthcare, with electronic health records, (EHR) personal genomics and better diagnostic tools (Ournalist 2022)
How will you use your superpowers of computing we mentioned in section 4.3 to make the world a better place?
6.7 Breakpoints
Let’s pause here. Insert a breakpoint in your code
and slowly step through it so we can examine the current values of your variables and parameters.
- How closely do a given employers values align with your own? You may need to revisit section 2.2.4.
- You might not get a 100% match but you’re unlikely to enjoy working for an employer where your values don’t match very well at all
- Are the stated values of an employer the whole story?
- Are there any unwritten or unspoken rules?
- Is there anything missing?
- How much do an employers actions match their words? What an employer says and does may be contradictory. Actions speak louder than words
- What can computing do to tackle global challenges described in section 6.6
Once you’ve thought about these questions, you stand a much better chance of working out if a given employer is a good match for you. So do you have to sell your soul as shown in figure 6.16? It depends on what you value and if an employer shares those values with you.
6.8 Summarising Your Future
Too long, didn’t read (TL;DR)? Here’s a summary:
Your future is bright, your future needs choosing. Choosing your future will help you design your future. Designing your future will help you to start coding your future.
This chapter has looked at the choices and options available to you as a student of computing. Each of these choices are starting points, directions rather than destinations, so you don’t need to get too hung up worrying if they are the right choice for you in the longer term. As Bill Gates puts it, your life isn’t a one-act play, see figure 6.17.
In the next part of this guidebook, chapter 7: Computing your Future we’ll take a broader look at why computing is a subject for everyone, not just Computer Scientists.
If you’re studying Computer Science as a major or minor part of your degree, you can probably skip this chapter which is aimed at a more general audience and go straight to chapter 8: Debugging your Future which will help you identify and fix bugs in your written job applications.