Everything I Wish I Knew Before Taking My First Programming Class
If you're anxious about starting your first programming class, you've come to the right place. I have four practical tips to help you tackle and break down this complex subject, even if you have no prior experience.
Understand the What Before the How
When you start learning something complex, it can be confusing. Learning materials often fail to clearly separate what things are from how they work, diving straight into the gory details without first building a useful overview. So it's up to you to learn what things are before your course starts diving into how they work.
You won't know this yet, but most programming languages share the same common fundamentals. That's perfect, because you can safely introduce yourself to what each concept is in advance.
Understanding what everything is first builds a strong foundation. Without that strong foundation, trying to use things that you don't understand is wasting your time.
It's good practice to do this for any subject, and in programming the list of topics looks something like this (in order of importance):
-
Variables
-
Operators
-
Expressions
-
Conditional statements
-
Lists
-
Loops
-
Errors
-
Functions
-
Arguments
-
Classes
There's about 3 to 4 hours of work there for a beginner. Don't worry about the details; just describe each in one or two sentences. The smaller the description, the easier it is to remember.
Doing that first allows you to focus on questions and practical work in classes. So, provide descriptions for the bullet point list (above) and make flashcards. Commit them to memory before your class begins. Spend about four hours preparing now, and your classes will be much easier.
Focus On the Recipe, but Know the Ingredients
conejota/ Shutterstock
Programs are like a recipe: they're a sequence of steps that achieve a goal. Keep that in mind and avoid the trap of laser-focusing on individual lines of code.
A beginner often looks at a line of code in confusion, which typically indicates that they don't know what something is (not how to use it). For example, if a program was a recipe, but you couldn't read, then the recipe would be completely alien. Understanding what the ingredients are unlocks the meaning of the recipe.
I didn't understand this principle in high school and ended up staring blankly at code, not understanding any of it. I managed to finish the short course, but I learned nothing. If you're struggling like I did, go back and make sure you understand what everything is before trying to use them. Once you do that, you can put the ingredients together to describe how to achieve a goal.
It's the recipe that should be your overall focus, not the individual lines of code. Define your goal, and break it down into steps. Describe those steps with ingredients. Because you now know what everything is, arranging the recipe into steps is 10 times easier.
If you only focus on the steps and ignore the ingredients, you'll get stuck in tutorial hell, a state where beginners become dependent on tutorials to achieve their goals. Most beginners feel trapped there because they lack the foundational knowledge to build their steps upon.
Practice, Practice, Practice
Practice really does make perfect, especially in programming. In the long term, you need a lot of detailed knowledge to write good software, and you can't master it just by reading—you have to practice and learn from your mistakes. Reading only helps you get started, and you should spend at least 90% of your time actually writing code.
The first days or weeks are the hardest—it feels like scaling a mountain. It happens every time you learn a new programming language or complex tool. Your brain rejects the exhausting experience because it would much rather do something easy, like watch YouTube or TikTok. But once you push past that initial hurdle, coding becomes addictive. Like any skill, with fluency comes passion. Soon, solving problems will be the first thing on your mind when you wake up.
If you remember only one thing, let it be this: practice, practice, practice.
Make Note-Taking Front and Center
Monster Ztudio/ Shutterstock
Your memory is limited, and what you learn will start to fade in a few weeks. Regular practice helps, but you can't do it for everything. To help your future self, you need to write down what you learn. Over the years of taking notes, the following principles were key for me:
-
Organization: Use an organized system like Zettelkasten, a system where each note has a dedicated page with links to others. Keep them short (e.g., less than 500 words).
-
Reorganization: Regularly reorganize your notes, because reading, understanding, and categorizing your notes works like revision.
-
Indexes: For each topic, like programming, make pages that work as a table of contents. Each item within it is a link to a note, and it has a short 1-2-sentence summary.
-
Conclusions: Conclude notes with comments and intuitive thoughts.
-
Summaries: For notes longer than a few hundred words, add a 1-2 sentence summary at the top.
-
Citations: Use footnotes or a citation manager. Always record your sources so you can verify factual information or expand upon the note in the future.
It's better to pay attention and think during class instead of taking notes. Instead, ask for a recording, or make your own if allowed. Later, carefully review the recording and take notes, focusing on key information and skipping most minor details.
Take different kinds of notes too:
-
Journals: Your thoughts, feelings, struggles, and what you've learned. Putting your problems on paper often leads to better solutions.
-
Solutions: The tough problems that you've cracked, and how you cracked them. This is crucial to help your future self.
-
Notes: Define what things are and how to use them.
-
Ideas: Record what you want to build and how you would do it—this will grow your passion and creativity.
-
TODOs: Create multiple TODO lists, with at least one for questions to ask your teacher or lecturer.
Your notes aren't meant to be a detailed record—they're instructions for your future self. Proofread them as if your future self is reading them and has forgotten everything.
It doesn't matter if you use Zettelkasten or not. What matters most is staying organized and writing good summaries. If you can quickly find and understand ideas in your notes, it's a good system.
If you want to learn more about Zettelkasten, the book How to Take Smart Notes by Sönke Ahrens helped me a lot. It explains the older manual system, but it also works in some modern note-taking applications like Obsidian and Logseq .
If you're interested, we have a guide on creating a personal wiki with Obsidian and a very brief introduction to Logseq . However, researching Zettelkasten is a separate project for you.
In short:
-
You should understand what everything is first, because these are the building blocks that you will build upon.
-
Use what you've learned through frequent practice, focusing on building recipes (programs) using the fundamental building blocks.
-
Take well-organized and summarized notes. Frequently reorganize them as a means of revision.
Most importantly, back your notes up regularly. Your notes are your crutch, and losing them could be devastating.
If you're looking for a similar article, we have another: Things I Wish I Knew When I First Learned Programming . If you're learning web development, perhaps you'd be interested in advice for beginner web developers .
