You will need the ability to think logically and analyitcaly. You will need to be able to read code, understand code, and write code fluently. You will need to be adept at solving problems and figuring out efficient solutions. And after all that is said and done you will need to be able to present your ideas and your progress to potential clients and/or employers so that your ideas may be put into action.
Application programming is a very fast paced field and not easy to get into, it requires quite some time to learn just to get you started and many years of upgrading afterwards. The field is moving forward so fast, by the time you finish your courses in college for your upgrading the techniques will be obsolete, but you will have to make due with what you learned.