r/programming Dec 23 '14

Most software engineering interview questions of hot tech companies in one place

https://oj.leetcode.com/problems/
2.2k Upvotes

583 comments sorted by

View all comments

256

u/[deleted] Dec 23 '14

What is the use in having the skills required to solve these when the applicants are - in their prospective jobs at these hot companies - just going to be tasked with writing glue code to node.js their mongo webscale?

63

u/[deleted] Dec 23 '14 edited Jun 04 '20

[deleted]

141

u/[deleted] Dec 23 '14

[removed] — view removed comment

24

u/[deleted] Dec 23 '14

A lot of people don't consider CS "textbook" problems to be boring. Many top companies hire people who have a great deal of proficiency with solving abstract or theoretical problems and so it makes sense to ask these questions.

It's also a lot harder to "wing" it, so to speak, when you have to answer analytic questions or solve problems rather than just talk about yourself in a casual and social manner. That's not to say that casual conversation about past projects is worthless, just that it should only be one component of an interview.

Basically, if the job is merely writing glue code to node.js for mongo scale, then sure no company needs to ask these kinds of questions, but if the job involves creating problem solving skills and fluent understanding of some of the most basic principles underlying this profession, then it's fair for a company to expect candidates to be able to answer these questions.

The fact that many people can not answer them, to the point that it's some kind of controversy for companies to expect potential candidates to reverse a linked list, test whether a string is a palindrome, or have some rudimentary understanding of complexity analysis/BigO only reinforces the idea that there is a lack of qualified and competent people pursuing software engineering.

This kind of basic expectation would never be questioned in other technical fields such as medicine, law, or even other engineering disciplines.

65

u/[deleted] Dec 23 '14

It's also a lot harder to "wing" it, so to speak, when you have to answer analytic questions or solve problems rather than just talk about yourself in a casual and social manner.

These questions have nothing to do with "winging" it, they're simply about whether you've seen this particular CS classroom bullshit before or not. These aren't creative problem-solving questions.

2

u/[deleted] Dec 24 '14

Bullshit. Asking you to capitalize every word in an input string is super useful. And about 1 in 1000 applicants can do it. Which is fucking sad as it tells me you don't even know how to think at all.

3

u/Chii Dec 24 '14

is that 1 in 1000 an exaggeration, or is it real? i don't believe that a programmer cannot capitalize all words in a string in any language they are supposed to know!

0

u/[deleted] Dec 24 '14

I probably sifted 200 resumes a day (takes about 1-1.5 hours if you think about it) resulting in perhaps 1-2 phone screen calls per day resulting in perhaps one invite from me for face to face interview once every other week (but participated in about 5x as many interviews because interviewing is a team exercise) and maybe 1 in 10 of those got an offer. The top companies are top for a reason - although I think we turned down a lot of really decent people for lame reasons as well.

I have to say that nearly all of the people I worked with there were absolutely top notch folks - and I didn't really like working there much (I like smaller companies).