What does it mean for a software developer? Spend a few hours a week doing leetcode questions. They're really not that hard.
What does it mean for a software developer? Spend a few hours a week doing leetcode questions. They're really not that hard.
I already had an offer by then but I did the interview for grins and giggles and didn’t try to remember what a merge sort was. I actually wanted to test the culture of the company. If they ask me to write a merge sort and I don’t know the algorithm, will they describe it on a high level or will they look at me derisively? That would tell me a lot about the company.
Well anyway, the guy was nice enough, I did the mergesort on the board, got an offer but decided if their interview for “senior engineers” consisted of the ability to do a merge sort instead of deeper architectural questions, that wasn’t the company I wanted to work for.
When I conduct interviews, I have a simplified non working (but compiling) class that is a sample of the types of problems we solve everyday with a set of failing unit tests. We pair program and they have to see if the tests pass.
This is accepted blindly as dogma in our industry but in my experience it's only the case if the company is dysfunctional and management is too weak to let poor performers go quickly. Being an effective leader means being able to hire and fire quickly. If you're open and honest about it, you don't have to do as much as much intense vetting up front which costs your team's time and filters out potentially great hires.
The net effect it has is that firings are uncommon, and people hang around until the next round of layoffs, when a reason will be found to lay them off.
Citation needed. I have many years of experiential evidence that suggests otherwise.
I've interviewed dozens of people, and you can easily root out false positives by asking about their prior experience. Simply probing about things like design patterns to challenges with Javacript front-end coding is enough. If the candidate can go into explicit detail about past projects including bugs they fixed and limitations they came across in a Angular 6 project (as an example), then that's usually a good sign they know what they're talking about.
Suggesting that they do would not address a glitch in the interviewing process but rather try to accommodate it at the cost of the interviewees’ time.
People say this, and then they whine about how they can't find good candidates, can't find diverse candidates, etc.
They could, of course, study interviewing, treat it with the same level of seriousness you might apply to other skills, and actually learn how to evaluate people with a pretty good level of accuracy so you can avoid both problems.
There is no persistent storage in humans - people forget things, and it is quite annoying to do this again and again for every new job.
If you don't put in the work, someone else will.
These are high paying positions. You can't just expect to lazily stroll in.
My concern is about the success of the company I work at. My coworkers tend to be excellent when the bar is a tough algorithms interview, but they can't hire enough people. I'm a particularly demanding interviewer. I've rejected candidates who failed miserably, then later learned from my excellent coworkers that the candidate I rejected was excellent at their job.
I've also referred an excellent coworker from a previous job, only to have them fail the interview process. My current company would have benefited greatly from that hire, but instead rejected a talented person for a role they were having trouble filling.
If a company is having trouble hiring, it needs to at least get these excellent people that are being filtered out. Lowering the bar to let these excellent people in also lets in much less qualified people. Instead, the filter needs to be changed to let in people based on how qualified they are rather than how good they are at algorithm puzzles.
Successful companies need more than just people who are good at algorithms like me and studious people like you.
But if in your own words “you studied for an interview”, it’s not exactly showing that you have a special skillset if all someone has to do is study for a month.
If you’re an experienced software engineer and companies aren’t beating down your door and you’re still randomly applying for jobs and jumping through the same hoops as someone just graduating from college - you’re doing it wrong.
We're irritated with the current interview practices, because the gauntlet that many of us have to run is not only wasteful, but it's also harming the profession. If one has to jump through the same old hoops their entire professional life only to be thrown out at 40, what's the point of building a career in software engineering?