||Programmers start your fingers!
Posted on September 10th, 2007
|Today I began the process of getting all the compilers and interpreters I need to code in every language I know. Once installed, I began writing each of the 9 demonstration programs in all 9 languages I know.
The purpose of this exercise is to highlight spots where my knowledge of a language is incomplete. The 9 demonstration programs require a basic knowledge of the language being used. In particular they check the ability to use recursive functions, iteration, the three classic loops, CLI parameters, basic input/output, file input/output and classes. These are some of the most basic tasks that a program could use. As an additional rule, no source other than my head is allowed -- no language references, no tutorials, no guides: just the gray matter that matters most.
I was able to easily complete the 9 programs using Pascal and PHP, my strongest languages. I was not able to code several of the programs using Python -- I simply don't know how. I completed several of the programs using C++ and Java, though I didn't try all 9 in those languages yet. Likewise, I have yet to try these 9 programs in the other languages I use.
Getting the compilers was fairly easy as I know just where to go for them. However, Java proved to be annoying as is its want. I spent maybe 20 minutes on the Java website and failed to find a way to download the SDK. If you're expecting it to be under "Downloads", you're not thinking like that site's webmaster. I ended up googling the exact name of the SDK I wanted, and the first result was a page on the Java website that was never linked to anywhere I looked. I consider Java to be a nuisance; at this point I'm just testing my skills rather than intending on using it for anything.
As for why I'm doing this self-exam, there's a really simple reason. Graduates from IT schools simply cannot solve these problems in the languages they studied. Since I often claim to "know" these languages, I should put my code where my mouth is and actually have some skill in all of them, not just my favorites.
It's an old truth that everything sucks. Here's why Java, Python, Pascal and C suck.
In the process of getting the compilers I needed, I ran across a free ebook on Programming Theory. It's about writing compilers and parsers, and it is based on Borland's Turbo Pascal. Turbo Pascal is a variant of Pascal I'm familiar with and the Pascal compiler I use is compatible with it. Thus, this is going to be a fun read. It's 15 chapters long, but should be less likely to cause a migraine than Art of Assembly, another book I've drudged through.
And now that all of the above is probably beyond the ability of most mortals to understand, here's a look at Cthulhu for Dummies.