I've always felt reasonably confident with basic math and problem-solving, but I started learning programming and computer science this year and decided to build my dream desktop setup with Quickshell and QML as my first project. Now that I'm writing my own functions and logic, I keep finding simple mistakes in my code and feeling completely incompetent. For example, I recently wrote an if condition equivalent to "if (x == x)" without realizing it until I came back to debug it. I may also be sleep-deprived, but the constant cycle of blaming the computer and then realizing I made the mistake myself is getting frustrating. Is this a normal part of learning programming? Does it become easier with practice? I'd also appreciate recommendations for beginner-friendly books, videos, or resources about programming concepts, problem-solving, and good development habits.
5 Answers
You don’t need to be a math genius to program. Basic arithmetic is enough for much of everyday coding, while specialized math can often be handled with existing libraries when you need it. Practice, logical thinking, and patience matter much more. Building something you’re genuinely interested in is a good way to stay motivated, though you may want to break the current project into much smaller parts.
A lot of beginners experience imposter syndrome because every new topic reveals how much more there is to learn. That doesn’t mean you’re getting worse; it usually means your understanding is expanding. Even experienced programmers make obvious mistakes. The important skill is learning how to find, understand, and fix them.
You’ve only been programming for a short time, so there’s no reason to expect yourself to handle a large or complicated project immediately. Start with smaller projects that you can mostly understand from beginning to end, then gradually add difficulty. Each project should teach you one or two new ideas before you move on.
That feeling is extremely common, especially during your first year. Programming isn’t the same as being good at math; it mostly involves breaking problems into small steps and carefully comparing what you intended with what the code actually says. When debugging, ask three questions: What did I want to happen? What happened instead? What exactly did I write? That process is more valuable than never making mistakes.
It probably won’t reach a point where you never make silly mistakes, but you’ll get faster at recognizing and fixing them. Be humble about your assumptions, get enough sleep, and avoid treating every bug as evidence that you’re unintelligent. Catching a faulty condition like that is already part of becoming better at debugging.

Related Questions
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically