A question I keep getting asked is which is better: iOS, Android, or X. That's not the right question. That is like saying "I want to be a musician. Which instrument should I play?" You can learn music with any instrument, just like you can learn programming with any language or platform. What is more important is what you're interested in and what you want to do. You aren't going to be good at something you don't want to do. Tech is so hot, it doesn't matter what you do as long as it is current. You can do well (no matter how you define "well") no matter what you choose to do, especially if you are the BEST at what you do.
However, what you choose to do affects WHO you will work with. Software is built in layers called the "stack". The stack refers to the architecture of the entire system or it may refer to the layers within each component of the system. Each layer is an abstraction for the layer above it from the hardware all the way to the end user.
Typical web sites and mobile apps we use everyday are known as three tier systems. There is a web browser (Firefox, Chrome, IE, etc) or an app, a server that receives and sends data, and some kind of database (i.e. SQL) or other storage mechanism for that data. The components of these are known as front, middle, and back end. Career wise, you can either be a generalist and learn enough to be effective across the entire stack. Or you can be a specialist like me and be extremely good at one component of the stack (iOS). Both approaches are valid and you can be successful with either way. It depends on your personality, talents, and what you're looking for in life.
Generally, the closer you work with the hardware, or the further you are from the end user in the stack, the more technical the position will be. The more technical your position, the more you will work with other technical people and less with normal (i.e. non technical) people.
If you are a front end developer (i.e. Javascript, iOS, Android, or desktop clients), you will work a lot with designers, artists, and have some business contacts. This is the part of the stack that everyone sees. It is often tedious work to get everything pixel perfect. You need strong knowledge of your platform's architecture and components. You need to be creative in putting them together to achieve the effect the effect designers and artists are looking for. The focus is on presentation and creating a good user experience. It is also about gathering, saving, delivering data to the middle tier, and receiving data then presenting it to the user.
If something is ugly, sucks, or doesn't work, you'll be the first to know about it. You're on the front lines. Everyone understands what you do because they directly use what you built; an iPhone, iPad, Android, desktop app, or a web site. The code you write directly affects what they see and what their device does.
The middle tier is heavily focused on processes. You'll be be working heavily with the business side of the organization. Your job is executing what the business actually does. You will also interact with other programmers above and below your stack. You need to create services and API's for the stack above you (the front end), so they are able to implement the features needed, deliver and receive data. What you are doing is gathering data from the front end, processing it in some way, then delivering it to where ever it needs to go, either back to the front end or saved to the back end. The most common languages here are PHP, Pearl, Python, Ruby, Java, or C# and ASP.
Back end developers such as DBA's are focused on managing large amounts of data. They understand things like how to optimize their servers, load balancing, administration, security, scaling resources up and down as needed. They may work on cloud services like Amazon AWS, or many of Google's services. Most often they are working for other technical people and making sure they get what they need at all times. They are working with raw data coming in from the stacks above them, making sure it gets saved and delivered to where it needs to go. You are focused on problems only technical people would understand. They can't fail because the entire stack above them collapses with them. For example, if Amazon AWS goes down, thousands of sites or services that we use everyday, would go down.
It's all programming and software development. That means there's fundamental things that you need to understand no matter what you choose to do. Most people that ask me this question don't even understand these fundamentals! That includes other programmers! If you are interested in a career in tech, just jump right in wherever you want to. You can always switch if something else catches your fancy. Once you learn the fundamentals, it would only take you a few months to switch to something else.
The point of all this is to STOP DEBATING and WASTING TIME over which is better, X vs. Y. It's not important. Just jump right in and do it! You can always switch to something else and learn that if you change your mind.