4 ms·
I consider myself a competent developer, but I have no academic background as I am self-taught. While I have had a steady supply of work, because of this, I wil
by DigitalSea 10y ago
I consider myself a competent developer, but I have no academic background as I am self-taught. While I have had a steady supply of work, because of this, I will most likely never get to work for a big company like Microsoft, Google or Facebook because I wouldn't pass their technical interview. I lack the understanding of core computer science principles and I am okay with admitting that, I don't think it makes me a bad developer or inferior to my peers who have computer science degrees. Most developers I know envy the fact I have no student debt and said if they could do it over again, they would go the self-taught route.
Technical interviews are broken because they favour developers fresh out of college or with academic backgrounds. Not every development task is a coding problem or puzzle, rarely do you ever need to write your own algorithm implementation in real world situations. The times you do, most developers (even the intelligent ones) will Google. My problem solving ability is decent enough I am at a senior level and always complete what is asked of me, but give me a code golf/coding puzzle and unrealistic constraints like only being able to solve it on a whiteboard? I will fail. Ask me to solve problems on sheets of paper as quick as possible? I will fail.
Give me a laptop, an IDE and ask me to build something. Better yet, sit me down with one of the developers in your team, give me a simple Jira task and ask me to help solve it pair-programming style. I would rather hire a developer who can get things done opposed to being able to solve a non-real world programming puzzle I found on Google. Interviews seem to forgo the highly acknowledged fact that developers rely on Google/StackOverflow than companies care to admit.
Problem solving is one percentage of the hiring equation, being a great developer also requires patience, cooperation, understanding and communication. I think above anything else, a developer who is a good communicator is a dream combination. I would take communication skills over coding puzzle solving skills any day of the week.
Even the much beloved FizzBuzz test is a scam. Any developer can memorize a FizzBuzz implementation 10 minutes prior to the interview. I never understood how this was a valid metric for determining suitability of a candidate, when candidates have come to expect a FizzBuzz test coming up. Maybe it worked in 1999, but not in 2016.
- groby_b 10y agoYeah... FizzBuzz still works. A large percentage of phone screens fails it. It's not meant to be a signal you're a good developer if you pass, it's meant as a signal you're an atrociously bad one if you fail. Most people don't bother to even memorize it, and those who memorize are thrown by slight variations.
- jryan49 10y agoWhen's the last time you had to modulo a number? I feel like when I was first asked this question I got hung up on that more that anything.
- morgante 10y agoYou don't need the modulus operator to solve FizzBuzz.
- jryan49 10y agoYeah, that's true. But any standard implementation is going to use %...
- morgante 10y agoSure, but the important bit is that if you completely blank and forget about % (I have done so) you can still solve it easily if you're a half-decent programmer. Not to mention that if I see a candidate is stumped on the modulus part I'll offer them % myself.
- jryan49 10y agoYeah when I blanked I just panicked and could continue. I'm more comfortable in interviews now where that wouldn't happen.
- user5994461 10y ago> Microsoft, Google or Facebook because I wouldn't pass their technical interview. Well, they're far from the ones with the hardest interviews.
- avasylev 10y agoI'm one of the people who ask those algorithm/white board questions. I've read a lot criticism on this topic, here're my reasons to stil keep asking these questions: 1) Working on algorithm problem requires very little in common between interviewer and interviewee. I'm C++/C#, I won't be able to give Ruby dev a real world task and evaluate it properly. Algo/data structure problems are universal and looks similar in any language. In my practice I completely failed to make any conclusions by talking about previous experience. It was not clear to me what person actually did vs what was already on the project, may as well just fixed couple UI bugs on the complex project. This part might be might personal failure as interviewer, but it was it is, and I've seen enough developers with years of experience who barely code. So unfortunately having great resume doesn't prove anything. 2) Everyone knows that big tech companies ask these questions. Knowing that you didn't take to prepare, says one of two things to me: you don't find it interesting topic/usefull or you don't have enough grit to go thru that. When I prepared for the interview I went thru two algo books, it took some time but it was easy for me, I did enjoy the learning part, yes it's not something I use every day. But learning things is a trait of good developer, knowing fundamentals if part of that. Some folks found it useless, but since it's known fact that's being asked on interiewes, motivated developer would spend time and learn it. Over the years at work, we have to learn things that are not interesting and that I'd rather choose not to know at all, same as algorithms to some people. If you can't make yourself learn algorithms to pass interview, likely you wont learn things for the work too.
- inimino 10y agoYour first point suggests these questions have some value for you in identifying people's skills. Fair enough. Your second argument admits that this is basically a hazing ritual. Of course you will have to learn some things you don't intrinsically care about in the course of your work. The difference is, that isn't part of a process that we intentionally designed to be that way. Admitting that your hiring process requires useless knowledge that people just have to learn to get through the process means you admit your process doesn't measure what matters and is just a hazing ritual. You're putting up hoops just to see who will jump through them.
- 10y ago
- moduspwnens14 10y ago> While I have had a steady supply of work, because of this, I will most likely never get to work for a big company like Microsoft, Google or Facebook because I wouldn't pass their technical interview. The stuff people complain about (big O, data structures, algorithms in theory) are stuff even us with degrees have to study and relearn before job interviews. I think you might be underselling yourself. Those big companies use questions like this (often instead of hard checks for degrees) specifically to allow self-taught coders who are good an opportunity to get in. To some extent, as other have posted, it is kind of silly, but you might be able to look at it as a leveling of the playing field. > I never understood how this was a valid metric for determining suitability of a candidate, when candidates have come to expect a FizzBuzz test coming up. It's not--it's a metric for determining unsuitability.