How to program

To many, programming is a tedious chore where you’re fighting with hard-to-understand error messages and smash your keyboard in frustration.

What, if it didn’t need to be that way? What if programming could actually be nice, most of the time.

If you have to program, here is some Nice Stuff that for some reason is not commonly taught. If it is taught, you often just superficially learn how to use it. But it is not hard to understand! There are good reasons for many things being how they are and knowing why something works that way will help you remember how to use it.

The Nice Stuff

Not all of programming is about coding! A lot of tools outside of the text editor make programming easier.

Many of them are terminal tools. So you’ll learn how to use the terminal. You’ll look like a hacker from a movie! But be warned: It’s actually quite boring and simple. You’ll also learn how to use Git, one of those terminal tools, which will help you not worry about losing code ever again, and even work together with other people on the same program. And speaking of collaboration, when you get stuck and need help, you should know a thing or two about how to ask a good question. Yes, really. And I’ll also show you where to ask it.

But there are things to know about coding as well. Instead of chasing bugs when they’ve infected the guts of your program, why not have the computer constantly test it for you? It sounds like magic, but the idea is really simple. And you’ll also learn how to organize the solutions you have in your head into nice, reusable abstractions. Sounds scary? It’s not complicated! You just need to know what to look out for and train your nose to spot smells.

And if you spend a lot of time writing code, you should also learn how to touch type. You probably have guessed that already. But do you know about Vim’s keyboard shortcuts that make moving lines of code around and replacing function parameters really quick and easy? I’ll even show you how to exit Vim. You’ll get that joke.

There is also some required reading that is absolutely essential for every programmer to know. No debates, put your time in and read it all.