I think programming consists of several subdisciplines: