Teaching Kids Java Programming
infoq.com
infoq.com
I think there is a fundamental problem with learning your language if your choice in IDE is a real factor in your learning.
> But no worries, kids won’t need to learn to write FXML manually - they just drag and drop UI controls on a canvas and Scene Builder generates the FXML.
Are you really teaching them programming at this point?
The provided example jumps wildly from really basic things (and inaccurate imagery: http://www.infoq.com/resource/articles/Teaching-Kids-Java/en...). Inheritance is glossed over even though it's probably one of the most important concepts in Java next to interfaces. I spot one paragraph trying to define six vocabulary words and in the very next paragraph you're talking about memory models.
You finish up the first excerpt with a really poor analogy about manufacturing computer games.
The second excerpt is almost entirely about things that aren't really programming.
I popped open the edits and in chapter 10 you actually tell kids to go to StackOverflow if they have problems. This is definitely a book about Java, but I see very little programming.
class MyMain {
public static void main(String[] args) {
System.out.println( "Hello World" )
}
}
How many unnecessary concepts are there between the beginner and something interesting happening? I count at least six...I think any IDE more complicated than Dr. Java is too much of a learning curve for a high schooler, who's already struggling with their first language. This guy, expecting kids to learn all these libraries and use IntelliJ right off the bat... has he ever actually taught kids?
From this perspective nothing beats BASIC. Python may come distant second. Some people have advocated Scheme but I'm not too sure because there is a quite a bit of friction involved as tasks become more complex. I'm also not in favor of drag-and-drop so called "visual" programming languages. It is extremely important to learn composibility and currently nothing seems to be better medium than text to express it. Gifted kids sure will have no problem learning programming from whatever language you give them but our goal should be eliminate as much technological friction as possible to make programming accessible to any kid who wants to learn it.
A close second could be swift for the same reason ( and also because you can start smoothly with just drag n dropping on a storyboard, then slowly add dynamic behavior with code).
From what I've seen by teaching my kids to program, Logo has Basic beat. And it is not just for kids, I've been consistently impressed by the number of great books I've been reading which have incidentally used Logo.
Turtle Geometry: The Computer as a Medium for Exploring Mathematics
Exploring Language with Logo
Mindstorms