I feel programming should be a side-skill. i.e. an engineer/artist/medic/historian/etc would learn programming to ease repetitive tasks.
This way they would have sufficient experience in an area to contribute effectively. Software is crystallisation of the thought patterns of its programmer, and the results of an error in that are magnified many times.
So a historian programmer would do things for historians.