O god, I hope a lot of people aren't trying to learn how to program just so they can make a quick buck, if so programming is the wrong place. You have to have a love for it or you'll give up pretty quick.
With that said, After you get the basic syntax down. You should focus on how to attack problems( which is all programming really is), How to properly design programs, learn about algorithms.etc The worse mistake you can make is getting bogged down in the syntax.
One thing I highly recommend and it helps you to think @ a very high/abstract level is - UML. Trust me it helps.
If you want to do mobile programming, it comes down to Java & Objective-C.