Soft, no question about it.
I find it a little shameful that while I can code and program somewhat, I have no idea what's going on inside my little powerbox. I blame all the laptops I've owned... messing around with those is probably not a good idea unless you know exactly what you're doing.
I'm primarily into hardware. I've built desktop computers, changed out components in laptops and muck around with networking gear, though not always successfully.
Case in point: recently I added a second router to our work network and configured it as an access point (which usually amounts to nothing more than disabling the DHCP Server option). For a week no one could log into the wireless network using the primary router but could through the access point. I forgot to disable wireless on the primary router and didn't enable WPA2 on the access point. Great, I'd created a totally open wireless network. Duh! I've since corrected this, but man did I feel stupid when I realized what I'd done.
I started as a Linux guy. However, now I do consulting for Symantec Enterprise Vault, Endpoint Protection, and Backup Exec. It's funny how you get somewhere you never planned. lol. That being said, my heart is GNU!