You can't be a good programmer without a deep understanding of the engines that the software uses and the limitations of the tools. A good ingerstanding of the hardware would be utilitarian as well. Plus physics, chemical and mechanical engineering etc. Well mostly the software guys just want to twiddle bits. At a high level.
I liked it better in the old days when harware engineers learned software and processors.
The Smart Emergency Response System capitalizes on the latest advancements in cyber-physical systems to connect autonomous aircraft and ground vehicles, rescue dogs, robots, and a high-performance computing mission control center into a realistic vision.
Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies. You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived. So if you can't attend live, attend at your convenience.