After taking a very hard C++ aptitude test for a blue chip company, I received a rejection email the day after. I actually thought I was a very good C++ programmer, since I have had 8 years previous experience with other languages, and about 2 years academic experience in C++ with a university software engineering course. So, the test results brought me back down to earth a touch.
I'm working on some C++ open source projects, but I feel this could take a while before it gets me up to an advanced level of C++. Since I'm a applying for C++ jobs at the moment, I'm afraid that there will be many more rejection letters to come.
To the point, is it possible to self-learn advanced C++ knowledge quickly (i.e. in a few months), or will I have to accept the hard truth that this is going to take me years?
Is there a UK-based "code camp" or something like that? Perhaps there are some industry standard C++ qualifications I can take?
... I'm a very hands-on learner like most people, so I'm worried that the 'buy a book' route won't work for a quick turnaround... By the way, I'm not working right now, so I'm free to spend all day learning.
Update 1
Here's some of the questions they asked (that I vaguely remember). I would post some of the harder questions, but, well, if I could do that then I probably wouldn't be asking this question! :)
If you are creating a template, similar to Map, but wanted to define an order type, where would this functionality be placed?
Well, just remembering that off the top of my head, so I probably phrased it totally wrong. There were 4 multiple choice questions that I'm not even going to attempt to remember.
In the code sample provided, in what order are the constructors called?
Now, this is one of the easy ones. In the code sample featured, there was a number of class definitions and some virtual inheritance mixed in there. So I guess the test here was, "in what order are virtual class constructors called?" I mean, this is possible to find out by just typing some sample code, but with 3 minutes on the timer, this was apparently quite tricky.
In the code sample provided, what should the type x be?
Again, one of the "easy" ones, but not for me. So in this one, they had an operator overload for negation !, so it looked something like:
x operator!();
I can't remember what the multiple choice questions were, but I think one of them was bool
, but another was "you can't overload !". A bit of searching will reveal the answer, but again, with 3 minutes on the clock, this wasn't so easy since searching for "C++ operator overload list" didn't reveal any quick reference lists.
Update 2
I didn't say I wasn't willing to learn from books; I actually have a tone of books, and they've helped a lot - the problem is that it takes a long time to really learn the content.
If books are my only option, then so be it. But if anyone knows a faster way, please share it... Are C++ courses worth the money?