Mobile is a
medium or
platform (you don't learn it, you target it)
Programming is a
skill or
discipline (this is what you learn)
So basically
9to5cynic nailed it. A lot of answers here were good too. As you can tell the whole "do I get a degree thing is subjective. Some people will tell you it's required, and others wont.
The truth is hiring managers are just about as evenly split as those in this thread. For some, experience is 100% of the criteria, for others, formal training is important.
All of them think experience is important though. So when/if you go to school be sure to work on some fun side projects you are passionate about. Not only will this help you learn, it will give you something to show and talk about in interviews. And it can be loads of fun.
Finally it's important to point out the development focused disciplines are more thn just "programmer"
The most common are usually:
-
Software Architect (plans out systems, doesnt write much code)
-
Engineer (similar to above, sometimes writes the code to implement the system)
-
Programmer (writes code, sometimes from plans from a Engineer or Software Architect, other times without plans "engineering" the system on their own. (This is the most common title, popular with Agile/Extreme Programing management styles)
-
Code Monkey (this is the 20-somethings that companies like to hire for cheap who's mistakes the rest of us have to fix
)