I would also recommend learning at least the basics of lower levels of computing technology, e.g. some CPU architecture and some assembly or low level C.
It's a lot easier to avoid becoming a zealot when you know what's going on underneath.
Do you know any good resources to study this sort of thing from? (any summer programs?) I am a young developer and have been meaning to learn this sort of thing for a while.
If you want to play around with some hardware I'd recommend getting an Arduino board. You can start with the Arduino IDE and work your way down to the metal. It's a relatively simple system but the principles apply pretty much to bigger systems.
Another good platform in the same vein is the BeagleBoard, which is a great way to play with a slightly bigger platform running Linux.
It's a lot easier to avoid becoming a zealot when you know what's going on underneath.