3 ms·
I was kind of following along and agreeing in many aspects with the article, until I got to the following: >You should be giving people obscure algorithms in i
by DigitalSea 5y ago
I was kind of following along and agreeing in many aspects with the article, until I got to the following:
>You should be giving people obscure algorithms in interviews. For example, ask a candidate to make a playable game of Japanese GO, and ask them to use flood-fill.
In my opinion, asking algorithmic questions in interviews for say a front-end development position is one of the core fundamental problems of hiring right now. Asking someone who will be spending their time taking Figma prototypes and making them work with your API or backend is what most front-end/web developers will be doing.
If anything, algorithmic questions are exclusionary and do not tell you anything about a developers ability to solve problems. Oh, you remembered an algorithm from your compsci classes or you went to one of those GitHub interview prep repositories and memorised some of the things companies ask: well done. I have friends who work for companies like Facebook and Google, they all "prepped" for their interviews like they taking an exam.
What about the self-taught developers? You know the ones who did coding bootcamps, courses that Twitter developers are flogging for a few hundred dollars to help you get better at Javascript and CSS. Algorithm questions are biased towards academically taught developers, not the ones who taught themselves (and in web, there are so many self-taught developers).
The honest truth is the times that you do need an algorithm, you are going to look it up. I can't think of a developer that I have worked with in my 13 years as a front-end developer whoever solved a problem with an algorithm they just knew off of the top of their head. Problems in web land are solved with Google and trying things until they work.
Part of being a good developer is knowing what to type into Google, not the ability to recall everything like a robot.
I can do a basic sort, I can do a FizzBuzz and that's really it. Unless the job specifically requires writing algorithms on a day-to-day basis, you can use StackOverflow, lift the code from a blog post or install an Npm package.
Part of this post seemed to be pieces of truth sprinkled with what are clearly exaggerated claims and lies. I seriously doubt the following quoted situation happened:
>The general rudeness is ridiculous. I once had an interviewer ask me if I was a wizard with GO, C++, Rust, and C over the phone. Then when I said I had some experience with rust, he immediately cursed at me and hung up.
An interviewer didn't curse the author because he said he only knew a little bit of Rust. This just seems completely fabricated to me.
All of the problems when it comes to being unable to find developers or perceived skill shortages usually come back to the hiring and interview process. Why companies feel the need to subject a developer with 10+ years experience to a multi-stage interview full of traps designed to make you slip up so whoever is interviewing you can feel superior defies belief. If someone has been working for 10 years, I think you can accommodate them with a more streamlined interview process that doesn't waste hours, weeks and sometimes months of their time.
It reminds me of the time I interviewed at a company. At that point, I had close to 10 years experience (a few months off) they were hiring for a front-end role. I attended the interview, the interviewer was sick (red flag #1) this was pre-COVID obviously. I went to a small meeting room, we spoke for a few minutes. He boasted how he had been at the company for a little over a year and had just been promoted to lead developer (red flag #2).
He pulled out some sheets of paper with questions, there were 20 of them. He then explained this is a written interview, to write the answers on blank sheets of paper to the questions. I had an hour. Some of these questions were coding questions, as in, I had to write code on sheets of white paper (red flag #3).
Instead of leaving the room, the person interviewing me sat across from me on his phone, occasionally glancing over at what I was writing (red flag #4). He kept sneezing and coughing, it was terrible. The whole thing made me nervous, I blocked up on simple questions.
One of the questions was to swap values in an array without introducing a third variable. Array destructuring was new then, but valid. I used that as the answer, he tried telling me that it wasn't a valid solution to the question and that he wanted another solution. I explained how destructuring was an up and coming part of the ECMAScript specification, but he continued to say it wasn't a valid solution. My answer was `[a, b] = [b, a]` which was very much valid.
It is people like the person who interviewed me causing these perceived skill shortages, not the lack of skilled developers.
Don't get me started on companies who don't even know what they are hiring for. Some of the job descriptions I have seen in front-end/Javascript are confused and often at odds with themselves. Asking for candidates with 3+ years experience in Javascript and then saying things like, "Experience with PHP or Python preferable" for what are being advertised as front-end positions, not full-stack or general web developer.
I am the lead front-end engineer for the company I work at, I am part of the hiring process. I refuse to ever ask algorithmic questions, coding puzzles or anything that will not relate to the average day to day job. I am honest and upfront when I say to candidates, "Sometimes a ticket will come through and it's to rename a text value on a button" or, "Fix some padding on a modal for tablet sized screens because it's cutting off the edge"
I also refuse to take up the precious time of candidates with take home exercises. More often than not, just sitting down and talking to someone, treating them like a human and asking about the things they have done is enough to know if they are a good fit or not. We need to stop treating developers like robots who don't need sleep and can solve complex exaggerated puzzle problems in the space of an hour while being watched and not being given access to the tools they have in the real world.
As a whole, I found this "article" really difficult to read. It reads as though the author is struggling to be hired and has written an angsty article throwing daggers in many different directions and making a lot of assumptions (don't get me started on the grammar and spelling mistakes).
- LorenPechtel 5y agoI fully agree about algorithms--that's what Google is for. However, I can see merit to making a playable game of Go. I would think a playable game of chess or checkers would be a better option, though, as people are much more likely to know the rules.