In the more generalized roles, you deal with parallel systems made up of unreliable carbon-based computing elements. You can't just feed them electricity and order them to execute programs. You have to charm, cajole, and/or threaten them at the right time in order to get them to produce the desired outputs. This requires some amount of patience and wisdom to do well.