Earlier quoted context omitted.
Google has experimentally determined that interviews 5 through 7 provide negligible additional signal, and so they've been eliminated from the process. Contrary to latch's comment here: http://news.ycombinator.com/item?id=3062001 , Google does tweak the process from time to time.
But don't worry, they've kept the random noise "hiring committee!"
P(we hire you) =~ 0.0016
61–70 of 73 posts
Re: P(we hire you) =~ 0.0016
#62You have two steps round the wrong way: 1. Do the phone screen first. Frankly, in my experience, you can filter out a lot of people in the first minute; and 2. Then do the test. Speaking of the test, I had a quick look and it takes time. How much time? I'm not sure as I didn't look at the starting code, just the list of tasks. Maybe it only takes 30 minutes. Maybe it might take hours. I really don't know. Either way,…
...a relatively efficient (at worst O(n) space and time) factorial function... If you can do that, you'll win a Nobel prize. (Yes, I know there isn't a Nobel prize in computing: You'd win a Nobel prize in physics, for showing how to store Θ(n log n) bits in O(n) space.) Heck, if you can compute n! in O(n (log n)^(2-x)) time for any x > 0 you'll probably win the Turing award. Such an algorithm would be really really b…
Re: P(we hire you) =~ 0.0016
#63Earlier quoted context omitted.
...a relatively efficient (at worst O(n) space and time) factorial function... If you can do that, you'll win a Nobel prize. (Yes, I know there isn't a Nobel prize in computing: You'd win a Nobel prize in physics, for showing how to store Θ(n log n) bits in O(n) space.) Heck, if you can compute n! in O(n (log n)^(2-x)) time for any x > 0 you'll probably win the Turing award. Such an algorithm would be really really b…
The Schönhage–Strassen algorithm is a commonly used fast multiplication algorithm that has complexity O(N log N log log N), wouldn't a naive factorial function based on this have complexity O(N^2 log N log log N) ?
Re: P(we hire you) =~ 0.0016
#64Earlier quoted context omitted.
...a relatively efficient (at worst O(n) space and time) factorial function... If you can do that, you'll win a Nobel prize. (Yes, I know there isn't a Nobel prize in computing: You'd win a Nobel prize in physics, for showing how to store Θ(n log n) bits in O(n) space.) Heck, if you can compute n! in O(n (log n)^(2-x)) time for any x > 0 you'll probably win the Turing award. Such an algorithm would be really really b…
I don't understand your comment. Take a simple definition of the factorial: http://codepad.org/GTBdCKin The space usage for this function is obviously constant, and the number of multiplications will be linearly dependent on the number. If you mean to refer to the 'factorial function' as a mathematical object, and point out that bignum operations have different complexity... well that's true, but irrelevant to OP's p…
Re: P(we hire you) =~ 0.0016
#65Earlier quoted context omitted.
I don't understand your comment. Take a simple definition of the factorial: http://codepad.org/GTBdCKin The space usage for this function is obviously constant, and the number of multiplications will be linearly dependent on the number. If you mean to refer to the 'factorial function' as a mathematical object, and point out that bignum operations have different complexity... well that's true, but irrelevant to OP's p…
Yes, the number of multiplications will be linearly dependent on the number, unfortunately the computational complexity of integer multiplication is not itself O(1). It can seem like it is, because modern CPUs can perform integer multiplications up to a certain number of bits (I think it's usually 32 or 64 depending on processor, but don't quote me on this). These are O(1) operations because the CPU contains logic to…
Re: P(we hire you) =~ 0.0016
#66Earlier quoted context omitted.
...a relatively efficient (at worst O(n) space and time) factorial function... If you can do that, you'll win a Nobel prize. (Yes, I know there isn't a Nobel prize in computing: You'd win a Nobel prize in physics, for showing how to store Θ(n log n) bits in O(n) space.) Heck, if you can compute n! in O(n (log n)^(2-x)) time for any x > 0 you'll probably win the Turing award. Such an algorithm would be really really b…
I don't understand your comment. Take a simple definition of the factorial: http://codepad.org/GTBdCKin The space usage for this function is obviously constant, and the number of multiplications will be linearly dependent on the number. If you mean to refer to the 'factorial function' as a mathematical object, and point out that bignum operations have different complexity... well that's true, but irrelevant to OP's p…
But it is not a factorial function. It happens to have the same result as the factorial function as long as the result is less than what can be stored in a fixnum int in C.
But it is a very real possibility that that isn't enough. I always wanted to find out what the sum of the factorial of the first 100 numbers was but what you claim is a factorial function can't do that.
Re: P(we hire you) =~ 0.0016
#67As I stated in the thread kemayo referred to: 1. I got as far as a promise of a second interview that never materialized. I found it annoying to be told that they wanted to give me another interview, then that they 'moved forward with another candidate,' then to see that the position is seemingly unfilled months later. (I'll note that they were posting in the "We're Hiring" threads within a week or two) 2. Between st…
I got an offer a few months ago from deviantART after doing the coding test and phone interview; I replied with some questions about salary/benefits and never heard back. Highly frustrating. (Throwaway account, as I would rather not publicize that I'm looking for a different job. If you're looking for the same type of person dA is looking for though, feel free to reply to my comment with contact info.)
Re: P(we hire you) =~ 0.0016
#68Earlier quoted context omitted.
Yes, the number of multiplications will be linearly dependent on the number, unfortunately the computational complexity of integer multiplication is not itself O(1). It can seem like it is, because modern CPUs can perform integer multiplications up to a certain number of bits (I think it's usually 32 or 64 depending on processor, but don't quote me on this). These are O(1) operations because the CPU contains logic to…
Classical multiplication is O(nm), not O(n^2) -- big times small is faster than big times big. A naive factorial is O(n^2 (log n)^2).
Re: P(we hire you) =~ 0.0016
#69Earlier quoted context omitted.
I don't understand your comment. Take a simple definition of the factorial: http://codepad.org/GTBdCKin The space usage for this function is obviously constant, and the number of multiplications will be linearly dependent on the number. If you mean to refer to the 'factorial function' as a mathematical object, and point out that bignum operations have different complexity... well that's true, but irrelevant to OP's p…
Yes, when I say "factorial function" I mean the factorial function, taking an integer input n and returning the integer output n! . If cletus meant "factorial as long as the result is a 32-bit integer", I don't know why he would accept an O(n) solution to that: I wouldn't hire anyone who didn't immediately produce the obvious O(1) algorithm using a 13-element lookup table. (If he meant "factorial modulo 2^32", a 34-e…
Because it's a question used to weed out early stage candidates. It's a fizzbuzz test. The point is not to see if the candidate knows the algorithmic complexity of arbitrary-sized integer operations, and neither is it to see if he knows whether the factorial function grows quickly enough to make a look-up table worthwhile. It's just to take a very simple function and get him to write some code in a text editor.
Or at least, that's what I read from the OP's post. Perhaps he meant otherwise.
Re: P(we hire you) =~ 0.0016
#70You have two steps round the wrong way: 1. Do the phone screen first. Frankly, in my experience, you can filter out a lot of people in the first minute; and 2. Then do the test. Speaking of the test, I had a quick look and it takes time. How much time? I'm not sure as I didn't look at the starting code, just the list of tasks. Maybe it only takes 30 minutes. Maybe it might take hours. I really don't know. Either way,…
There are employees who place a very high value on job stability. In the general case, these people are more 'loyal' in that they are less likely to jump for better pay or what have you a few years down the road.
But depending on how you run your company, it may be rational to select for the sort of person who does not expect job stability. I'm in this second class, personally. Yeah, I'll jump if I get an offer that is 20% better, but on the other hand, I maintain 'how to fire me' documentation, and I expect that if I go through a long productivity slump, that you will fire me, and I won't hold it against you. I expect and try to give absolute honesty, but as far as I am concerned, loyalty is a lie. (I know that for other people, loyalty is important and not a lie. But if I claimed loyalty, I mean, beyond honesty, I would be lying, and if a company offers me loyalty, I am, ah, suspicious.)
I'm not saying one approach is better than the other... Both approaches are valid, and they both get you different sorts of employees. In fact, the optimal solution may be to use a different approach for different types of employees; this is traditionally done by having full-time employees and contractors (now, the way most companies hire contractors is hugely inefficient; the body shop eats so much value that this is probably a bad idea. But if you could have some other way of setting the loyalty vs. no loyalty expectation, a company could benefit having both family and mercenaries. We are good at different things.)