At least someone with unrelated experience has shown that they have some experience of holding down a job and the responsibility that goes with it, and can apply themselves doing something mindless if they have to (most intern or junior candidates I interview these days all want to solve cancer with machine learning on day 1 in their role - someone without a real-world reality-check who has only done a series of silver-spoon elite internships might get disgruntled when they are given the shit work as a junior)
Likewise some people cannot afford internships - they need to get paying work to pay bills and can't have the luxury of doing unpaid/expenses-only/etc work, or have other reasons like care responsibilities etc.
With respect, please check your biases and give people a chance.
</manager at a BigCo that also rejects huge numbers of applicants>
It sounds unbelievable but it happens, alot. It's one thing when all your experience so far has been flipping burgers or driving Uber, but it's another when they literally have never had a job their entire life.
As a junior, the best best way to pass an interview is understanding you're a cost and accepting experience is part of the pay. Any sign of you expecting to be "paid your due" or "resisting undue exploitation" is an immediate ulcer inducing stress for the hiring person "omg he knows nothing, will take months to start producing above his cost, and he's already talking like a diva". Leave after 6 months if you must, telling the boss you cant possibly survive
I'm going to ding this ... hard.
First and most importantly: some students I knew were trying to accelerate their path through college. They didn't want to rack up huge loans and wanted out ASAP to start making money. This group included both right out of high school as well as returning non-traditional students. They simply didn't have time for employment. And, with Covid, I suspect that this cohort is going to have a big boost.
Second: some students are helping take care of their family and going to college is enough of a time struggle. You are knocking this group out--and my experience suggests that a lot of them are female. Alexandria Ocasio-Cortez is a good example from this class.
Third: personally, my experience suggests that those working "food service" jobs, specifically, are sub par. This applies only to that group and not other "customer service" roles (like retail sales). "Food service" is a time consuming job with weak wages and unstable hours dealing with a psychologically draining public cohort. Anyone with a brain wired for programming wants out of that kind of job post haste and has some level of skill to do so.
However, even then, I try not to let prior experience color my perceptions of junior engineers and programmers.
Junior engineers need to be "teachable" more than anything else. Generally, what I look for is what they absorbed from one of their teachers that isn't in the book.
Good teachers are always giving off a bag of pearls of wisdom beyond the scope of the class. Students in my classes got exposed to automated testing, source control, and an IDE. Often I'd give out epigrams of wisdom "70% of the time use a hash table; 30% of the time use a vector; 0.01% of the time ask somebody what you should be using instead when those don't work."
Good programmers and engineers latch onto something out of that bag because they find it interesting. That's what you're looking for in an interview as it signifies they can be taught and actually want to do this. I find this is probably more important even than absolute GPA.
> I don’t even ask leetcode questions, and only a minority of folks can answer them (and I allow them to look up reference material online).
Sadly, this does seem to be true for the majority of junior folks. They just can't code. I don't really know how you get out of a degree program without that, but they somehow do.
I suspect this is the simple reason why so many companies just go after the "elite" schools--you can't escape from those programs without having at least a minimum level of competence at coding.
There are lots of people who have reasons for not having any "experience" coming out of school due to external time constraints.
Single mothers, for example, have it particularly hard. Any single mother who manages to drag herself through a CS degree has so much persistence that she can definitely do your job.
As I point out, many students with hard time and money constraints try to compress the time to get their degree. The best way to do that is to take heavy course loads with no summer breaks and not do employment.
It feels silly. However, it helps a lot. Sitting in on an interview is especially useful. You can pay attention to the reactions of the interviewee a lot better when you're not running the interview. You will recognize lots of cringeworthy moments--pay attention to them and try not to do them yourself. Asking other people in your company to answer your interview questions will pinpoint places that are vague or unclear and possibly even incorrect. It also helps calibrate--if already employed people can't pass your interview loop, your interview loop sucks.
However, interviewing is a human thing, so like any social question, there are no hard and fast answers.
Three particular pieces of advice I give:
1) Basic courtesy and professionalism
Good grief. Why are people so terrible about this?
Don't leave an interviewee alone. Be on time. Remember their name. Try to call them what they want to be called (my name has various shortenings that I don't care about--some people care very much, though). Offer them drinks and bathroom breaks. Read their resume more that 30 seconds before entering the room. Actually read their resume. Don't make them drive for lunch. Have their reimbursement check by the end of the interview. Thank them for their time.
This industry seems to have so few people willing to provide even basic courtesy and respect that it makes me cringe. This industry is small and the wheel turns a lot--that person you are interviewing may be your interviewer in 5 years and absolutely will remember you if you are kind and professional.
2) Listen. Really listen. Shut up and listen. Pay attention to the person in front of you and try to make them feel like they are the most important, most interesting person in the world.
The person IS important. You're trying to hire them and make them your colleague. Treat them like it.
When you do this, people will tell you a lot. They almost can't help it. You're not trying to trick anybody; you just want them to be who they are professionally.
3) Start from slightly above neutral and give minus and plus assessments.
Sure, if they can't pass your FizzBuzz equivalent, you don't want to hire them.
However, too many interviewers start from default "You're flunking" and it's very difficult to get out of that. This is a junior person--by definition, they're going to have a difficult time moving your needle in the positive direction.
Given this is a junior person, the interviewer needs to work to hunt for positives. Your questions need to have enough open-endedness that an interviewee can impress you to varying degrees. If you find something that you deem positive on their resume, ask them about it and give them the opportunity to score some points.
Finally, one thing to do is simply be honest about your job positions. Most positions are not rocket science--they are standard coding positions with some business specific quirks. If your junior candidate got a degree with a better than 3.0 GPA from any decent (read: something like ABET accredited) program, they have pretty much already demonstrated that they have the motivation and acumen to do your job.
So, if they "didn't pass your loop" you should have a really clear reason why you are not hiring them. If multiple junior people aren't passing your interview loop for junior people, the problem is more likely with the interview loop or your job expectations than the junior candidates.
I don't know if this applies to the top CS schools, but now that CS is quickly becoming the most popular major at the majority of US colleges, you have to expect the average quality to drop. Once upon a time, CS programs were filled with the kids who were innately just really into computers. Now they're filled with all of the kids who don't necessarily love tech, but just compared "SWE Salary" vs "Doctor Salary" vs "I-banker Salary" when deciding what to major in. Now that crazy FAANG salaries and "day in the life" videos are splattered all over Twitter and YouTube, more and more money/prestige chasers will be graduating with CS degrees even if they just scraped by without really absorbing the material and writing a lot of code.