Underlying functionality can be quite separate from the upper layers, so for the most part learning to code won't make you understand a computerised world any better. Also there is a big difference between hobby/academic programming and "professional" programming - the former lacking a lot of the realistic pressures to produce something useful, competitive and on time in an organisation; pressures that greatly influence the end product.
Labcoat best outlined the personal/intellectual benefits of programming.