I'm not sure the piano analogy is really apt. A piano has 88 keys (and really it's just the same keys repeated across multiple octaves) so any competent player will of course quickly memorize the keys and playing the piano would be impossible by actually reading the labels on the key anyway.
Doing software development means using a variety of different standard APIs which many combinations of methods/parameters/etc as well as any number of custom, project-specific APIs. Sure, if you work on the same project using the same codebase for years on end then you can probably effectively memorize all the relevant APIs, but few developers are in that situation. You move from project to project and have to drop in to large, existing codebases with their own conventions and abstractions.
Doing software development means using a variety of different standard APIs which many combinations of methods/parameters/etc as well as any number of custom, project-specific APIs. Sure, if you work on the same project using the same codebase for years on end then you can probably effectively memorize all the relevant APIs, but few developers are in that situation. You move from project to project and have to drop in to large, existing codebases with their own conventions and abstractions.