This should be the sort of thing anyone looking for a programming job should be able to do as the programming equivalent of muscle memory.
This should be the sort of thing anyone looking for a programming job should be able to do as the programming equivalent of muscle memory.
I guess I just don't like questions where you are required to remember facts you no longer use rather than reason your way through problems you might encounter in a real job.
If you aren't able to do such basic things correctly on the spot, I simply can't trust you to check in complex/highly concurrent/etc code that works. As an IC developer I don't want to deal with your code or clean up your mistakes. As a manager, I can't trust you to write code unsupervised.
This quote in particular would be a massive red flag and probably the end of an interview: "it is more appropriate that I understand how it should be used, it's pro's and con's and all it's supporting functions". In most companies, what's being sought is not someone who can just use the tools as appropriate. It's someone who can develop new tools and solve problems for which there isn't a pre-canned answer available. If you don't know how to solve the problems for which trivial answers exist, how can anyone expect you to be able to reason through truly novel and difficult problems.
The sort of attitude you're espousing is perfectly fine for large ERP/custom corporate app/corporate website/etc programming work. It's just not what people in the valley are doing.
I get you though; you want someone who can solve many new problems but it highly unreasonable to put a programmer in an unrealistic situation like an interview and expect them to perform just as well as they would on the job. Unfortunately I have no answer on how to improve the interview process but it still bothers me that a better way hasn't been found.
Reversing a linked list is not about how linked lists work. It is a very simple question which verifies that a person knows what the pointers are and how to use them, can write simple loops which manipulate pointers and can handle simple things such as 1 element lists, 0 element lists etc.