(Original post by JN17)
I suppose let's stick with the idea of applications, say for your phone you wanted to make a simple game, where would you even begin?
By simple, lets say you want to make pong.
With C, I would expect you to know all the basics, dynamic memory, functions, structures, pointers and File I/O.
With Java (much more likely), you would probably need to know classes with constructors and file I/O. Maybe some of the more complicated things like Inheritance too if you wanted to make something that was more than just functional.
You would also need to learn parts of the API associated with the system, probably as a minimum graphics displays, input handling, and other things that may be necessary associated with the platform.
As for where I would begin, finish a book on it, and then write a bunch of command line programs that you design yourself first. Then, go and learn the platform's API, and do the same thing (which can include simple games like the one you mention).
Maths is invaluable, especially discrete maths like is taught in decision at A level and computing if you're not at uni.