Programming is mostly engineering. You are rearranging abstracted units. Usually, you are piping data from point A to B, in which case there exists one algorithm to do that. Sure, some devs have deeper problems, but the majority of us are simply building data pathways.