4 ms·
Imagine you're interviewing someone for an intro-level full stack position, where they'd be writing JavaScript and Python. You ask them a whiteboard coding que
by jake-low 11y ago
Imagine you're interviewing someone for an intro-level full stack position, where they'd be writing JavaScript and Python.
You ask them a whiteboard coding question -- something about manipulating strings or implementing simple searching. Let's ignore the debate of whether this is a productive technique for interviews for now. You ask for Python in this question since you've already covered JavaScript.
The candidate can't remember what the "str" type is called, or how to find substrings in a string, or the difference between "==" and "is" for objects. They ask you to remind them if "join" is a method on sequences or on strings. They write "length()" when they mean "len()".
We've discussed at length on HN the challenges of whiteboard coding. "Nobody's favorite IDE is their conference room whiteboard".
But I feel that, even through the flawed medium of the whiteboard, I'm seeing symptoms of the candidate not really "knowing" Python to the degree I would expect of someone who applied for a job writing it.
None of the people I work with who write Python would ever forget one of these basics. I think they recognize that the ultimate "efficiency" isn't a cheat sheet on your wall, but rather learning and internalizing these tools by repeatedly using them.
Forgive me for setting up what I recognize to be a straw-man argument. Not everyone who writes Python was hired for their ability to do it. Maybe the candidate is a stellar JavaScript developer, and their only Python weaknesses are with the syntax and standard library. Perhaps a cheat sheet is an effective way to bridge the gap between "learning" and "internalizing" a language's features.
Nonetheless, I'd like to hear people's thoughts on the hypothetical situation above (or another better one, if you feel the one I've chosen is biased or misses the point).
- deleted 11y ago[deleted]
- WoodenChair 11y agoI definitely get what you're saying, but it really depends on whether you're hiring someone to be a Python expert, or someone to be a great software developer. If you need a Python expert (someone who knows the ins and outs of the language right off the bat), you're absolutely right. If you need more generally just a great software developer though, as long as they can show they're a great programmer in a couple different languages and paradigms, whether or not they remember the specifics of how to do String operations in Python, is irrelevant. They can learn that pretty easily. It also depends on whether or not the job in question asked for tons of Python experience as a requirement, or if software development experience was required but only familiarity with Python specifically.
- dkopi 11y ago> The candidate can't remember what the "str" type is called, or how to find substrings in a string, or the difference between "==" and "is" for objects. They ask you to remind them if "join" is a method on sequences or on strings. They write "length()" when they mean "len()". If you're going to disqualify people for these kinds of errors, you're going to lose a lot of great and experienced candidates, and only hire the ones who have taken considerable amount of time to practice memorizing library functions and language quirks for whiteboard coding. At any given moment, I can probably go back and forth between 2 or 3 languages. I can probably "whiteboard code" in one language only. Anything other than that has a few days of ramp up until I'm back to where I used to be. This doesn't mean that I don't know a certain language. It means that in order to be a good programmer, my brain needs to temporarily forget a lot of things. Especially if I go back and forth between different languages. Memorization isn't proof of internalization. Especially when you're neglecting the fact that programs work with IDEs, and are used to typing code with keyboards (and not pencils and whiteboard markers). Someone mixing up length() and len() doesn't prove he isn't experienced or productive in python. It proves that he isn't experienced or productive in whiteboard coding.