Nothing new here. These are just someone's notes on hiring (the post does not at all deliver on the title). It's all been said before, and in better ways.
Also I'm tired of the "learn C" mantra. You don't need to know this language to understand pointers and their difference from references. Or the different approaches to memory management.
Learning C is a pretty simple way to learn about pointers, low-level memory management, and so on. It's not the only way, but it's one of the better ways. You also learn a fairly popular programming language as part of the package; not a bad deal!
I've yet to interview anyone that didn't know C or C++ but correctly understood pointers and references. Of course that's not necessarily bad since it's not a useful distinction in some higher level languages.
I sorta know both, but I'm generally more comfortable speaking in terms of Lisp than C and if an interviewer forces me to speak in terms of C I'm likely to be less cogent.
Working with pointers in C or C++ is a decidedly lower level construct that Lisp. Not to make any sort of value judgement between the two languages - but with a c pointer, you are accessing a very specific point in memory. If you're pointing to the first element of an array, add one to that pointer, you're now accessing the second element of that array.
This close to the metal mindset is what makes C/C++ valuable for learning how code compiles to assembly, and understanding _how_ your program is executed.
That's an implementation detail that doesn't bear much on actually using the language. The cons cell abstraction leaks sometimes, sure, but I wouldn't say that the concept of "pointer" is fundamental to Lisp at all.
Also I'm tired of the "learn C" mantra. You don't need to know this language to understand pointers and their difference from references. Or the different approaches to memory management.