Programing is fun but it lacks a tangible component, I started my studies as a CS major but after a spending an entire spring break writing and debugging(and basically only those things...eating and sleeping happened if I remembered to) were the second year project. I realized that I would end up working the same way, so I found a major that I can't take with me and isn't just contained in my head.
I worked in the robotics lab at my university for a few months. That was a really nice way of making software more tangible. Seeing things move through physical space made it more real.
I miss working in robotics, in part due to this. Also implenting a complex path algorithm is so much more rewarding than moving data around. The field testing trips were the cherry on top.