There is a saying that the best time to plant a tree is yesterday, but the second-best time is today. I imagine the same is true of any field of study, but few move as quickly as the field of computer science. Indeed, when I was taking my undergraduate degree in computer science it was already a popular meme that one year was equal to four Internet years (think dog years!) Encounters with my professors often validated this notion, seasoned as they were from the likes of Fortran and mainframe computers whilst we were enjoying the dizzy heights of World of Warcraft and the Xbox, and dreaming of careers in videogame design. So, as I see it, if the second-best time to start studying computer science is now, then the best time was probably four years ago.
When I applied for my bachelor’s degree in Computer Science and Software Engineering at university, I was convinced I’d make it as a game designer. I had programmed (in C) and run my own online game since the age of 13. Being from the UK, I applied for apprenticeships at Lionhead, Rockstar, and (going slightly further afield) Blizzard Paris and Ubisoft. But instead my first employment opportunity came at the National Physical Laboratory – and it didn’t even involve writing code. Instead, I was responsible for publishing articles and videos of lectures from preeminent minds in physics. In the modern day the role would be described as a social media specialist; this was in the early days of Twitter, and a lot of misguided focus was spent on an early VR experience called Second Life, which we used to introduce gifted and talented schoolchildren to more advanced scientific concepts than they might otherwise be used to. A key challenge at the time was ensuring you ranked highly in search results provided by a rapidly growing search engine by the name of Google. Such concerns are now handled by Search Engine Optimisation (SEO) specialists within large organisations, who, much like the aforementioned social media specialists, know how to blend technology with social or business decision making. So it seems that in just over ten years, two aspects of my role as an intern have become full-fledged specialist roles in their own right. Who knows what side-projects a budding computer scientist might dream up could spark entire career paths?
After my studies I was hired as a junior developer at a firm producing financial analytics software in the City. Whilst still nothing to do with videogames, my hobby programming project made me a leading candidate and let me sail through the interview – in fact, because of a discussion about pointers in C with the interviewer, I was told the programming test would be beneath me, despite the fact I had never written a line of C#, which the company specialised in. Thus, my advice to someone interested in pursuing computer science is to find and exploit a hobby project as soon as possible and build upon it with what you learn during your formal studies. This doesn’t necessarily mean programming or even have to involve coding at all. My current job means I work daily with infrastructure engineers, business analysts, data protection officers, SEO specialists, developers, testers, data scientists, user experience designers, penetration testers… and all of them had some grounding in computer science.
Business analysts focus on the practical applications of software engineering to organisations, learning how to translate the technical know-how of engineers to the cutting edge demands of the companies they work for. This means working closely with a wide variety of business stakeholders to help meet the needs of the organisation. One upside to this role is that your day-to-day experiences are heavily shaped by the industry you’re working in. The demands and expectations working in the financial services, for example, are radically different to those of online retail or pharmaceutical research. You’ll be able to choose between gaining a broad range of industry knowledge or focusing in-depth on one particular sector. Your career can grow into roles with more responsibility and autonomy, such as a product owner, platform lead, or project manager, but you won’t be blocked from more technical roles such as dev management either.
If this level of versatility appeals to you, studying additional qualifications and demonstrating your ability to lead, communicate and organise are an excellent way to distinguish yourself from the crowd. Indeed, you needn’t even hold a computer related degree; many business analysts already hold degrees in subjects like finance or business administration, and then choose to pursue additional IT related studies afterwards. Such a route might also be open to those with no relevant degrees but with years of industry experience instead, with additional studies being supported by their existing employer. The final step involves obtaining specialised training in business analysis from organisations such as the International Institute of Business Analysis. It’s a role that particularly values and rewards people with wider experience and knowledge, and equally one that allows you to constantly broaden your horizons and find new challenges.
Some people are particularly observant and good at finding inconsistent detail. A degree in computer science or other IT related field could lead such people to a rewarding career in quality assurance. What was traditionally a field heavy on manual work – methodically using software according to a test plan and trying to find defects – the field has progressed to a far more automation-heavy role. A modern tester writes coded unit and acceptance tests which are set to run every time software is changed and recompiled. This vastly improves the durability of applications, ensuring that bugs that have been fixed once do not recur. Budding test engineers can get involved in bug-bounty programs, getting rewarded by companies like Tesla, Goldman Sachs, or Nvidia for finding flaws in their applications, as well as getting a great boost to their CVs if they’re successful. There are specialist forms of tester, too. Penetration testers – essentially hackers-for-hire – are paid to investigate systems by companies and find security flaws that if left unaddressed could leave the company liable to reputational damage or financial loss. If this appeals to you, consider looking at the videos released from conferences like DEF CON to get acquainted with the techniques used by industry professionals.
Some careers involving computer science can come from purely mathematical backgrounds. Quantitative analysts (or quants) have very rewarding – and well compensated – careers in finance where they create models used to make trading and financial decisions. Quants work in teams across all areas of the financial sector, usually finding employment in an investment bank where they use programming skills to implement their mathematical models and support core business decision-making. Quants frequently use languages like Python or Haskell rather than traditional object-oriented languages, as well as dedicated mathematical environments such as MATLAB. Big data tooling such as Hadoop and Spark are also a core part of a quant’s toolkit. Competition for these roles is fierce, and you can expect to face competition from PhD level applicants in mathematics or physics from prestigious universities worldwide. Other candidates will have obtained financial qualifications from their country or have completed MBA programs, so it’s important to have developed your own similar skills before applying.
More recently, careers in data science and machine learning have exploded in popularity. Capitalizing on the same mathematical abilities that benefit a quantitative analyst, data science as a specialism leans more heavily on programming capabilities, typically either using Python or the R programming language. Existing developers can bring their own capabilities and find work either as a data engineer (supporting the work of data scientists in preparing data pipelines and productionizing models) or study machine learning and become specialists themselves. Data scientists can find work in all sorts of industries, ranging from customer driven sectors like retail and finance, to guiding research and policy in medicine or even government. The truth is that nearly every organisation on the planet is undergoing a transformation and learning how to exploit the vast quantities of data that the modern world is generating, and data scientists and engineers are crucial to making that change successful.
Leading from my career as a programmer I became a software architect, which involves understanding requirements captured by business analysts and translating them into programming deliverables that my teams of engineers can produce. This career path enables people to get involved in writing technical manuals, presenting at conferences, and defining the standards followed by software engineers worldwide. I get to work with a wide range of people and solve problems across different domains of the organizations I work within, giving me a wide variety of work. Solution architects represent the leading edge of technical decision making within a company, and so get to exercise creative control in terms of how problems are solved, without getting bogged down in frustrating implementation details. I’ll admit I’m biased towards this role – and once I started working I viewed it as the goal of my career – but any of the jobs mentioned above constitute some of the most in-demand and highest paying occupations. Indeed, in 2019, eight of the top ten best-paying entry level careers in the US stemmed from software related degrees. I would argue that given the diversity of possible roles within tech companies, and the high salaries and growth prospects, there’s something for everyone in the field of computer science.
Alexander Sofras is a technical architect with over 20 years of programming experience and 10 years in industry. He currently works in e-commerce and specialises in product discovery and recommendations.