Whenever I tell people that I'm a programmer, they tend to automatically assume that I do it for a career and that I'm some kind of supreme computer overlord.
I like to program for fun, and I know my way around a computer, but I couldn't tear the software apart and piece it back together with my eyes closed either, though.
I know that my career will be based around computers, IT most likely, but I know it won't be as a full time programmer/developer.
Freelancing, on the other hand, is a good way to get a little bit of money, but shouldn't be your main way of getting money, unless you intend to get a team together eventually and start a small business.
Programming can be fun, especially when you make small programs (like I have) that are for the hell of it, or to help you in every day situations (things like mini note pads, event calendars, contact database, ect.).
So, if your going to program for fun, there is nothing wrong with that, keep at it, and if you feel like making it a career, go for it!