Everytime I think I'm becoming a good programmer I realize I know nothing and it's very demoralizing

This has been a consistent theme in my coding journey. Every time I feel like I’m making progress and solving more problems I see other peoples solutions and read comments critiquing my own work and realize I am as clueless as they come. It is completely demoralizing.

I can’t solve that many problems and the ones that I can do are solved with basic for loops and if conditions which I think screams “amateur” to potential employers.

I feel like I only ever scratch the surface with solving problems and never really end up diving that deep.


sucking at something is the first step towards being sort of good at something


I don’t believe to be a “great” programmer you need to know everything, rather knowing what you know, don’t know, and minimizing the amount of stuff you “don’t know you don’t know” is the right route. What I mean by “don’t know you don’t know” is the area of knowledge where you don’t even know what its about, or could learn.
For example, you looking at other people’s solutions might show you different syntax than you’ve ever seen. Awesome! this is moving those solutions into the “know you don’t know”, which is better than not even knowing that syntax existed in the first place!

You can now go out and learn about all that stuff, or at least set it aside and learn it later.
The goal being again to know what there is to learn, and then learn it if you need it, rather than trying to know everything.

As simply put, trying to know everything is impossible, so knowing where you stand is better, at least then you can take that and move toward what you find you need and understand where you are relative to problems.

“Knowing yourself is the beginning of all wisdom.” - Aristotle

“Its not a bad thing finding out you don’t have all the answers, you start asking the right questions”. - Erik Selvig (Thor)


Ars longa, vita brevis.

You will not know everything, I will not know everything. Focus on the parts that you like, or on the parts that come easy to you.

Be it networks, coding, designing or whatever else - IT world is deep and wide.

Set a goal - for example getting a job in IT sector (or becoming a designer, or whatever).
Now, look at what minimum requirements are needed to achieve it.
Meet the minimum, achieve your goal (yes, you will suck at first, everyone does).
Set another goal.

And don’t try to become “a good programmer”, it can become a trap. Try to simply become a better programmer than a day before.


Comparing yourself with someone else about whom you know very little is never going to be a fair play and would always lead to either disappointment or a false sense of superiority.

Any kind of research or breakthrough is hard for the first time, and it takes a fraction of effort to replicate so you will always devalue what you know right now. Focus on your next step and your own journey.


This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.