Hey There! My name is Vega, and I’m glad you’re here!
I know there are plenty of tutorials and ways to learn online, be it on YouTube, SkillShare, or online classes provided for free by various universities. The difference here is I’ve tried to cut out the boring parts, make things a bit more entertaining than a textbook, and drenched the content in my own personal opinion that has been built up by my experiences. My views on things like what programming languages are bad or what hardware you should buy to learn on will be expressed directly and bluntly. This isn’t to say I won’t explain my reasoning, just that I’m not going to be apologetic when I say PHP, Java, Arduino (at least the 328p), and Windows 10 are trash - though I will still likely talk about all of these things.
I by no means expect you to share my same biases, in fact, I hope you do not and that at one point or another we can discuss why you think I am wrong, as that is the only way I can learn.
So, What is this? #
To put it poetically, this is a guide for understanding the power the electron has in our lives, as well as a love letter to the beautiful math and science that are used for computer and electrical engineering.
Electricity, digital logic, code, computers, embedded systems - these things are all around us every second of every day. As I type this, I’m wearing a smartwatch, I have a smartphone in my pocket, and I’m using a desktop computer. Each of these devices contains dozens of smaller computers, power supplies, wireless interfaces, etc. My goal with this is to teach you how all of this works and how to work with it, from transistors to high level code to useful user applications.
A beam of electrons deflected in a circle by a magnetic fieldMarcin Białek, CC BY-SA 4.0, via Wikimedia Commons
While I’m at it, I also want to inspire you to see beauty in these devices and the algorithms that make them run. For example, the background for this page is running a simulation of Physarum polycephalum or slime mold. Beyond being beautiful, the simulation is actually useful because the way slime mold looks for food happens to be a very efficient way of finding the shortest path(1) visiting many points - a problem I’m sure the developers of Google Maps would tell you is very important!
I will be assuming you are of reasonable technical ability already- that is I assume you can proficiently use most types of generic software, navigate a file manager, etc. Furthermore, while I will go into high level math, chemistry, and physics, I don’t think they’re strictly needed for every reader as knowing these things is typically not actually useful in the daily life of someone who works on any of this beyond those that are doing cutting edge research or are planning to teach. In either of those cases, you should actually go to college instead of reading this. For everyone else, welcome. This site aims to save you going to college, getting hundreds of thousands of dollars in debt, and taking classes full of useless information you will inevitably forget and for which employers don’t care about to begin with.
Following along will require a few things. The first of which is dedication and time. If you don’t have the desire to put in at least a little bit of work there is simply no way I can help, that said, if you’re reading this instead of watching Netflix I believe that’s already proof enough you want to learn. Next is hardware and software, namely you’ll be needing a few development boards and Linux, but we’ll get into those with time.
Before we get started, there are a few things I recommend reading and watching first. These should give you a bit of an overview of some of the things that will be covered, to give you at least a tiny bit of familiarity as each concept comes up.
While I will be covering a lot more than just Computer Science, I recommend this overview of the topics covered in CS: Map of Computer Science by Dominic Walliman
If you want to go through a really gentle introduction to a lot of what this guide will cover, This Crash Course: Computer Science series on YouTube is pretty good too.
Slime mold code modified from TheBugStudio’s Code on CodePen
- Well, sort of. The way it works doesn't ensure you're getting the shortest path, but then, doing so would require checking every possible combonation, which is the extremely inefficent task this simulation helps avoid