Hello World x 20?
Back in late March, I took the ‘Hello World’: Programming languages quiz posted by a professor in the CS department. Other students had a wide range of scores, with a few perfect 20/20s sprinkled in. I got a 19/20, missing my first programming language: Logo. Oh the irony! The first time through the test, I assumed my score was due to a mix an enormous amount of time on Wikipedia, and a little bit of luck.
Yesterday afternoon, I retook the quiz and scored a 17/20. I missed Haskell, and I mixed up Fortran and Cobol. For Fortran and Cobol, I knew it was one or the other – they looked ‘classic’ to me – but I identified them backwards. I was writing the basic Haskell intro programs minutes before I took the quiz, but still didn’t recognize it on the test. Weird.
That made me ask, do I really understand the languages I can identify? Have I used them extensively, casually, or not at all? I needed to look more carefully at this.
I guessed that I had only used about 10 of these languages, and had used 5 of them in a non-trivial project, but I wasn’t sure. I went through the list of languages tested, and made a checklist. The results were a bit surprising to me.
Have I written ANYTHING in this language?
Guess: 10 / 20 Actual: 13 / 20
Going over the list, I discovered that I had written a trivial program in
C, Java, JavaScript, Visual Basic, C#, C++, Objective-C,
Perl, Python, Ruby, Haskell, PHP, and Logo.
I figured I had written a little in roughly half the languages. As it turns out, I had used nearly two-thirds at one point or another. Logo is on the list: the specific dialect I used was LEGO/Logo when I was in elementary school.
Have I written a NON-TRIVIAL program in this language?
Guess: 5 / 20 Actual: 10/20
Going over the list again, I found that I had done a non-trivial projects in
C, Java, JavaScript, Visual Basic, C#, C++, Objective-C, Perl, Python, and Logo.
This list was a little more exclusive. I had guessed that I used very few languages for real projects, but I was surprised at how many I really had used. I had used half of the languages on the test to solve problems that would be met with the scrutiny of a teacher, a boss, or actual work.
Logo was a tough choice to include. I counted it because it was the language I used in the Firefighting Robot contest. I spent a fairly large amount of time programming with it, though I’m sure it was trivial code by my standards today.
Where did I learn this language?
In class: 4/20: C, Java, JavaScript, and Visual Basic
On my own: 9/20: C#, C++, Objective-C, Perl, Python, Ruby, Haskell, PHP, and Logo
Not learned at all: 7/20: Ada, Cobol, Fortran, Forth, Lisp, Pascal, and Scala.
In all fairness, I only “learned” Haskell today, and only wrote trivial programs in it.
However, I correctly identified 5 of the 8 languages I had never used on both attempts: Ada, Forth, Lisp, Pascal, and Scala.
What about languages not on the test?
I have played with a few languages not on the test. These include:
QBASIC, DarkBasic, Bash scripting, HTML, Processing, AppleScript, Assembly, Powershell, Batch scripting, VBScript, and probably several more I can’t remember. The two BASIC candidates and HTML were from my very early years of programming (grades 5-12?), Assembly was for a Computer Science class in college. PowerShell, VBScript, AppleScript, Bash, and Batch scripting were for various jobs at various times. Processing was for the fun of it.
It feels very strange to quantify my programming experience in this way, but hopefully it offers some insight into why I know what I know, and whether or not it’s worthwhile to know it.
–T N T C