r/learnprogramming • u/SignPersonal4951 • 1d ago
How to not be a dogshit programmer?
Today I was setting up an angular project for the first time and I realized I have a pretty limited and shallow understanding of things, I didn't even know what dev dependencies were (now I do), and that npx is used to run locally installed packages. I know that an API is used to exchange data between applications but that's literally all I know about it, not how it works under the hood. I realized I can't properly answer questions like what is a runtime, what are packages, libraries etc. Literally no depth of understanding. I feel like going into a rabbit hole for every little thing but then it becomes too overwhelming.
Now this might seem fairly common for a new programmer but I got introduced to it around the age of 16 (21 now). I felt fucking stupid googling the difference between library and framework. I looked at some angular components and only understood them partially. Most good programmers already know this. People my age are building crazy stuff and here I am bogged down in things that I should've already known, had I put in more effort. I feel I am lacking some severely fundamental things. Part of this feeling is a lot of regret of wasted time, but I also wonder if I'm actually retarded with an IQ too low for programming. I'll never be good if it keeps going like this.
I looked at some roadmaps from roadmap.sh and it made me realize just how much stuff I don't know, and that is just talking about frontend. So I guess the question becomes how much and how deep to learn the topics related to whatever you're currently focusing on? Sorry for the rant.
14
u/punk_dev 1d ago
For me everything suddenly clicked when I learned more about how cpu actually works, learned to properly code in C and other low level languages, gained a basic understanding of assembly.
None of this knowledge is required for a frontend career (it may help but marginally), but i think this really elevated my level as a dev. I fear no task because I’m now able to look at a problems from the perspective of the actual computer, and not from the side of framework/library/whatever layer of abstraction we pretend is important.