One Project, 11 Languages !
June 3, 2010
Then the Mars Rover Technical Challenge was recoded using FreeBASIC 0.20 using the FBide by porting
the VB.Net version to FreeBASIC. A complete set of Unit Tests were coded as in-line BASIC code.
(See “MarsRoverSample (FreeBASIC 0.20).zip“).
And “yes” this means I can code all 11 languages !
I wonder if I can code any others ?
I wonder if any other languages might be like the ones I have already coded ?
- Pascal ?
- Objective-C ?
- Java ?
- others ?
- Many more .Net Languages !
All things being equal every single computer language does just one thing… they all allow some kind of algorithmic expression to be coded.
Once any single language has been mastered they can all be coded ! It’s just the small matter of having to translate certain idiosyncratic expressions from one language to another.
Most people just give-up whenever they are faced with having to learn something new. Programming is programming is programming regardless of the language. Learn how to program one language and you have learned them all.
All programming languages share certain concepts in common…
- They all have methods for expressing loops.
- They all have if…then…else expressions.
- They all have the ability to declare variables and functions.
- They all have the ability to store and process data.
- And the list goes on…
Some people like to glorify the ability to write code in their favorite language and they tout this knowledge as though it was something special.
The ability to write software is just like any other ability any human might choose to cultivate. Practice makes perfect.
Most of the methods people want to use to ensure they are talking to someone who knows how to code any certain language revolves around the notion that everybody who codes any language will take the time to memorize certain aspects of that language, as-if there would be no desire to every leverage the power of the Internet while doing one’s work. This is simply nonsense.
Disconnect any professional from their ability to glean information from whatever sources they may choose to use and you cause that person to be useless !
Take a doctor’s journals away and that Doctor is useless.
Take a lawyer’s legal libraries away and that Lawyer is useless.
Take the Internet away from any professional programmer and that programmer becomes useless.
So why do we even think about devising interview procedures in such a manner so as to remove one’s ability to use the professional resources we all know we have to use while we are answering questions ? Because doing so somehow means something ? If not having access to one’s professional sources meant something we would surely not allow computers in a Court Room nor would be allow our Doctors to have computers in their offices and we surely would not want to have an Internet for any purpose other than “entertainment”.
Being a successful professional is all about knowing how to use the information one has access to. It is not about knowing how to memorize arcane facts and figures.
I have talked with certain Doctors who did not know some arcane fact I had gotten from the Internet as-if that fact meant something and would surely mean something to every single Doctor. As we all know, every Doctor has to go through a whole lot more study and validation to get their Medical License and maintain it and yet to watch some Doctor not know the smallest detail about how human cells generate energy from sodium and potassium means absolutely nothing.
I want my Doctor to have access to the latest information at all times and surely whenever I am talking with them about my health. I would not want any Doctor giving me advice who was so full of themselves so as to think they knew it all devoid of checking with the latest research on a regular basis. I would want someone in whom I had invested my trust to double-check their facts before giving me some advice and I would not think less of a Doctor who indicated to me their was some need or desire to check their facts before speaking to me.
So why do we create useless and meaningless interview processes that require memorization and recitation ?
Because there is no way to know what any professional will do until they are asked to perform under real conditions and it is not possible to create “real conditions” as part of an experiment or test. The moment anyone chooses to “observe” any process that process is altered by the observer. Give a programming test to any programmer and the only thing you might determine is how well that programmer might do under that specific condition or test. You still will never know if that programmer can handle a real-world project and trust me when I say I have watched programmers who were supposed to be skilled waste their time on problems I felt were just too ridiculous to spend any time on, all the while ignoring advice that would have resolved the issues.
So why don’t we just get real and realize there is more value in having resourceful professionals around than those who seem to be able to recall certain arcane facts off the tops of their heads. Sooner or later everybody runs out of stuff they can fit on the tips of their tongues and when that happens they will need to know how to be resourceful rather than being able to recite things from memory.