Reflecting back on my intro to Java…

In working with the January cohorts, I’m finding myself waxing nostalgic.  Today, I saw how some of my apprentices were working on a problem involving a vending machine, and just seeing vending machines implemented in Java made me feel all warm and fuzzy inside.

Those of you who’ve been around me a long time know that I’ve hated Java for how slow it ran back in the day.  But one of my most fun times programming involved learning Java.

I knew Jason and Emilie from ACM.  I knew of both of them through talking with friends, and I knew they both were super smart.  So I was terrified of slowing the team down at OOPSLA, being the inexperienced one on the team.  However, I did have two semesters of C++ under my belt, which made it that much easier for me to pick up Java, syntactically.

Jason and Emilie were both very patient and also great at explaining things.  While I felt unnerved writing in a language totally new to me, I eventually got the Swing of it. (What?!? I couldn’t resist!)

There were 2 things that stand out about that experience that still hold true today…

  • Programming languages are tools in my problem-solving tool belt.  I like having a bunch of them in my tool belt, ready to wield for the appropriate problem.
  • Crash-learning a language can be a lot of fun! “Crash-learn” is my term for learning a language as you’re solving a problem that is demanding that language.  With OOPSLA 99, that was my second time crashing on a language like that in 1999; for my Y2K Programmer position that summer, I had to crash-learn FoxPro.  I have since crash-learned C# as well.

I used to hate Java for running slowly.  Nowadays, though, it isn’t so bad.  I’m glad that I had a positive introduction to it to reflect back on.  I’m also glad that I get to work with the Java cohort at the Software Craftsmanship Guild, as it’s what has convinced me that Java has matured a bit since I had last seen it.

Leave a Reply

Your email address will not be published. Required fields are marked *