I’ve just come across an inspiring blog entry with the thought-provoking title You donâ€™t know that programming language. The authors argues that knowing a programming language is very different from knowing of a programming language.
Personally, I know ofÂ C, C++, Java, Python, Ruby, LISP, Scheme and Objective-C. But do I really know them perfectly? The answer is a big NO. For instance:
- I don’t know aboutÂ setjmp in C.
- Ditto about partial template specialization in C++.
- Ditto about the Classloader in Java.
- Ditto about accumulation loops in Python.
- Ditto about advanced metaprogramming techniques in Ruby.
- Ditto about macros in LISP.
- Ditto about continuations in Scheme.
- Ditto about posing in Objective-C.
But this is not a big problem according to the blogger. What is important instead is to have the right aptitudes to learn those things if ever the need arises. He mentions that one only has to master the essentials likeÂ algorithms, design patterns, etc. and the rest will follow (if needed.)
I believe he is right.