I very much liked math in high school but liked computers as well. In my second year I started to suspect that I am a practitioner. Three years after that I was sure that I am, but not without visiting a theoretical conference. At this point I would say I am a decent generalist programmer - I am pretty good at writing readable code, using the simplest solution possible and not reinventing the wheel. It is hard for me to imagine what it is like to reason about things in 13th dimension but not being able to translate English into some code that compiles and passes some simple tests (given reasonable scale of work, of course).
I love what I do, but I also must have written a for loop over 10,000 times by now, so some aspects of it get boring. I miss the time when I had to think really hard about something new. I liked learning about finite automata back in college because regular expressions libraries utilize them. I would love to take a class on Markov Chains because I can see how they can be applied to very real problems. I also want to take Optimization, Linear programming, Statistics ... maybe one day after work.
As you can see my math background is pretty weak, although my math grades were decent and I really liked the subject. There are some things which I am not good at at all - such as thinking in abstract terms. With much effort I can probably force myself to think along those lines, but it is not natural and I have to draw it out, and try to relate it to the actual 3D world that I know.
I am definitely not a mathematician, but I can call myself an engineer I suppose. I often wonder if things would have been different, if my parents forced many logical puzzles on me before I was four year old. I have seen math professors do that to their kids ... I guess it is both nature and nurture.