Today's software developer can't just have an interest in the machine, like what fascinated me when I grew up programming. He or she must be interested in understanding and solving actual problems for people and businesses, and be able to join the dots back to the underlying technology.