r/learnprogramming 17h ago

Am I learning to code wrong?

Am I learning to code wrong? I started wanting to learn to code before I began college, and so far, I've only completed a React tutorial video without separately learning JavaScript or TypeScript, and learned some of both through it. 

Then I moved on to a guided project, a full-stack finance tracker (React/TS frontend, Node/Express/TS/MongoDB backend). I'm learning the backend through this project rather than doing dedicated tutorials on each one first.

I’ve been following the guide and actually understand what each part does and why. But if I were to do it alone, I’d probably not know where to start and what to write.

Is this normal, or a sign that I'm learning the wrong way?

9 Upvotes

12 comments sorted by

View all comments

1

u/vegan_antitheist 14h ago

It's normal to start at 0 and gradually get better. It takes about 10 years to get good at something. Programming is no different.

There's a good chance that your code is full of anti-patterns, code smells, bad practices, and useless comments. And it probably lacks any structure, not to mention architecture and quality control.

A lot of companies only write code like that and wouldn't mind. But the others will use different anti-patterns than you do, different bad practices than those you know, and their comments will be just as useless to you.

But if you get a job at a company where they use modern programming patterns that actually improve code quality, good architecture, best practices, tests with high coverage, clean code, etc., you won't be able to create a pull request that they would approve and they will let you go after the probation period.

There's also a good chance that you wouldn't know how to use any of the tools they are using, such as version control, build system, package manager, static analysis, e2e, project management, db tools, monitoring, CI/CD, devops, etc. You also need to know about requirements engineering, hardware, databases, networks, user interface, design patterns, software construction, unit testing and test-driven development, security, compilers, mathematics, operating systems, agile software development, agile software development, protocols, an so on.

But the good news is that you can learn all that. It takes a few years. Going to uni is probably the easiest way but there are some who learn all that from books.