3 ms·
The interesting thing is that Leetcode style problems encourage your code to go into the opposite direction that most production code should go. The game of Le
by gregkerzhner 6y ago
The interesting thing is that Leetcode style problems encourage your code to go into the opposite direction that most production code should go. The game of Leetcode is to write the most consise, clever function that solves the problem in a tricky way. Thats exactly the kind of code I would flag in a review - sure it might be super efficient and elegant, but good luck maintaining it a few months later. I would way rather go for a solution thats less efficient but easy to maintain - I can always improve it later if it becomes a bottleneck (it usually doesn't).
I know the take home assignment is a divisive subject, but I think it's the perfect way to evaluate a person's coding ability. Did they use dependency injection or did they reference globals straight in the code? Did they break down the code into small testable chunks or write one giant file? Would their code pass code review? These things are way more important for most codebases than shaving an order of magnitude of big 0 complexity.
The only issue with the take homes is that they take a ton of time. Most companies say that it should only take a few hours but also ask for production grade code. Thats impossible - clean code takes time. Companies should at least start compensating for the time taken to do the assignment.
My favorite interview process involved a take home assignment which if you pass takes you directly to the final onsite interview. There the live coding sessions involved building more features onto the take home. As an experienced programmer who sucks at Leetcode I really hope the industry moves in this direction.
- ngngngng 6y agoThis is an accurate view of take home assignments. Most of the take home assignments I've done were "supposed" to take 5 hours. Most of them too around 20. The worst take home assignment I ever had was an extremely tricky brain teaser, the answer to which could not be found on google, and had to be done in the not very popular language this company used. So I not only had to write useless brain teaser code, but I couldn't do it in a language I was already comfortable with.
- jcadam 6y agoYea, I had one take home problem where the instructions stated "Please don't take more than 1 hour to solve." So, just once, I decided to hold myself to one hour, and barely managed to get to a solution that worked. During the code review in the follow-up interview, I was raked over the coals for not writing tests, failing to cover edge cases, etc. ,etc. Basically, they expected production-ready code. Didn't get the job.
- gjeck 6y agoI’ve shared the same experience! Coming out of college every time I’d get a take home I would always blow way over the expected allotted time. They’d say it should take 5 hours and I’d end up on it for 20 since I actually had the time then. Year’s later I did the same as you and decided to stick to the recommended time, because I really don’t want to waste my nights/weekends on this junk anymore. Working full time there’s barely any time for relaxing anyway. Sure enough, the same thing happened in review. Got absolutely shredded on my implementation. Didn’t get an offer and kind of wish they didn’t even call me back.
- ngngngng 6y agoAnd that's the worst part about the take home assignments, all the people you're competing with are claiming they did it within the time limit when they're really taking far longer to make it perfect.
- proverbialbunny 6y agoI like the data science interview process a lot more, though I'm biased enjoying the kind of work I do. It's somewhat common during a data science interview to be given the actual problem you would be working on if you took the job. Often times you're given multiple days as a take home or multiple interviews to go through it, because the problem is difficult enough it does take research to begin to hypothesize a possible solution. Most software engineers would cry murder if you gave them a 3 to 5 day take home interview that is an actual problem the company is trying to solve. "It's free labor. They're taking advantage of you." but in the data science world solving a problem can take 3 to 12 months, not 3 to 5 days, so you can't solve it in that time frame, just come up with ideas that lead to paths forward. The company can't take advantage of you this way. On the SWE side, a near equivalent would be pairing with someone on the actual code base with an actual jira issue for a day, learning the code base, seeing the problems in the bug tracker, and then deciding from there if those are the kinds of problems you want to spend the next handful of years of your life on. I like this kind of problem because I know what my 9 to 5 will be for the next year to years and if it is what I want to be doing with my life.
- ativzzz 6y ago> Most software engineers would cry murder if you gave them a 3 to 5 day take home interview that is an actual problem the company is trying to solve. So pay them. $400 for 10 hours of work is nothing for a company compared to the man hours spent on the hiring process. It also signifies to the developer that this company is serious about hiring them.