“A computer is like a bicycle for the mind.” -Steve Jobs
Computing is powerful because it’s a direct extension of thinking. Just like language, it abstracts information into more easily transmittalbe forms to enable communication, the sharing of information from brain to brain.
Computing is all about understanding layers of abstraction. A computer is powerful because it’s not a fixed object, but rather a tool that changes itself through time, so it’s a process.
Turning on hardware
Is your computer plugged in? Try turning it off, and then back on (that seriously usually fixes everything). These are the two most fundamental things to know about hardware – turning off a computer is like sleeping for humans. We’re not really sure why you have to do it, but it helps the computer rest and reset and maintain focus when it’s on.
Installing software
Software is just like language – an abstraction used to represent a larger idea. E.g. that idea could be an on/off switch, represented by the abstraction of the binary numbers 0 and 1 (0=off, 1=on). I can represent that state of the switch as “1”, which tells you the light is on. You can’t see the lightbulb in my house, but that single number tells you about the reality of the environment.
To get a computer to “turn on”, aka make lights show up on the screen, the computer needs power and software to instruct the hardware on what to do. Codes/programs/software are the sequences of instructions which tell the computer to turn on after user presses the on button, tells the computer how to draw boxes on the screen, and most fundamentally, how to associate mouse position/clicks and keyboard clicks with the text/image representations on the screen.
- Hardware - Okay, you don’t install hardware, it comes from the factory complete, but hardware is the initial layer of abstraction. Digital circuits are arranged in specific ways to create hardware, so the “code” for how that hardware is arranged comes with each piece of hardware to integrate with more abstract layers of software.
- Operating Systems - The generic term for all of the low-level programs that talk to hardware code and figure out how to turn hardware on, what signals correspond to what outputs, how many pixels the screen has, etc.
- Programming Languages: All programming languages are themselves programs the calculate the relationship between the new language and whatever language/abstraction it is written in.
- Binary: the lowest-level language.
- Assembly: written in binary, defines new words that help users connect hardware to software (OS-level).
- C: written in Assembly, defines new words that help users write software to calculate equations (program level). A lot of the functions of modern opterating systems are written in C.
- Bash: the generic shell language of most terminals, can be used to navigate, move, search, and analyze your file structure more efficiently.
- Python: general purpose, can do a little bit of everything
- HTML/CSS: the basic languages of all websites
- Programs: pieces of code written in a specific language
Navigating files
All codes/programs/software are stored on the computer in the hard-drive/storage/archives/file system. Every piece of code/software is stored as a file, and hierarchies of folders are used to organize these files.
- Good programs: the terminal, which can also run bash code
Editing text
Enables you to write documents and essays, and also edit any programming language (which are all text-based abstractions of math). Text can be stored as a generic text file (.txt) or as code (.md, .html, .py, .c, basically everything else). Even a text file is code to transform 1s and 0s into pictures of letters on the screen.
- Good programs: Obsidian, Cursor, VSCode, Neovim
Browsing the internet
Many modern programs exist only on the internet. All websites exist on the internet.
- Good programs: Firefox, Brave
Talking to chatbots
Talking to chatbots is the current meta usage for AI.
- Good programs: ChatGPT, Claude, DeepSeek, etc.