What’s Next?

We’ve covered a lot of information in a small space, but hopefully you now have a sense of what is happening inside your computer. The core of a computer is reasonably simple: the CPU reads data from memory, works with it, and then writes the result back. That workflow is the foundation that all of Computer Science is built on.

We already have some tools to build on this foundation. Imagine if you wanted to store pictures, music, or video on your computer. After our brief dive into types, we know that we just need a method to convert that data into binary to start working with it. And those methods already exist. We can store images as PNGs, JPEGs, TIFFs, PDFs, or many other types. We can store audio as WAV, MP3, Ogg Vorbis, or FLAC. We can store video as WMV, MP4, AVI, or MOV. All of these are simply descriptions of how to translate information into charged and uncharged circuits in memory.

We can even build further. If we can send a 1 and 0 from one computer to another, then we can transfer any information we want. The first computer would send a value from memory one bit at a time, and the second computer would reconstruct it on the other end.

The easiest way to send a signal like this is with electricity. A computer sending an electric signal can either send a signal with high voltage or low voltage. The receiver then just reads high voltage as 1 and low voltage as 0. So we just connect two computers with a wire, give them a little bit of hardware to convert 1’s and 0’s to electric signals and back again, and we can suddenly share any data we want.

As you add more computers it becomes difficult to continue connecting them with wires. So wireless technologies were developed that allow computers to send the same signals without requiring a physical connection.

So now imagine you have a video or song on one computer, but want to play it on another. The first computer has the data stored as 1’s and 0’s; it converts that data into wireless signals and sends them to the second computer. The second computer receives the wireless signal, converts it back into 1’s and 0’s, and then reads it using one of the video or audio formats.

That’s the entire concept of streaming built on two simple ideas. First, if we can translate information in 1’s and 0’s, then the computer can understand it. Second, if we can send 1’s and 0’s between computers, then we can transfer information between them.

There are plenty of complications between where you are now and writing your own music streaming service. However, you now have the tools to form at least a basic understanding of most programs.

Where to Go From Here?

I promised both an introduction to Computer Science and a guide for where to go next. We’ve covered a bit of the first, but none of the second. Here are some of the roads you could follow.

Python or JavaScript

If your goal is to start programming and building things as quickly as possible, you can jump ahead to some of the modern programming languages that are more user friendly and come batteries-included.

There are loads of resources available online if you want to jump in.

Bash and Systems Administration

We only just scratched the surface of the filesystem and running programs on your computer.

There is a lot to learn about managing your computer, but even more to learn about managing multiple computers. I regularly work with dozens of computers at the same time and keeping track of all of them can be tricky.

C

If you want to keep digging deeper, you need to write a bit of C. We’ve seen the basics of how it works, but we haven’t seen how it breaks.

The places where C causes problems have been one of the greatest sources of new ideas. Some of these problems have sparked entire new programming languages. Others have been the basis of programming strategies and designs that help both you and the computer.

Once you have a little more experience with C, you can go further and explore topics like performance, networking, the internals of your computer, algorithms, graphics, compilers, new programming languages, and more.

You are also welcome to explore one of the other topics and come back later. In the end, everything overlaps. So start wherever you would like because there is a lot to learn.