Before you start reading:
I didn't know if I should post this here or on Workplace, but since my question is more about the "programming language" part I thought it would fit better here. My apologies if it's not the case.
Also, I'm aware there is a similar question here, but the context is slightly different and I thought it would be better to post another question rather than digging out the old one.
About a few hours ago, I was asked to complete a "C++ intermediate" test for a job application. Turns out this test doesn't look like it's tailored for "intermediate" programmers to me.
Even though I clearly don't consider myself as a skilled C++ programmer, I don't think I am an absolute beginner either. I've been practicing C++ for a few years now, along with other programming languages and more conceptual things such as algorithms and design patterns. I if were to describe myself as a programmer, I'd say that:
- I'm not an expert in any language, but so far, I've known enough things to handle every projects that were given to me.
- If there was something I didn't know, then I learned it "on the fly" and was able to go on with the project I was working on.
- I have a working experience in C++.
Yet this intermediate test asked me about very specific questions like the impact of the overloading of the operator "new", or string manipulations with strtok
, memmove
and so on. I know these things can be useful, but even in a business context, I never had to do such things. I had to do other specific things, but too bad, it wasn't part of the questions asked.
(In my context, the application is for JavaScript development with a very strong algorithmic dimension, but since I never used JavaScript, they tested me on C++ instead since I'm going to work more on the algorithm part. So they are not actually testing me on a specific context which would justify the specific questions).
Obviously either my idea of what an intermediate C++ developer is supposed to know is wrong here, or this test isn't made to measure global intermediate skills. I mean, I thought I was an intermediate programmer, but that might be because I took in account my ability to find answers to my questions quickly. So I might be more a "beginner developer with the ability to look like an intermediate developer (given a few minutes)" rather than a true "intermediate developer".
So I'll consider the first hypothesis to be true, and say that this kind of test is quite good at measuring programming skills.
How can you effectively measure your programming skills in a language in order to comply with these tests? What are these tests actually trying to measure and what can I improve to get better at them (and potentially be hired for a job...)?
I know these things can be useful, but even in a business context, I never had to do such things.
-- Welcome to the wonderful and wacky world of interviewing for software development jobs.strtok
. It is "basic" only for programmers who A) have a need to tokenize strings, and B) are forbidden from using the C++ parts of the C++ standard library. C++ programmers can do much better thanstrtok
.new
. But the specifics ofmemmove
and out-dated C APIs likestrtok
? I would expect that from someone who's background included C. Yes, they're parts of C++, but there are many intermediate C++ programmers who have never had to look into these dark corners of the standard library.