Questions like that are testing your problem solving skills.
Questions like that are testing your quiz/riddle solving/knowing skills.
They have nothing to do with your programming skills.
People from HR who ask such questions should be fired immediately.
Back to the original question: you are never good "enough". You can always be better. I judge programmers by how hard problems they can solve. Could he create a program for reversing a list? Could he design an online-store? Or is it a database engine level programmer / algorithm maker?
I filled up my stocks earlier. *tosses one to wtf*
Ignore the troll in the room; his judgement doesn't mean much to me at least. You can indeed always be better, but for most there's a line at which people will call you "good enough". With enough time, you will be good enough to be a good programmer in the industry. That's all you need. Time and practice.
No worries, I appreciate all your responses. Its nice to hear some encouragement allong with some practical words of advice, i.e. a dose of reality.
I figure if its something I enjoy doing, and I do, I will be happy no matter how "successful" I eventually become in terms of income, but of course I will never stop improving my skills and learning new things. I may still put off mastering pointers yet for a while, but there's still plenty to learn in the mean time. Can you believe that I'm almost done with my sudoku solver/generator and I have not been forced to declare a single pointer? (Thats not counting any pointers that may be used in some libraries I'm using, but I don't think that counts. ) Don't get me wrong I understand how important they are to c++, and god knows I've tried b4, but right now I'm still so new to programming and especially to c++. You wouldn't try to learn a foreign language, such as spanish with sentences using preteriat perfekt in the subjunctive mood & passive voice, would you? No you start off mastering the simple tenses: present, simple past and future.
Anyways I've already noticed a big improvement in my programming, I am now able to recogize syntax errors much more easily and don't have to spend an hour trying to debug when I forget a semicolon or end bracket. I think that was a primary factor in why I had difficulty learning pointers before. Maybe next project I will implement pointers and then go from there.
Thanks for all your advice and words of encouragement.
Lastly, is there no solution for the water, gas, electricity problem?
Half of C++ coders can't [state how to reverse a list] correctly on interviews. If you can do it, you are already better than half of your colleagues.
And if you can use things like:
Then you are probably better than 99% C++ programmers out there.
In theory, anyone who knows how to use STL Algorithms will be able to do it in two lines. One to include the header, and the other that calls the function. By list, I took it you meant the STL's list. I would be a tiny bit surprised if 50% of C++ programmers attempting to enter the industry (which seems to be an arbitrary statistic; you cited nothing) knew nothing about it.
Also, I can use all of the features of C++ you listed above (except multithreading which isn't per-se a feature, but I can use it), but does that really make me better than 99% of all the C++ programmers in this world? By the way, that's another uncited statistic.
There is a difference between using black-boxes (libraries) and understanding how they work.
I meant reversing a single-linked list implemented using pointers. No STL allowed. Actually more than 50% of coders fail at this, sometimes not providing ANY solution, or forgetting about the edge cases like an empty list, etc. I work as a recruiter, so I have statistics of my own. I have never met a programmer that could do concurrent programming well, so 99% is a quess. Maybe it is 97%. Still a huge number.
So you're citing your own alleged experience which is not at all prone to bias due to circumstances outside of your control (such as tendencies to get assigned to the less-experienced job-seekers), correct?
P.S.- Reversing a single-linked list with an arbitrary pointer? Still easy.
Actually it depend on the employer core business. If the employer is doing something that is non-IT core related, IT is just their business enabler, then a C++ STL developer will suffice. He/she need not learn how to code low level but instead more on know how to use C++ STL efficiently and craft out business solution in double quick time.
If the employer core business is say selling C++ STL, then definitely they need low level C/C++ programmer to do the linked list, algorithm implementation etc etc.
C/C++ has been shun by a lot of non-IT core companies cuz they feel in order to come out with a solution, developers need to have time to do data structure and algorithm programming ? And that amount of time is not yet devoted to company business logic centric coding yet! The longer time developer takes, the employers 'lose' monies to their competitors as the solution is not ready for use.
So I would say within C++ there can be different groups of developers. Of cuz the most ideal case is the developers that can do BOTH low level data structures/algorithm and also uses C++ STL efficiently :)