Regarding the C++ self-assessment, it depends to whom your talking to. If it is a 10+ years of exp. hard core C++ programmer, then your point is right. But if it is some recruiter clerk - who just writes down your answers to compare with other candidates' answers later, then it is 10/10 :)
Another answer could be: "for your company, it is 10/10" depends on the company, of course.
But all in all, I find this score based questions quite stupid. Instead, you should ask for past projects using that particular language.
*
Now regarding your algorithmic part. Tell you honestly, the fact that the candidate implements the Dijkstra's algorithm quickly, because she implemented it twice, 2 weeks before the interview tells me just that - that she implemented it 2 weeks ago, twice....
I'd more value a candidate who have never implemented it, or implemented it 10+ years ago but doesn't remember details - when given the details/specs and a sufficient amount of time, and can implement it.
Overall, I prefer when the candidate can come up with the higher level solutions - knowing when to use e.g. Red-black (or any other balanced) tree, shortest path algorithms, suitable containers - data structures, etc... for some particular problems. The actual (hence 2 weeks ago) knowledge of every specific details of how to implement these is not that important.
Regarding the C++ self-assessment, it depends to whom your talking to. If it is a 10+ years of exp. hard core C++ programmer, then your point is right. But if it is some recruiter clerk - who just writes down your answers to compare with other candidates' answers later, then it is 10/10 :)
Another answer could be: "for your company, it is 10/10" depends on the company, of course.
But all in all, I find this score based questions quite stupid. Instead, you should ask for past projects using that particular language.
*
Now regarding your algorithmic part. Tell you honestly, the fact that the candidate implements the Dijkstra's algorithm quickly, because she implemented it twice, 2 weeks before the interview tells me just that - that she implemented it 2 weeks ago, twice....
I'd more value a candidate who have never implemented it, or implemented it 10+ years ago but doesn't remember details - when given the details/specs and a sufficient amount of time, and can implement it.
Overall, I prefer when the candidate can come up with the higher level solutions - knowing when to use e.g. Red-black (or any other balanced) tree, shortest path algorithms, suitable containers - data structures, etc... for some particular problems. The actual (hence 2 weeks ago) knowledge of every specific details of how to implement these is not that important.