Learning to program a Cell Phone
Should he start learning Java on his cell phone or would he better off learning how to program Java on his PC?


These aren't your only options.

IMVHO, Java, especially Android, has a pretty steep learning curve. I would recommend starting with something like Processing to learn the fundamentals, and then I would use those fundamentals to transition to core (desktop) Java. When you have a good grasp on that, then I'd move to more advanced topics like mobile development.

Since you've tagged your post with curriculum-design, here's how I would design a curriculum. I would split it up into at least 3 different courses:


Course 1: Intro to Programming. Use Processing to introduce the fundamentals: functions, variables, loops, control flow.
Course 2: Advanced Programming. Use Java to introduce OOP, inheritance, data structures, algorithms. (In the US I believe this is the standard AP CS class?)
Course 3: Mobile Development. (After course 2 you can branch out into many topics, not just mobile development.)


That's my two cents, but I know other people approach it from other directions. For example I know many folks teach web development first. And Google has at least one curriculum that uses Android to teach the fundamentals.

The question of how to learn the fundamentals of CS has been asked here a few times before, so I'd recommend starting with a search. Here are a few posts to get you started:


How to teach a person to enjoy programming?
Programming language for teenagers
Order to Teach Topics in an Intro Programming Class
Explain to someone that programming isn't just all “if”s and “else”s
Programming languages specifically designed for beginners
Using Processing as an entry point in an Introductory Course


There are many potential paths through computer science education, and I think the best thing you can do is try a few out and see which one works best for you.

Also, like Buffy said, you probably don't want to program on a cell phone. Even if you're programming a mobile app, you're almost always programming on a computer, and then exporting the app to a phone.

Shameless self-promotion: I've written a series of tutorials that take you from Processing all the way through core Java and onto web development and Android, available at HappyCoding.io.