What does – ‘Knowing a language’ really mean?
I’m sure it’s more than knowing just the syntax.
Is it
- knowing all/most of the available libraries
- knowing how the features of the language are implemented
How did you learn the language you are proficient in?
‘Knowing’ a programming language is very similar to ‘knowing’ a human language – you’re fluent when you don’t have to keep flipping back to a book or pausing to remember the right word.
I think ‘knowing a language’ means being able to read and comprehend most programs (~90%) without looking anything up in a reference resource, and knowing exactly where to go to find the technical details on more obscure parts of a framework. For languages/platforms that don’t have a ‘framework’ per se, it is having that knowledge of the major libraries commonly accepted by the community.
For writing in that language, it means spending ~90%+ time on the design of what you’re writing – including research on the design – and less than 10% looking up technical reference information.