Key Topics from my Computer Science & Maths Degree - Transcript Review
Tags: career, computerscience, university, codenewbie
Published: 2020-08-27 22:52:53

---
title: Key Topics from my Computer Science & Maths Degree - Transcript Review
published: true
description: A review of the KEY modules from my degree that are worth knowing, with links to free alternatives.
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/e5chq62iywy9feqxn6cl.jpg
tags: career, computerscience, university, codenewbie
canonical_url: https://tim-roderick.github.io/transcript-review/
---

After four years, I've finally finished my degree 🎉. Since then, I've been thinking about how I developed personally over that time.

This post will aim to highlight the _structure_ and _key topics_ from my degree. Hopefully this will be able to help you decide on some direction to take during your personal development.

I'll sprinkle a few tips throughout 💖.

Already familiar with most of these concepts? Maybe look at a few topics you've dodged until now!

**\*DISCLAIMER\*** This is my personal experience, I'm not suggesting this is the _correct_ order or way to learn these concepts. People will learn more/less in a greater breadth/depth, it's _personal preference_.

## [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#first-year)First Year

This is how I've described this year to others in the past:

> Attack of the concepts 📚.

We were subject to a large number of introductory courses. Taking the time to let this stuff sink in was important long-term.

### [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#how-to-program-)How to program 👩‍💻

On the CS side, the year mostly consisted of teaching us how to code in **C** , **Java** , and **Haskell**.

**C** was used to help us understand the lower level aspect of development: how memory is allocated and how pointers work.

After this we learned how to think about programming _functionally_ using **Haskell**. This felt unnecessary at the time, but it proved incredibly useful for helping me build an intuition for algorithmic complexity.

Finally, **Java** was used to teach us object oriented programming. Since this is likely the majority of programming a developer will be doing, it is vital to take time to understand OOP principles and design patterns.

If you are looking for a good introductory resource to programming, I love [Daniel Shiffman's beginner friendly YouTube channel](https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1_aw) as a starting resource.

 {% youtube 2VLaIr5Ckbs %}

### [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#architecture-%E2%99%82%EF%B8%8F)Architecture 👷‍♂️

Introduction to Computer Architecture to me was the _most important unit_. We aren't programming infinitely complex theoretical boxes as developers, we are using _finitely complex machines_.

This unit explored computer hardware from _silicon to stack_.

After learning how to program, this unit helped all the pieces fall into place. It was the first big [eureka moment](https://en.wikipedia.org/wiki/Eureka_effect) for me as a beginner.

I would highly recommend [Prof. Onur Mutlu from ETH Zurich's excellent lecture series on computer architecture](https://safari.ethz.ch/digitaltechnik/spring2018/doku.php?id=schedule).

{% youtube PMJxcArLU1E %}

### [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#necessary-mathematics-%F0%9F%A7%AE)Necessary Mathematics 🧮

As a developer, you won't get very far if you avoid maths altogether. So embrace it! Also embrace that there is often _100+ years of previous academic research_ - it's taken people a while to get this stuff.

Look up concepts as and when you need them, taking time to let them sink in. Filling in these spooky-ghost-shaped holes in your knowledge will always help in the long run.

You won't become an expert overnight and mathematics is notorious for its lack of a helping-hand, but _you can do it!_

Depending on where you want to go with your development, you will need to know different topics. I focused on statistics and machine learning so, for me, the most essential were **Linear Algebra** and **Probability Theory** initially.

### [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#notable-mentions-%F0%9F%A5%89)Notable Mentions 🥉

Theory of computation was a unit dedicated to the fundamental mathematical properties of computing: _what can and cannot be computed_. Useful IMO. I found these [course notes by Vassos Hadzilacos](https://www.cs.toronto.edu/~jcook/csc240/w2020/texts/b36_236_240_notes.pdf) that may be a good read if you're interested.

## [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#second-year)Second Year

For me, this year was a big motivational bounce-back from the first. It's the move from everything being _new_ and _tiring_ to everything being _familiar_ and _challenging_. You start to focus in on topics you have knowledge of now and the details start to flow.

My stand-out units from this year all follow this pattern.

### [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#applying-new-skills-)Applying New Skills ✨

You know how to write some code ideally by this point (I _thought_ I did 😅). The problem was applying myself to problems that were not _designed_ to educate me.

**Data Structures and Algorithms** was an important unit all about understanding computational complexity. It was the step from writing code that _worked_ to code that _worked efficiently_. Dynamic programming was a concept I learned here that I now use regularly. Here's a course [PDF I found by John Bullinaria on DSA](https://www.cs.bham.ac.uk/~jxb/DSA/dsa.pdf).

**Symbols, Patterns and Signals** covered how we digitally interpret the world around us. This was achieved through examples from applications in computer vision, audio, and machine learning.

This topic is broad so some searchable highlights from this unit might be _"K-means clustering"_, _"The Fourier Transform"_, _"Audio sampling"_.

**Databases and Cloud Concepts** was also taught in my second year, although it was intended to be taught to us in first year. If you tackled this one earlier that would probably make sense. This unit was all about _web security_, how the _internet_ works, and _SQL_. [Roadmap.sh](https://roadmap.sh/frontend/resources) has a list of resources for learning key concepts with context.

Here's a great video from [@3blue1brown](https://twitter.com/3blue1brown) about the fourier transform:

{% youtube spUNpyF58BY %}

### [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#useful-mathematics-)Useful Mathematics 🎲

The fundamentals mathematics learnt so far will be enough to keep most developers afloat for the forseeable future. Further reading at this level is still important however.

From the **Combinatorics** unit I got a much greater understanding of discrete mathematics, including _graphs_.

### [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#internships-)Internships 💻

So this is the year I also got my first internship over the summer. If I had to replace the internship, I would self-study what I learnt on the job: _C++_.

But _C++_ is one of many programming languages / tools used commonly in industry. Looking into **what tools are used in your ideal line of work** is a great step.

## [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#third-year)Third Year

This year was all about taking the _conceptual_ understanding of a variety of topics and churning it into _rigorous_ understanding.

### [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#refining-)Refining 🔨

These units are all natural extensions of topics learnt from the first two years:

- **Machine Learning:** Linear regression, Gaussian Processes, Unsupervised Learning ...
- **Image Processing and Computer Vision:** Computer Vision algorithms and a bit about Deep Learning. 
- **Web Technologies:** How to build a web app; _CSS, HTML, Javascript_;

I found [this blog post](https://www.technotification.com/2019/02/websites-to-learn-machine-learning.html) that lists several free online courses for ML. For deep learning, [fast.ai](https://www.fast.ai/) have practical courses. For web technologies, again [Roadmap.sh](https://roadmap.sh/frontend/resources) has a list of resources for learning key concepts with context.

### [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#communicating-science-)Communicating Science 💬

A skill that is necessary for any developer is your ability to communicate ideas.

> Don't have to be a public speaker or a poet.
> 
> Don't need to show it in fear of blowing it.
> 
> Meek creature; Word weaver.
> 
> Chat clearer, not to feature.

Seriously, you do need to be able to communicate your thoughts to your peers and colleagues.

This was the year I did my first serious academic project, which for further reading can be found [here](https://tim-roderick.github.io/methods_for_generating_road_networks/). This helped instil some of the key concepts needed for communicating ideas.

As a replacement, this would be a point in your development to start writing blog posts or other long form explanations of concepts. I like this thread I saw on twitter with some ideas of where to start:

{% twitter 1297987036914180096 %}

## [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#fourth-year)Fourth Year

From _common knowledge_ to _state-of-the-art_. The move from understanding topics in reasonable depth to understanding the **bleeding-edge**.

### [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#specialisation-)Specialisation 🎓

The units I took this year describe my specialisation as an academic through a focused set of related subjects.

The following subjects give a good view into my choice of specialisation:

- [Applied Data Science](https://www.fast.ai/topics/)
- [Applied Deep Learning](https://www.fast.ai/)
- [Anomaly Detection](https://en.wikipedia.org/wiki/Anomaly_detection)
- [Monte Carlo Methods](https://www.unige.ch/sciences/astro/files/2713/8971/4086/3_Paltani_MonteCarlo.pdf)

These subjects are related through statistics, machine learning and data science.

At this point in your personal development you may want to find the topics you _really enjoy_ and delve deep into them.

### [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#final-project-%F0%9F%A5%B3)Final Project 🥳

My Masters Thesis was on utilising the popular [Transformer](https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html) architecture for video summarisation. Key point:

1. It was the most work I've put into anything in my life.
2. It wasn't successful.
3. It was fun!

I think this will describe a fair amount of work done at this point in a persons development.

## [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#summary)Summary

That covers most of the subjects I took over four years at university! If people want anymore detail on specific subjects then feel free to tweet me [@tim\_cb\_roderick](https://twitter.com/tim_cb_roderick) or leave a comment.

### [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#takeaway)Takeaway

Your personal development journey is unique and challenging. By highlighting the steps I took during my education, I hope I can bring clarity and guidance to those looking for it.

The way I learnt _certainly isn't the only way_.

You may choose to delve deep into certain topics and keep your focus there. You could skip all things hardware and focus purely on the software.

In the end that isn't the key takeaway from this review. For me, it's that learning is a long process that takes time. Rushing it will only hurt your confidence and abilities in the long run.

### [<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#resources)Resources

I hope I've provided enough resources throughout this post to help guide people if they are interested. If you have any specific queries feel free ask, **I'll try my best!**

Most of the maths modules I've mentioned so far can be found as free courses on [Khan Academy](https://www.khanacademy.org/math).

A great set of CS courses covering a larger number of topics mentioned in this post can be found at [freeCodeCamp](https://www.freecodecamp.org/).