I think the main thing is that you should love software and technology, not just as a career but as a way of life. That doesn't mean you can't have other interests. But you have to be interested in programming as more than just a way to make a living. Unfortunately this often translates as "no life, willing to work long hours for no extra pay". But not always.