It is only code — Sunday, Aug 18, 2024
Kære Computer,
A common misnomer I remember hearing lots, way back when I worked at a university in Germany, is the use of the noun learning instead of teaching in a sentence. Like: "My favourite class is the one where the docent learned us (...)". Because in the German, its sort of the same word, just used differently to emphasize context. I really like this conceptual mixup! I have been thinking a lot about what it means to learn how to be a programmer recently. How teaching and learning is two sides of the same practise, for me. I get to think it over again while I'm preparing an intro class on programming for my new job as lecturer at the Copenhagen School of Design and Technology (KEA), while simultaneously learning a new programming language again myself - Java.
Programming is a set of instructions that specifies to a machine how to do something. The computer must be told in escrutiating detail how to do anything. Machines are dumb as rocks and don't understand hints or humor. They can't imagine what you mean unless you express it exactly right. When you knit a sweater, you are the computer and the recipe is the program you run.
Computers actually can't do much. Here's a list of the instructions that are acceptable:
- Input Get data from a keayboard, file, sensor or other device.
- Output Display data on a screen or send it to a file or other device.
- Math Perform basic mathematical operations.
- Secision Check for certain conditions and execute the appropriate code.
- Repetition
Perform an action repeatedly, usually with some variation.
Every program you've ever used, regardless of how complex or sophisticated it appears, is made up of these small computational building blocks. Programming really is the process of breaking a large, complex task into smaller and smaller subtasks, until they are small and simple enough to be performed with the electronic circuits provided by the hardware. Everything must be translated to biip booop fluent machine.
Grace Hopper invented the compiler, which in a sense is the translator that we have in all modern (high-level) programming languages that turns human natural language instructions (computer code) into something the machine understands. She also coined the term debugging, at a time when a computer took up the space of an entire building, and running a program could be interrupted by a moth getting stuck in a relay!
Today a bug is what we call all and any programming errors, and debugging is the process of of tracking down the errors and fixing them. When you try to build something out of lines of code, you can be sure to get plenty of errors Debugging is one of the most valuable skills you can hone as a programmer. It can be incredibly frustrating to find the error and spend lots of time on it, especially if it turns out to be something dumb like a typo, unsaved file somewhere or a forgottennpm i
. Not knowing how to make the thing work, can trigger the worst and most deeply held belief that I'm a dumb-dumb.
I always struggled with this. I don't feel like a natural talent. I didn't assemble my own computer when I was a kid, or build my own game in highschool -for fun-. I'm a slow learner and nothing has ever been easy breezy about building this technical career for myself. The only thing I have going for me is stubbornness, and sometimes even that fails me too.
Its one of the reasons why I love to teach intro to programming for beginners. I always found it easier to be kind, patient and encouraging of making mistakes when other people are making them. Something clicks whenever I am able to help/motivate/cheer/give the right tools to another person who is struggling. I stil struggle. But I found some comfort in leaning into good habits when I get stuck for too long and the dark clouds of self-doubt begin to gather above my head. Sometimes one of the best things to do, if you can, is take a break!
Another incredibly helpful way out of the soup-of-despair is calling a friend. I saw Alma the other day to knit and drink coffee. But also ask her, with my laptop perched between us on the wobbly cafe table, how to simply run something in my terminal, after I had fallen into the deepest, darkest, toxic youtube pit of 10x-engineer-dude-splaining madness. The issue I've had the most with learning anything technical, has been about being patient and kind to myself. Most things that are worth getting good at, take time! Via Rusty Foster's brilliant newsletter, I learned that in 1991, songwriter Ron Miller wrote a set of affirmations for the practice of music, which Glitch user @thricedotted made into a web app that can be adapted to any art: "It is only code and I am a beautiful person."
Thanks for reading.
♡ Nynne