More articles: page 2

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

This post is part of a series: Introduction Protocols Internet Protocol User Datagram Protocol Transmission Control Protocol Domain Name System Sorry for the delay in publishing this! I actually started off the year with ambitious plans to blast through some writing and have a nice little pipeline of finished articles ready to deploy. What actually happened was that I caught Covid. Without meaning to sound like Toby Young, for me it was fortunately just a bad case of the flu.

Read more »

This post is part of a series: Introduction Protocols Internet Protocol User Datagram Protocol Transmission Control Protocol Domain Name System This is the first post in a series on what web developers need to know about the Internet. As I’ve mentioned elsewhere, I attended a web development bootcamp in London. Naturally, bootcamps focus on the practical stuff to get you started making rad websites. That left me in the slightly odd position of being a web developer who didn’t really know how the web worked, how the Internet worked and what was even the difference.

Read more »

The core idea of The Computer Science Book is that computing is a teetering tower of abstraction. By understanding the design and function of the levels below, we can more intuitively understand the behaviour of the system. Asynchronous programming in JavaScript is an excellent example of this. We saw in the previous chapter how JavaScript runtimes implement an asynchronous programming model using a task queue fed by background worker threads. Callbacks map neatly to the tasks executed by the runtime.

Read more »

When noodling around on Reddit’s /r/learnprogramming, it’s common to find misconceptions about how JavaScript works: how does the compiler know to make it asynchronous? how do I make this function a callback? JavaScript is unusual because it is asynchronous by default and so requires a different programming model using callbacks and so on. That can be tricky to understand, which is why this question on Stack Overflow has nearly 6,000 upvotes.

Read more »

The operating system (OS) is a very special program. It’s the first thing to run when you start up your computer and it is the only program to have complete control over the system. Every other program has to go through the OS when it wants to access system resources. This is a good thing because a malicious or poorly-written program could otherwise steal your data or trash your expensive hardware.

Read more »