6 ms·
I personally sat next to my boss in some of our few "classic" job interviews. Questions like the ones mentioned in this article were never brought up, because i
by lqet 8y ago
I personally sat next to my boss in some of our few "classic" job interviews. Questions like the ones mentioned in this article were never brought up, because it would've felt extremely unnatural, even ridiculous. We usually took day-to-day real-world problems that weren't abstract and asked the candidates how they would approach them.
Some of the best software engineers I have seen in my life were not trained computer scientists and would've failed many of the questions presented in this article. Not because they weren't highly intelligent, but because terms like "bubble sort" meant nothing to them.
E: The company had around 10 employees. "Interview" processes often went like this:
1) Establish first mail contact (either because they are applying for a job, or because the company found out about an interesting tool they wrote, or met them somewhere, or...)
2) Discuss skills of candidate, decide whether the skillset fits the companies needs
3) If so, take a programming job fitting their skillset (usually some low-priority ticket) and give it to them as a freelance job
4) If delivered in good quality, pay them and discuss future job options. If delivered in bad quality, pay them and don't discuss job options. If not delivered, ignore.
Which I always thought was a very reasonable approach. Very often, the people weren't even interested in a job, but wanted to continue to work as freelancers.
- munk-a 8y agoThat's a very sane approach, it's one of the only ways I've seen to get an actual good work sample out of someone that doesn't exploit either party - good on you guys!
- theseatoms 8y ago> give it to them as a freelance job I've always wondered why this isn't more common. It's win-win to be able to test the waters in this way. What downsides am I not seeing?
- normal_man 8y agoDifficult to hire people who already have a job and aren't interested in moonlighting.
- deleted 8y ago[deleted]
- indigo945 8y agoIn addition to what the other commenters wrote, take-home assignments are also negative for diversity as they pre-select against candidates with less free time, which likely includes single parents and people from low-income backgrounds.
- conanbatt 8y agoGotta be honest about this. You are applying to a job of 40 hours a week and 6 figure salaries, and you cant make time for 10 hours of work?
- celestialjeu 8y agoYou might currently be working a job that is 50 hours a week -- or 60! Also with the example of a single parent they often can't make room for yet another 10 hours of a work in a week because they need to spend time with their children/take them to activities/cook dinner etc. Manageable when you are working 40 hours a week but it quickly becomes unreasonable. To me a job that wants me to work for them before I have an actual job offer is a red flag. I don't even work for them yet and they don't respect my time. What's it going to be like when I do work for them?
- conanbatt 8y agoSorry, this triggers no empathy to me. This is alledgedly a workforce that requires years of study ,training and practice. Being unable to work 10 hours to prove it shows you are a pauper, all the other excuses are complacency.
- ball_of_lint 8y agoQuitting your job or dropping some other responsibilities might he reasonable for some people who can live off of their parents money or their own savings, but for many people that means losing their home, their car, or even their children. Indigo945 isn't making excuses for them or himself; he's telling you that for them to make that 10 hours would cost them far more than the new job might give. Also, if anyone should be able to make another 10 hours in their week to work in tech why not say Steve who works at $BigTechCo? Now I know we just asked Steve for another 10 hours, but lets go ask him for another 10. No, the circumstances shouldn't matter, he's making 6 figures after all. Let's ask him again. And again, And again. Oh, Steve quit? What a pauper.
- xorcist 8y agoYou're basically limiting your skill pool to those without a job. Or a family. Certainly not both.
- quicklyfrozen 8y agoLots of good arguments against here. But assuming this assignment is in lieu of the usual 6+ hour whiteboard exam, then I say bring it on -- it's a lot less intrusive to my schedule.
- LoSboccacc 8y agosame, one really needs to engage the interviewee to see how it solves day to day problems, not just get packaged answer to closed questions. that said, we have one extremely exercise (a simpler foo baz) just to avoid going in deep with people that lack the basic skills, of which there are many and were clogging our hiring queue.
- anyfoo 8y ago> Not because they weren't highly intelligent, but because terms like "bubble sort" meant nothing to them. That's fine, but understand that they often would not be a fit. If the position is low level systems programming for example, not knowing the term "bubble sort" indicates that they will have troubles in getting up to speed in a modern, complex environment, even if they are very smart. Same if the position is e.g. to work on a database, i.e. its actual implementation. Solid knowledge of both abstract and specific aspects of computer science and engineering are prerequisites for a lot of programming jobs, especially where you work on things that consist of the environment itself, instead of the applications that run on it (though this is sometimes true for those, too).
- meheleventyone 8y agoI think most highly intelligent people can learn concepts that are part of undergrad degrees pretty easily. Let's face it plenty of regular people don't have much issue either. Especially if this lack of minutae was combined with a CV that got them into the interview room for a role that required it in the first place. Gaps in knowledge are about the easiest to fix.
- lordnacho 8y agoMakes sense but it selects against people with high opportunity costs, who are often the best ones. For instance if someone with kids is already in a job, it might be tricky to find those extra hours.
- com2kid 8y agoWhile working on an embedded team, the basic CS questions were incredibly relevant. No libraries meant we had to manage our own data structures. We had our own UI system, so understanding how to walk trees and manipulate them efficiently was crucial. Removing duplicates from an array in an efficient manner, important. Linked list stuff? Oh yeah, very important. Linked Lists underlay a lot of basic OS data structures. We did have real world problems in the interview mix as well. We'd give an underlying low level API and ask how it could be used to construct a more user friendly wrapper API. We'd give examples of in memory layout of objects and ask how that layout could be improved. At the end of the day, we wanted to hire people who could solve problems, but also sit down and have a good discussion about how to solve problems. FWIW it was always possible to tell, with junior employees, the engineers who had gone through CS and those who hadn't. A good decade of self study of course bridges the gap, but right out of college? I've seen very smart people, good coders, who didn't realize they were working with relational data, and over-complicated solutions. I also saw people trained as game programmers write mind blowingly fast code that computer scientists would be hard pressed to understand without a fair bit of study. I had to spend a fair bit of time explaining isomorphic tranforms of code/data structures/concepts though. Game programmers pick up on that one quick, "like a matrix, but instead provable facts about software."
- chooseaname 8y agoWhat were the percentage of non-CS grads applying for an embedded systems job, anyway? Maybe I'm wrong, but if you're applying for embedded with as a non-CS, you either know what you're applying for and know your stuff or are absolutely clueless in general.
- com2kid 8y agoHiring for embedded UI jobs is hard. I went out and recruited from schools that teach video game programming. The skill sets overlap a lot. I also wasn't allowed to tell people what job they were interviewing for. That made things extra fun! Teaching people who had spent their life in tight highly performance optimized C++ how to work in embedded wasn't that hard. Except for the "so, now we measure ram in Kilobytes!" part. But, there is a reason the Microsoft Band had real alpha blending, transparency effects, a simple particle engine, and true type fonts, all with a 120mhz CPU and 256KB of SRAM (and a few more megs of super slow RAM for cache sitting off the side).
- robodale 8y agoIf asking about a bubble sort during an interview I'm giving, I'd much prefer to hear questions come back about sorting bubbles rather than some person who's memorized popular algorithms and blindly gives me back some recreation of cookie-cutter algorithms that can be looked up from any source. Here's what questions I'd love to hear be asked of me if I'd ask the candidate "create a bubble sort algorithm". 1. How many bubbles are there? (collection size and knowledge of collection data structures) 2. What sizes, and how many or percent of each size? (constants, basic math, possibly low-level statistics knowledge) 3. Do new bubbles appear/disappear, and if so do I know what size they appear as, and do bubbles change size? (new inputs to an existing set of data) 4. Since I'm sorting, would you prefer a particular end result? (2d or 3d structure or something similar things)
- mlthoughts2018 8y agoThis just converts the problem from useless bullshit of the Cracking the Coding Interview variety into useless bullshit of the “how many ping pong balls can fit in a 747” hedge fund variety.