Huffman Coding Explained: Build a File Compression Program in C
If you want a project that truly improves your programming skills, building a Huffman compression program in C is one of the best challenges you can take on. Huffman coding is a data compression algorithm that reduces file size by assigning shorter bit sequences to frequently used characters and longer sequences to rare characters. The…
4 Criteria for an Awesome Coding Project
If you ask the internet, “How do I learn to code?” you usually get the same advice. Just build something. So you build a calculator. Or a weather app. Or a to do list. But after you finish, you feel like this person who says, “I can’t understand and can’t do anything on my own.”…
How Senior Devs Organize Their C Projects
From Amateur to Pro: 3 Layers of Separation for Your Codebase Does your project directory look like a flat pile of files? You know the look: logic, headers, tests, and binaries all fighting for space in one folder. In a university project, this is fine. But in a professional environment, this is called Source Pollution.…
Beginner Coding Tools: How to Start Using Git, Terminal & IDEs Without Overwhelm
Beginner coding tools can feel overwhelming when you’re just starting out. IDEs, the terminal, and Git can seem confusing, but with the right approach, you can start using these tools effectively. In this guide, I’ll show you how I got started with coding tools as a beginner and how you can build confidence while learning.…
Working Directory vs Source File Directory Explained
If you’ve ever tried to read a file in your C program and got the dreaded “file not found” error, you’re not alone. The root cause for most beginners is misunderstanding the working directory vs source file directory. Knowing the difference between the two will save you hours of frustration. This confusion usually comes down…
The Lazy Way to Debug (That Actually Works)
Stop Debugging with Hope: How to Debug Code Like a Pro When I was first starting to learn how to code, and even into my early days of my software career, I had a very inefficient way of debugging my code. Whenever I saw a crash or some behavior that I wasn’t expecting (basically, a…
How Teams Use Git Branches to Build Features
If you’re using Git to do your software development and you’re using your main or master branch and doing all your development there, you’re doing it wrong. Real teams make branches and do all their features or bug fixes in branches. Then, after everything works, they merge those branches into the main branch. It might…
What I Wish I Knew About Dev Tools When I Started Coding
Choosing the Right Dev Tools Without Wasting Time As you learn how to code, you will eventually run into a wide variety of development tools. Pretty soon, you start asking yourself questions like: Which dev tools should I use? Which ones actually matter? Which ones will make me better or faster? When I say “dev…
Learn Variables the CORRECT Way With This Better Analogy
Variables are the bread and butter of software development. Yet, a fundamental misunderstanding of what they actually are is the reason so many beginners get stuck. I recently came across a post on the r/learnprogramming subreddit that really resonated with me. A student confessed that they had been learning to program for over six months…
