Software is - or needs to be - an engineering discipline. It is very much less mature than the others, and the challenges are different too. You wouldn't expect a civil engineer to design a new chip without a lot of training in a completely new discipline.