| Welcome to being me decades ago - except I was even crapper. 1st off, don't fret too much. Some people learn x and think they know it all. You and I learn x and realise we don't know a, b, c, d... and lose confidence. Don't. > I don't know how databases work, Many DB/SQL programmers don't either, and they may have worled for years. I worked on several projects where it was clear the other DBs didn't understand the tech, and didn't even understand SQL that well (like not knowing transaction isolation levels and releasing code with race conditions in thereby). > I don't know what exactly ray tracing is Who cares. > So, how can one effectively fill gaps in their CS knowledge? You're confusing computer science with programming/development. They are different. My advice, you can't know everything (I tried and failed) so go for a broad niche (web dev + UIs, or back-end dev + databases). BTW for learning there are huge resources now that never existed when I started. Just hit DDG a few phrases ("how do databases work") and go from there. Relax a bit, and good luck! |
The latter is evidence you know what you are doing. And evidence of above average intelligence. Stupid people think they know entire breadths of knowledge - call Peter Principle or Dunning–Kruger: overconfidence is more dangerous to yourself and everyone around you than knowing your limits.
You can NEVER know everything so a heavy awareness of your limits and gaps is critical to being the best you can be. It means you have the _potential_ of operating around the edge of your limits. Realizing your limits (as they exist in the moment) is essential to pushing those limits.
People suffering from Dunning–Kruger have no clue how far over or under those limits they are operating.
This is also related to why you must have grades from A to F in school - you can't know where your knowledge boundary is without breaking it and sometimes failing. You aren't really trying or you are operating in dangerous ignorance.
Another analogy is you can't know the strength of a material without breaking it or reaching its strength limit.