Learning Languages
I needed a new side-project, something to keep me occupied when I just couldn’t work on Project X any longer for the day. So on the spur of the moment, I decided to learn Python.
(Why Python? I’ve heard good things about it. I can use it as a scripting language, which is something that my C/C++ focus has been lacking, and it’s a much better fit for me than the Bash shell language. And it’s named after the Monty Python comedy group, so there’s lots of room for subtle in-jokes… spam and eggs, anyone?
)
While I’m definitely still a newbie at Python, I immediately noticed that my C and C++ background gave me a distinct leg up in understanding the design of Python. I could see the reasons why certain design choices had been made, and the mechanisms behind many of Python’s features. If I had learned Python first, then tried to move to C or C++, I’m pretty sure the transition would have been a lot harder.
All of this has an analog in natural languages too. English, from what I hear, is a much harder language to master than French or Spanish — a native English-speaker can learn either of those much more easily than a non-native English speaker can learn English (primarily due to its extremely mixed heritage). But despite its learning curve, English is often the preferred technical language; I’ve heard it said that two non-English programmers will often switch to English for a technical conversation, even if they have a different shared native language.
My point? I’m not sure I have one, except to say that if you have the time to do so, it might behoove you to tackle the hardest thing in your field first, rather than the easiest one. It’s a longer and more difficult path, but the skill level per hour spent is much higher too.