

Teaching Kids Java Programming - TheKickOff
http://infoq.com/articles/Teaching-Kids-Java

======
debacle
> In my original book for kids I used the Eclipse IDE, but for the new book
> I’ve chosen IntelliJ IDEA Community Edition, which is also available for
> free.

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...](http://www.infoq.com/resource/articles/Teaching-Kids-
Java/en/resources/2.png)). 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.

~~~
IndianAstronaut
I don't know why they don't just use Netbeans. It is so easy to use and it
already comes bundled with the JDK if you want.

------
carsongross
If java had a program notion, that'd help a lot.

    
    
      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...

~~~
debacle
You can explain every piece of that scaffolding to a 12 year old in about half
an hour and then they never really have to think about it again.

~~~
emidln
How many of those 12 year olds tune you out in that half of an hour? I
guarantee that if it took me a half hour of professional instruction, I would
not have been programming at 12 years old (I was, in Python).

~~~
debacle
Well my sample size is 1, but if I extrapolate irresponsibly, all of them.

------
ejk314
I tutor high school kids, and I've been charged with the weighty
responsibility of teaching them Java in often-missed weekly 45 minute lessons.
I'm not sure if it's what I'd choose for a first language, for a number of
reasons. But the AP Computer Science test still uses Java (for now) and that's
what I've been told to teach to.

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?

~~~
Immortalin
I learned to program using Visual Basic 6. In general, MS's IDE's tend to be
much more intuitive for beginners as they have better and less leaky
abstractions.

------
sytelus
First programming language should be simple but not simpler. Java/C/C# has too
many complexities to be first programming language for 12 years old, IMO, and
carries a risk to actually turn away kids from programming. It's like teaching
them how gravity works with equations involving calculus. Why do you even need
a "class" keyword to create a simple program to sum first 100 numbers? You
want to remove everything from a language until just bare minimum Turing
complete syntax is left. Also curly braces needs to go to keep things simple.

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.

~~~
alva
I think Processing ([https://processing.org/](https://processing.org/)) is a
great choice for first time programmers.

~~~
bsaul
I would say javascript is by far the best, not because of the language itself,
but because it lets them work and modify something they're already using _a
lot_ : the web and a browser.

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).

------
Immortalin
Visual Basic is still the best. Winforms is much more intuitive than JavaFX.
Teach them vba first so they can actually use programming for automating their
lives before moving on to VB.Net. If possible, skip the OOP crap entirely and
teach them to use modules instead. They only need to know the bare basics of
OOP e.g. The concept of "self" etc. Teaching them the benefits of lambada
early on would be very useful. Now if only clojure/Go had a better IDE and GUI
designer...

~~~
vitalijzad
About GUI programming you are right. Visual Studio is an amazing tool to
create windows and widgets, but you can also use C#. About skipping OOP, I
don't think it's a good idea. However, this post reminds me the essay "Real
Programmers Don't Use Pascal"
[https://en.wikipedia.org/wiki/Real_Programmers_Don't_Use_Pas...](https://en.wikipedia.org/wiki/Real_Programmers_Don't_Use_Pascal)

------
markuz
oh god, why ?

------
productcontrol
We banned sending kids up chimnies, we banned sending them down into the
mines, but we missed the gross evil of rotting their brains with java. Just
two dollars a day can help rescue these kids from a life in eclipse or
netbeans and show them a world outside. Donate today - some poor souls are
already on their first proxyFactoryImplementation classes and need your help
right now!

