I think programming consists of several subdisciplines:
- how to use the compiler + build tools.
 - how to use the programming environment / libraries
 - how to split your problem in smaller problems
 - how to solve a small problem
 - how to organise your code on a high level.