4 ms·
Yeah, we use phone screens as a smoke test. It is disheartening seeing how many "Senior" Software Engineers with over a decade of experience fail to implement
by therein 10y ago
Yeah, we use phone screens as a smoke test.
It is disheartening seeing how many "Senior" Software Engineers with over a decade of experience fail to implement `bool isNumber(const char*)` that works for positive/negative integers and decimals.
And these people somehow get past the filtering that our recruiters (large social network headquartered in the Bay Area) are supposed to perform.
Honestly exactly for this reason, I've been feeling a lot less passionate about conducting interviews than I did when I started my current job.
- NumberSix 10y agoMost senior software engineers with over a decade of experience never implement bool isNumber(const char *) for positive/negative integers and decimals. It is rare to need this and, if you do, either use a library or find it on Stack Overflow, in a book, or some other source. Implementing it is unnecessarily reinventing the wheel. One thing senior software engineers learn or should learn is not to reinvent the wheel. This is one of the problems with these types of questions, including the CS 101 type questions that often make up purported coding tests during hiring. In most cases, they do not test what practicing software engineers actually do.
- hcho 10y agoThe point of the question is to see if a candidate can glue a loop,an if statement and a bit of arithmetic together, on the spot. Failing to come up with an answer to such a question is generally symptomatic of lack of problem solving skills.
- raverbashing 10y agoI disagree. If you can't code IsNumber at least for plain integers you shouldn't be touching code. Then work up to negative/decimal Yes, for a lot of problems you should go for stack overflow or a book. But this is a simple problem. SO won't have the solutions to all of your problems
- NumberSix 10y agoAs another commenter noted, for negative/decimal it is not so simple. That is why a highly experienced software engineer would look for an existing, fully debugged implementation rather than spend substantial time making sure all the corner cases are handled. In the context of an interview, it is highly likely a highly experienced software engineer will miss some of the corner cases. The exception would mostly be someone who has specifically studied and drilled on implementing isNumber(char * string) or specifically works in implementing these kind of functions which is rare. As I said there are libraries with these today.
- NotSammyHagar 10y agoYou are missing the point. The goal is to show you can do simple coding and design. The particular example is not necessarily something you'd do explicitly. It's like writing fizzbuzz.
- MrQuincle 10y agoTougher than it looks at first sight: * there is no length argument * localization, should it contain dots or commas? * the minus sign or a plus sign should be only at start * there should be only a single decimal separator * just a dot is not a number * just a minus or plus sign is not a number * empty string is not a number * there should be only a single minus or plus sign * there should be a minus OR a plus sign * let's assume something like .0 or 0. is allowed * let's assume 4E04 is not allowed (although it is a positive integer)
- therein 10y agoYup, those are exactly what we look for as well. And yes, you're correct at all of those assumptions. :)
- closeparen 10y agoDoes the candidate get to develop this code iteratively and test it, or is it a timed/whiteboard scenario?
- therein 10y agoThey develop the code iteratively and test it while thinking out loud.
- MrQuincle 10y agoThis is a nice example of how much work goes into a good implementation: http://www.exploringbinary.com/how-strtod-works-and-sometimes-doesnt/ http://www.exploringbinary.com/how-strtod-works-and-sometime...