What is considered being proficient in a programming language?
I wouldn't go with your definition:

that one can write a fully functional program without consulting any references


&quot;Hello World&quot; and Deep Neural Networks are both fully functional &quot;programs&quot;. The complexity matters..

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 (&quot;reference&quot;) even if you're on a senior position you're not supposed to remember everything by heart. Every developer I know spends at least  30 min on Stack Overflow 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 a certain level of proficiency, it 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...