This is a lot of what I know about programming compressed down into a knowledge garden. I wish someone had given me this when I first started learning to code. Hopefully it can be a helpful guide or resource to someone from the future. Sprinkled in is my own personal preferences and recommendations.


If there’s one tip that applies to everything in software it’s this: RTFM. Reading through documentation will answer ~80% of all questions. StackOverflow will answer another ~15%. Just read.

Hello, World!

It’s a right of passage to write a “Hello, World!” program when learning to program. It’s a simple program that simply outputs “Hello, World!” to the screen. This is a great introduction to programming because it’s simple and it works. It’s a great way to get your feet wet.

The next steps are to learn about variables, functions, and control flow. These are the building blocks of programming. There’s still more to learn, but at this point, it’s not a terrible idea to hop into the next section and learn how to apply this “programming knowledge.” There is a trap known as tutorial hell that you want to avoid.


If you haven’t already, create a GitHub & StackOverflow account. They’re both free and will be useful for the rest of your programming career.


Leveling Up

From my own experience, it took a decent amount of time and effort to get from 0 to 1. Looking back, I believe this was in-part due to me being stuck in tutorial hell without realizing it. It was difficult to know where to apply my “programming knowledge.” But once I got to 1, it was much easier to get from 1 to 2. And then from 2 to 3. And so on. The more you learn, the easier it is to learn more.

I believe the easiest way to learn in programming is by doing, so I recommend building a project that you’re interested in. It doesn’t have to be anything fancy, just something that you’re interested in. It’s much easier to learn when you’re motivated.

Continuous Learning

Continuous learning is crucial to being a good programmer. Nobody knows everything about the field, and it’s constantly changing. The best way to keep up is to dedicate time to learning as you go.

Resources for Continuous Learning

  • Follow people on GitHub. You’ll see what projects they Star which may lead you to new projects.
  • Visit Hacker News. Lots of programmers are on there and they post interesting things by the minute.
  • Find a community. There are lots of communities out there. Find one that you like and stick with it.
  • Learn from outside fields. There’s a lot of opportunities to overlap between programming and other fields.
  • Read documentation. This is the best way to learn about a new tool or library.
  • Read technical and non-technical books. There’s a lot of great info in books.
  • Learn from others. Pair programming is a great way to learn from others.
  • Experiment for fun. Try new things and see what happens.