The most important programming skills are the so-called “meta-skills”.
Programming is often not about the coding itself, but instead:
- The ability to build a mental model of the core problem.
- Understanding business requirements.
- Mapping the known components into a chain of events or a story that works together.
- Receiving all requirements and dependencies early on before hitting a blocker.
- The skill of debugging all sorts of problems (from an analytical and technical standpoint).
- The process of learning new skills, technologies, libraries, frameworks, patterns.
Beginner programmers often get stuck on specific problems and tasks. They look for a solution to a very limited problem that cannot be easily applied to other tasks and bug requests.
This leads to an endless learning cycle.
The better alternative is extrapolating that to a higher level – thus learning the core idea of a solution, platform, framework, module, and solving the problem once the “bigger picture” is clear.
This is why the “hacks” that most senior developers use are related to those “meta-skills” and not actually coding faster or formatting code better or other programming skills.