Yes, companies are generally desperate for programmers right now, and companies definitely want you to succeed in your interviews.
Interviewers on the other hand can be a fickle bunch. I have met many (in fact, maybe even most) who seem to treat it as some kind of hazing or initiation and act as if the candidate is an opponent to be outsmarted.
It doesn't help that in literally none of the companies I've ever worked for do programmers receive any training on interviewing, so this kind of behavior goes uncorrected.
The company definitely wants you to succeed and get hired, but there's still a pretty profound disconnect between the company's priorities and what happens in the room between candidate and interviewer.
I don't know if that is really smart, or really dumb. But a lot of jobs I could have probably done really well, I was passed over, and I honestly have to say, inexperienced interviewers have smug attitudes. I got the sense that there was the background thought of "ugh, god, I have to deal with someone's brain that isn't mine".
It's annoying to have to deal with those kinds of attitudes, because it perpetuates them, by causing the people who have bad experience from them to behave defensively next time around.
I've had some okay experience with getting positive feedback leading to callbacks, but these were typically answers to questions that I could have found online verbatim by studying an interview manual. I try not to do that because I think that is dishonest in my actual value.
The best interviews I've had are where it's clear that it is two people talking, and not two computers.
I don't know what is causing it (too much exposure to efficient software?), but in many industries hiring managers would rather keep looking for an absolute perfect candidate while leaving behind several that have the skills but need the training.
I have heard the stories about managers spending 100 extra hours looking for a perfect candidate instead of hiring the best available and dedicating even 50 hours to train them to speed.
- hey, we're not going to give you that position because you didn't learn the [completely minor] framework by yourself since the last interview. - yeah, I have a job. Also, you didn't ask me to? - we do that on purpose to see if you're independent enough. - OK, I definitely think I am, what should I do? - I can't help you there, spend a week on this, come up with something and we'll see how we like it. - a week?! Also, don't you have a client request example or anything? - nope.
Eventually they decided that even if I were to do that, the disappointment on their side had been too huge… The funniest in this is that 'agile' is part of their corporate identity, the word's everywhere on their website, they even criticized the way I'm working with my current employer because he's not 'agile' enough (which is true, but I have no power over this). But then they want to hire somebody and not even have to give him a few pointers, because that's too vulgar for them? What the fuck is this?
Which drives me crazy. Nobody can be truly productive on day one. You have processes to learn, even if it is just an informal "way we do things". You have existing code to become familiar with. You have team dynamics to work into. It takes time.
Personally, I cringe whenever I read a job advert mentioning that the candidate will "push to production on day one". Neither company I have worked for would allow that, let alone expect it. Nor would any company I start in the future, should I ever manage to.
I'm a consultant/contractor (depending on the gig), though, so the social dynamic is different and it's less about integrating into a team and more about understanding the exact problem domain.
The best description I've heard is that it's a spectrum from "100% training provided" to "productive on day one." Older recruiters tell me that decades ago the spectrum was too far in the other direction -- willing to hire anyone, and piling on the training. But now it's too far the other way, dropping good candidates who aren't able to perform independently on day one.
There is nothing a hiring manager loves more than finding a hire-able candidate.
That doesn't mean that the interview is going to be a cakewalk, though. The hiring manager wants someone who's going to be a success in the job, and they're going to try to filter for that. The only thing worse than not hiring a good developer is hiring a bad one, and the process is trying to stop that latter from happening, too.