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 »
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 »