The job of a manager is to direct individuals to produce artifacts and integrate them into a coherent product. The artifacts workers produce are either <i>about</i> the work (assembly line, inspection), or they <i>are</i> the work (the sql, classes, functions, objects, scripts, images, and markup that constitute the <i>body</i> of a working distributed application). The software body, of course, works within the context of the runtime, which is usually a distributed, heterogenous process graph connected by well known if equally diverse protocols. And this doesn't touch the tools that you need to know (in all their variety), the technical/human processes that help move things along, the extra runtimes you need to produce real software (e.g. qa, staging), or procedures for deploying, troubleshooting, and improving running software.<p>This is a very large amount of knowledge, on top of the core data/algorithms classical CS education, and it grows even larger when you consider the full breadth of <i>alternatives</i> when it comes time to structure, build, and operate a real-world application.<p>Requiring Photoshop skill of a Sr. Dev is an organizational code smell. Properly, that role has much bigger fish to fry.