More articles: page 3

These articles are a collection of knowledge gems I’ve gathered over time on a range of computer science topics.

Look at any computer program and you’ll see two things: data and operations on that data. From the computer’s perspective, everything is just a huge sequence of ones and zeroes. It is the programmer who creates meaning by telling the computer how to interpret these ones and zeroes.

In this post, we’ll start off with a quick summary of the distinction between data types and data structures. We’ll then look at one of the most fundamental, but surprisingly interesting, data structures: the array.

Read more »

Alan Turing (1912-1954) is the founder of computer science. In a single paper from 1936, On computable numbers, with an application to the Entscheidungsproblem, Turing presented the first precise definition of computation. He did this by devising an imaginary computational device, which he called an “automatic machine”, and proving that it was capable of carrying out any computation.

In doing so, Turing proved that his automatic machine was equivalent to computation itself. By exploring what his machine could do, Turing could analyse the capabilities and properties of computation. Automatic machines are nowadays known as Turing machines in recognition of this seminal achievement.

Read more »

You can’t go very far in computer science and programming without encountering binary and hexadecimal. Binary is important to understand because it’s literally what computers are based on. Don’t let your eyes glaze over when you see hexadecimal. It’s easy to read and kinda useful.

Bits and bytes

A binary choice has only two options. Binary numbers are the same. There are only two possible states. A single binary value is known as a bit. It can only be 0 or 1. The equivalent in the decimal system is a digit, which can be one of ten values: 0-9. Computers use binary because it’s easier to implement in circuitry.

Read more »

Imposter syndrome is a familiar feeling for many self-taught developers. You’re doing good work but you can’t shake off the doubt that you’re missing some basic background knowledge that your colleagues all seem to share. You’re not wrong! What you’re missing is all the computer science fundamentals they picked up at university.

Some will argue that you don’t need to know computer science to be a good developer. That’s true, to an extent. You can do good work and go quite far without knowing what the computer’s really doing. Sooner or later, though, you’ll hit a point where your lack of understanding lets you down. You do need to know computer science if you want to be a great developer who can take on the tough stuff. Do you want interesting work that’s intellectually and financially rewarding? You need to know computer science.

Read more »