0

In the previous year I did a coding test problem when applying for a job; one of the problem requirements were of little sense to me, so I decided to replace it with a slightly different thing which I found a bit more reasonable. To clarify my intention, I added the following comment to the source code:

The original task formulation asked to exclude operator+ from the call resolution list using the SFINAE technique. To tell the truth, I don't understand the reason for that requirement. Excluding operator+ like that is only practical if we provide a fallback implementation which doesn't require operator+ on T and T2. I cannot imagine any reasonable fallback for the element-wise addition, so I decided to leave this operator as is. Instead, I implemented operator== in the requested way.

Let me come up with a more interesting SFINAE exercise. The problem is to implement sparse array's operator== in the following manner: if there is an operator== between T and T2, use it; otherwise, fallback to operator<. Thanks to C++17's constexpr iterators, the implementation is fairly straightforward and efficient.

I successfully went through the interview and now I'm working at the company for more than half a year. Suddenly, one of my colleagues tells me in a casual conversation that he clearly remembers that my test problem solution comments contained some bad tone. More specifically, he claims that the phrase “Let me come up with a more interesting SFINAE exercise.” (and the word “exercise” itself) is overly self-confident and didactic, like if it was “let me teach you how to it properly”. At the same time, I cannot see anything that wrong with the phrasing.

None of us is a native speaker. Could you please tell me how this exact phrase sounds to someone who is?

P. S.
Feel free to point me out to any other mistake I did in the above text.

2 Answers 2

2

To me, "Let me come up with..." implies something you are going to do in future (because it needs time to do). So I would have used "Let me present a more interesting..." Apart from that minor detail, there is nothing wrong with the sentence. But it does say that your idea is better than their idea - which could annoy them I suppose. You could tone it down a bit by saying "Let me suggest an alternative ..."

Apart from that, the general rule when taking exams, doing tests, etc is to answer the question that was asked. A lot of people get questions wrong because they misunderstand the question or write about something related to the topic, instead of answering what was actually asked.

That could be a problem in this case. They asked you to solve a problem without using operator+. It doesn't matter whether it makes sense or not. That is the task. I would fail you on that task if you decided to ignore that constraint and do something else.

1
  • Implementing the task literally would result to considerably more complex code without any, even slightest, difference in the program's behavior. The requirement could also be a trick to check if the candidate actually understands why and when the technique is used. Commented Apr 12, 2019 at 23:13
0

An "exercise" is often something created by a teacher and assigned to a student. Indeed your paragraph sounds like something from a textbook. (Standard phrase: "I will leave the further problem as an exercise for the student.") I am sure you didn't mean it in that sense, you meant it in the sense of "test problem". But perhaps your co-worker took it in that sense. You could have used "problem", and perhaps avoided "interesting", which could have been taken to imply that the task you were given was dull or pointless.

Let me present a different problem to demonstrate how I might employ SFINAE technique.

might have been a more tactful statement. But your phrasing was not offensive in my view (speaking as a native English speaker who has been a professional programmer for over 35 years). Perhaps your co-worker should not worry so much about nuance when neither of you are native speakers.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .