| May 16, 2012

Programming: What Makes a Good First Language?

  • Ancurio

    My first language when I started learning as a 12 year old was actually Ruby, and to this day it has a special place in my heart =)
    No seriously, looking back, especially considering that I taught myself everything with the help of a book,
    I surely appreciate the fact that Ruby is a high-level interpreted language, because it hides many things not essential for basic
    concepts of programming, and it truly does have a beautiful syntax.

    Java was also the language of choice in my high school classes, and as a somewhat more experienced programmer being able to carefully examine the effect it had on the first timers around me, I have to say that teaching OO programming from the beginning is not a good thing.
    Why? Because to really appreciate it and fully grasp its modern approach to modelling problems, you HAVE to have used some sort of procedural coding first. Ruby is really cool in that aspect because it allows you to completely ignore classes while coding your first programs.
    This is what I did too, and only after dealing with OO in school through Java did I really notice that Ruby offers similar capabilities.

    About your question: I have to disagree. From my experience as the guy in my computer class in high school who anyone would run to if their Java code didn’t compile, I think many people, even if you exactly tell them what’s wrong with their code, will have a hard time truly grasping it.
    No matter how often I explained to the same people what a null pointer exception meant and how to look for causes of it,
    they called me again and again for the same problems.
    I think anyone should go through the trouble of seriously debugging their own code at the beginning (even if it meant placing hundreds of print commands everywhere), because this is a valuable experience.

    • I definitely have to agree about debugging your own code being a great learning tool. Nothing helps me remember what to do next time like figuring it out on my own. It’s always been how I learn; I need things to be hands on in order to remember. When I just can’t seem to get it on my own it’s nice to have someone there to help, though. But then I usually have to do it on my own a few times so that it’s not just a quick fix that I forget about later on.