On teaching programming

| education

why do I have to write all this syntactic sugar to just do the canonical “Hello, world”?

I firmly believe that the canonical “Hello, world” program is one of
the worst ways to introduce Java, or even programming in general.

I like BlueJ. It’s a nice, clean, object-oriented environment that
immediately visualizes the difference between objects and classes and
allows students to interact with objects before they even see Java
code. I like the way BlueJ lets you interact with complex systems,
learning about control structures and logic along the way.

A popular Python tutorial starts with using Python as a calculator
instead of just getting it to print strings. Isn’t that a great way
for people to see how immediately useful a programming language can
be?

I wouldn’t start an Emacs Lisp tutorial with (print “Hello, world!”).
I would start it by taking a look at an existing function and
modifying it.

Languages should not all be taught the same way. Just because we might
have learned with “Hello, world” doesn’t mean that “Hello, world” is
the best way to learn how to program. I think there are better ways to
teach computer science, and I want to spend a fairly significant chunk
of my life looking for them.

You can, too. Just remember that you can improve on the way things
have always been done.

E-Mail to True Computer Science Mailing List

You can comment with Disqus or you can e-mail me at sacha@sachachua.com.