Hear, hear!

Kathy Sierra asks, “What’s so bad about making it easier to learn Java?” She puts forward some excellent points about CS snobbery and vice versa. Check it out. As for the chumps who rail against “dumbing-down”:

I was talking with author Dori Smith recently, and it turns out we both experienced a similar phenomenon: angry email and online posts about how we were making it too easy to learn Java. But is that really such a terrible thing?

… Well, shame on them. It’s so pathetic egotistical toss-pots like this exist. Thank God for the more enlightened like Kathy, Bert Bates, Simon Phipps, and many others.

Update: This topic, albeit tangentially, is also one of the subjects of discussion over at Ed’s site. Yes, the same post I linked-to before. Chortle.


  1. I've come from both worlds, so I think I'm in a good position to comment on this.
    First and foremost, I knew I wanted to be a C++ programmer since I was 10. No questions. Period. That was my life calling. Then I went to college for CS and got the chance. Several years full of tears, academic probation and heartache later, I left, discouraged (after being told I would never make it, I was at the bottom of the class, and I should change majors). Sure I graduated, but with a degree in communication studies, not computer science. Life takes many turns, and I fell into Notes, where the idea of OO just started to make *sense*. I love what I do, and I wouldn't have my life any other way BUT - not a day goes by that I know in the back of my head that I had to drop out of learning c++ and didn't make it as a c++ programmer. I still want to learn it completely and fluently, regardless of whether I keep at it or not. Just to know that I *can* learn it. What if I had stuck it out, and graduated with a degree in Computer Science? Trust me, I would be a danger to programming society. I got through quite a few classes in c++ before changing majors. In terms of solid understanding, that means *nothing*. A solid hour-long discussion with my husband (I swear he *dreams* in binary) gave me more understanding of c++ than I got in three years of college. Now THAT'S saying a lot. I vote for please, make it as easy as it has to be. If someone is going to program, regardless of what language it is, better they do it correctly and with thourough understanding of what they are doing. Who cares HOW they learned? It's the quality of learning that counts. Jess Stratton#
  2. The thing that really gets my goat about all of this is that there really isn't much to Java, per se. Granted, it isn't Logo, but the language itself really isn't all that complex. It's certainly not C/C++ (where the intricacies of passing values versus pointers versus pointers to pointers, allocating and deallocating memory, and so forth, is as big a deal as "doing stuff"). The biggest single holdback for most is the arcanity of it all -- which class in which package does more-or-less what I want? Note that that is exactly the kind of information being guarded by the International Society for the Continued Obfuscation of Java Methods. The average "beginner's" book starts with a very lucid description of classes, objects, methods, inheritance and polymorphism, then magically produces code with unexplained import statements and method calls that "any idiot should know". Well, most idiots (like me) don't know. People who assume that I wasn't born with a class library embedded in my skull are generally better (and nicer) people than those who do not.Stan Rogers#
  3. Java the language isn't hard, and I must admit that I find the API workable (despite being arcane. Formatting a date, gimme a break!), but what really gets me about Java is the emphasis on OO-correctness which often seems to override all notions of elegant and effective design. I think a lot of the snobbery comes from that, and to be honest, I think the emperor's togs are a little transparent.

    (I had a wee rant about this today as well after nearly drowning in my own data access classes: Pretorius#
  4. Java is not a difficult language to learn, it's easier to write in Java than it is to create LotusScript classes (just my opinion) where people fall down with Java is that it takes some time to get your head around OOP.

    With this in mind it's worth the extra time and effort for any would be Java guru to get to grips with UML.Paul R#
  5. I think as long as you understand programming as opposed to a particular programming language it is easy to pick up new languages. The hard part is, as Stan and Colin said, learning the 'class libraries' (or equivalent) to stop yourself re-inventing the wheel. Most languages work the same way, just with different syntax. Of course if you want to master a language you'll need to use it a fair bit to get all the tips and tricks. Marcin#
  6. Good points: I get the feeling that once you wrap yer noggin around a programming language of note, others can follow reasonably well. For me, it took a little while to get the hango of syntax in Java (coming from a procedural background), but that just takes a little perseverance. I think that the real hard work — and reward — come as concepts related to OOP start to dawn.Ben Poole#
  7. Katha Sierra and Bert Bates ROCK! My gosh, if the goal is to help someone LEARN, then why the heck not do that in as efficient a manner as possible, and for gosh sakes, what the heck is wrong with learning being FUN?!?!

    OK, pant, pant, pant….let me calm down here. ….ok, "calm blue ocean"…"calm blue ocean"…

    I think Stan raises several very good points. The main thing is that whatever helps someone learn what they need to know to be able to accomplish what they need to do…and to do it well….whatever that method is, is fine by me. The purpose of life is to increase happiness, so if the learning is fun, that's MUCH more valuable than some method that maybe does help folks learn but also makes them suffer.

    Seems to me that anyone who has a problem with the style of Head First Java has a bit of a confidence problem.

    As for Computer Science degreed developers vs others, it seems to me that folks like Jess who can handle all the techie stuff AND can converse with ordinary mortals are FAR more valuable in the business world than a one-dimensional type (not to say that a CS degree makes one one-dimensional….I just happen to have a lot of respect for a number of folks whose formal training is not in IT, and yet they are TOP notch developers!)

    Joe Litton#

Comments on this post are now closed.


I’m a software architect / developer / general IT wrangler specialising in web, mobile web and middleware using things like node.js, Java, C#, PHP, HTML5 and more.

Best described as a simpleton, but kindly. You can read more here.