I wouldn’t go with your definition:
that one can write a fully functional program without consulting any references
1)”Hello World” and Deep Neural Networks are both fully functional “programs”. The complexity matters..
2)In the office nobody expects you to handle a program from beginning to end. Depending on the size of the office and their assembly line your assignments will vary a lot. For most of the time, you’ll be implementing methods within a larger program.
- It is a normal practice to use the documentation(“reference”) even if you’re on a senior position you’re not supposed to remember everything by heart. Every dev I know spends at least 30 min on StackOverflow every working day.
What is perhaps more valued is a solid foundation, understanding how the language works under the hood, ability to write clean readable code and be a team player.
Beyond certain level proficiency is not a criterion anymore because if you have a solid understanding of the language you can learn how to implement any complex algorithm or data structure in a reasonable amount of time.
You can never LEARN the whole language, you learn the Grammar..