Beyond basic competence.
WHAT DEPTH INVOLVES
Understanding how the language actually executes Knowing the standard library thoroughly Understanding performance characteristics Knowing the idioms and why they exist Being able to debug difficult problems
WHY IT MATTERS
Breadth without depth means never solving hard problems.
WHAT TO LEARN AFTER FLUENCY
How memory is managed How concurrency works How the build and runtime actually operate What the common failure modes are
WHAT TO READ
The standard library source, which teaches idioms Well-regarded projects in that language The language's own specification or reference, selectively
WHAT TO PRACTISE
Debugging difficult problems Profiling and optimising Reading code you did not write
WHAT TO CONTRIBUTE TO
An open project, which exposes you to review by experienced practitioners.
WHAT TO TEACH
The language, which reveals exactly what you do not understand.
WHAT TO ACCEPT
Depth takes years, and cannot be rushed.
WHAT TO MAINTAIN ALONGSIDE
Enough breadth to know when another tool suits better.