"What's the one thing you would not compromise on as you write code?" Its not hard to figure out the right answer to that one: "I never compromise. Must be perfect." But of course that's not true. There are always pathological conditions that can reasonably ignored especially in the first release.
That's funny, I came to the almost opposite conclusion that the obvious answer was that everything is tradeoffs and compromises.
I suppose very easy things like consistent indentation width might be done perfectly in a codebase, but any non-trivial thing always could be "more X" or "less Y".
No this is not true. Definitely not smart either. Not everything in the universe is a nice yin yang tradeoff, this is a philosophical and scientific mistake. There exists in this world solutions to problems that are the most optimal.
When humans think in terms of design tradeoffs they are thinking in a domain where there exists no theoretical or mathematical technique to find the optimum. This does not mean a technique can never exist, it just indicates a lack of knowledge. The keyword is design. How do you design the best looking website vs. how do you design the shortest distance between two points? I would say for the later, we have enough knowledge and theory to say that the shortest distance between two points does not need to designed... it can be calculated.
Design implies alternative designs and tradeoffs due to the lack of techniques to determine or find an optimum. Calculation implies greater knowledge.
Most real world problems have constraints that render global optimums moot. Usually opportunity cost, but also risk, experiential components, satisficing ...
In fact, any interview problem with a global optimum is worthless for evaluating candidate's ability to handle ambiguity or demonstrate capacity for creativity, second order thinking, communication ...
Expecting candidates to lead with absolutism like in your post os a good recipe for finding Brilliant Jerks.
Dude, the entire field of Machine learning is an attempt to find a global optimum. It is an attempt to turn what is otherwise a design problem into a calculation.
To say that global optimums are moot or don't exist is categorically wrong. Global optimums and trade offs exist in equal measure everywhere. I value good judgment in both.
Catering to one extreme is unwise on every level.
>Expecting candidates to lead with absolutism like in your post os a good recipe for finding Brilliant Jerks.
First off I never said or implied this. My post is just saying that not Everything is a design tradeoff. Second off are you implying I'm a Jerk? Did you just call me a Jerk?
I mean based on that answer I'd say you're obsessive and likely hard to work with in an environment that requires compromise (ie: a startup like in this context). So I'd consider that a rather bad answer personally.
edit: Given it's a non-technical interviewer I'd say something like "I never compromise on making sure the business objective is met. I value code quality and documentation but sometimes trade offs need to be made especially in a company this size."
> "What's the one thing you would not compromise on as you write code?" Its not hard to figure out the right answer to that one: "I never compromise. Must be perfect.
That is actually the worst possible answer I can think of. Pretty much any answer would be better than that. It demonstrates that the person either:
That's easy. Just say I will never compromise on writing unreadable and messy code. I will also never compromise on documentation. That's just a disservice to my team members and disrespectful to anyone who will ever read or modify the code.
That bullshit will work for both technical and non-technical people. Of course do I do follow my own mantra all the time? Does anyone follow it at at all times? No.
You need some kind of coding question at the very least to measure coding ability and a non-technical person just can't do that.