I've been working on computers since the mid 1980s.
And I only know a fraction of a fraction of what's out there.
Because being a programmer means constant state of learning. You flow from one task to the next. Learning new things. Bumping your head against the wall repeatedly, only to find new walls to bump against.
I've seen experts in their field. They know everything about a particular subject. Except that's all they might know. Once they venture out of their realm, they're lost. This is too narrow of an approach. Because that technology will never stay the same, new versions, new competition, deprecated technology, etc. will cause that expert to learn something new.
You sort of have to know a little about a lot of subjects. Deep in some areas, shallow in others. The trick is not to memorize every single detail. It's to get acquainted with the new technology from a high level. And slowly learn the details along the way.
You can be learning 5 new technologies concurrently. You pick up some info here, store that. You learn something new about something else, you integrate that into your memory. Pretty soon, you have a holistic picture of how things mesh together, how things got that way over time and where it's heading.
If I was going to interview somebody, I'd ask three things.
- What are you working on today?
- How did you get to this point?
- What are you learning for tomorrow?
I've read stories about people who carry a notepad and pen in their back pocket. To write down pieces of information as it occurs. That seems like a cool way to do things. Because as you're soaking in all this new information, occasionally you have moments of intuition where things start to make sense and it seems smart to record ideas for later use.
To summarize, "Always be learning!~"