I agree. 'sink or swim' has been the technique of preference in academics for many years. I would think it it is the same for any discipline (electronics or chemical engineer). may be the fluid abstractions used in learning software make it much harder to train people?