3 ms·
>For what I lack in low-level understanding, I more than make up for it on a higher level. Ask me to build something as a whole, don't ask me to solve mathemati
by quanticle 13y ago
>For what I lack in low-level understanding, I more than make up for it on a higher level. Ask me to build something as a whole, don't ask me to solve mathematics questions and other unrealistic junk questions.
Without the math, how do you know that your solutions are any good? How do you know that the algorithm you sketched out on the whiteboard will work on the 1,000,000 records that we have in production in addition to the 5 record toy example that you worked out?
I mean, sure, I agree that brainteasers are in appropriate. Knowing why manhole covers are round or how M&Ms get their candy shell tells me nothing about your programming ability. But basic math and algorithms? They're a lot more important than you think. Knowing Big-O notation, various kinds of basic algorithms and a good assortment of data structures lets me know that you can evaluate a solution and find potential flaws and bugs.
How is putting someone on the spot to build something and build it perfect a good test of their capabilities and skills?
There's a difference between perfect and working. I've never had an interviewer ask me for perfect code. Not at Amazon. Not at Google. Not at Facebook. I have, however, been asked for working code. The code doesn't need to be 100% bug free, but it should be syntactically correct and should solve the problem in a reasonable fashion (e.g. without using inordinate time or space).
Frankly, I like technical interviews a lot more than the alternative, which increasingly boils down to, "Make me a webapp and we'll evaluate your code." I'm sorry, but if I wanted to make a webapp for you on my own time, I also want to get paid for it. Even now, when I'm single and living alone, I have a hard time motivating myself to do homework problems. I can't imagine having to do something like that when I'm married and have children.
- cpprototypes 13y agoIf someone is married and has children, then it's likely they've been working for a while (for example, assuming a typical graduation at 22 and kids at 30, that's 8 years in the industry). In that situation, technical interviews require a lot of time preparation. It would require looking at old college textbooks/notes, doing practice interview questions, etc. The amount of time required is probably about the same as a "make a webapp".
- jebblue 13y ago>> Without the math, how do you know that your solutions are any good? He probably does it the same way you do, idea, code, build, test, analyze.
- XorNot 13y agoOr he realizes he doesn't understand the hard core mathematical basis, but knows to go looking for the most efficient algorithms for a given problem type. The history of computing is largely dominated by software which got done, not done perfectly.
- mmorett 13y agoI'm torn on this. I get what quanticle is saying, that Big-O is very important. I've developed an appreciation for it even if I didn't take CS in college (I took the redheaded bastard stepchild major of CIS). quanticle is suggesting there is a purposeful, formal means of discussing and identifying performance, irrespective of how it's measured/profiled or addressed. Here's the rub: why don't job openings eliminate the other requirements and just put Big-O (and a language) as the two must have items on the list. Keep it short. Eliminate the History majors, the non-college types and the CIS (almost but not good enough) types. That, more than any FizzBuzz, should weed out the chaff instantly. If it's that important to that specific job, then just say so explicitly. Help folks self-filter themselves out. Let's just hope getting in the door with that Big-O knowledge isn't wasted on run of the mill CRUD apps.
- DigitalSea 13y agoYep, that's exactly how I do it. I've seen people use whiteboards and pens and paper to solve problems, but nothing solves a problem like tactfully tackling it head on and persisting until you solve it. Having said that, some people work better writing down their problems on a whiteboard and others physically solving them. In my day-to-day I try and avoid writing as much code as possible. If someone else has solved the problem, I'll read through their code and understand it, then implement. Developers at the end of the day are hackers. I think as long as you know how and what to Google, then you're more than capable. The difference between a good developer and a bad developer isn't knowing all the answers it's knowing where to find the answers when you need them whether that be documentation, a Google search or even a physical book. Because lets be honest here. In the day-to-day life of a developer what percentage of developers actually solve their problems manually using their brains as opposed to finding the solution on Stackoverflow, forum or blog post? I'd be willing to bet a large percentage do. When I get stuck on something I hit Google, in an interview if they were to take into account your problem solving skills in the form of a Google search, then that would be more than fine. But I am willing to bet most interviews don't allow you to search for answers.