Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
feedmegin
Jul 30, 2008

Pixelboy posted:

You probably dodged something awful. Have a beer, and move on. Don't worry about it.

This. If nothing else a CEO who would be that flat-out rude to a job applicant is likely to be the sort of sociopathic CEO who would happily gently caress you over as an employee. I've worked for people like that and it's hell.

Adbot
ADBOT LOVES YOU

Pixelboy
Sep 13, 2005

Now, I know what you're thinking...

feedmegin posted:

This. If nothing else a CEO who would be that flat-out rude to a job applicant is likely to be the sort of sociopathic CEO who would happily gently caress you over as an employee. I've worked for people like that and it's hell.

If anything, the interviewer should remember that he's representing the company - and presumably, the company's values. Even when I've interviewed someone who somehow made it to an interview they're woefully unqualified for, I'm polite, and make sure the experience is at least engaging for us both. Candidates talk. If you treat anyone badly, it will boomerang on you.

That being said, imagine what kind of shitshow that place is on the inside.

My Rhythmic Crotch
Jan 13, 2011

Interviewed a guy who dropped every curse word, except "gently caress", multiple times during the interview. I wasn't even asking technical questions, just kinda feeling for personality.

So I tell management, he seemed like an okay guy, but his language was really salty. They explained he had just got out of the navy :pseudo:

Amish Ninja
Jul 2, 2006

It's called survival of the fittest. If you can't slam with the best, jam with the rest.
I had a pretty lovely live coding interview back in September at a company that flew me out. The task was to complete a web application (or get as far as you can anyway) in roughly a day's worth of work.

HR set up my flight to arrive at about 12:30, which means I didn't get to my hotel until 1am or so. I was scheduled to get picked up at 7am and start programming by 8am. I definitely wanted to get a good night's rest so I asked to push it back by an hour so I could be sharp and at full power. They at least agreed to that much, but they didn't budge on the 4pm deadline which, gave me one less hour or so to work with. Additionally, the day was split up into segments like: come up with data model, get it signed off by DBA, have lunch and chat, resume programming, followed by the presentation. Because they didn't adhere to their own schedule they had set up for me (I got my modeling done ahead of schedule but my DBA guy was late on top of that), I had even less time than was intended for an already timeboxed challenge.

The application itself wasn't that crazy - it was a timeclock app where you input tasks to track them through to completion. The other devs there were goofing off a lot, shooting each other with nerf guns and playing video games - which was cool, I guess it left the feeling of a relaxed work environment, which I super dig but at the same time their expectations seemed misaligned with that kind of culture. Some older dev was sitting across from me and I watched him pound 3 or 4 beers between lunch and my presentation.

Come time for the presentation, I wasn't entirely happy with how far I got but I went ahead and gave it my best shot anyway. At some point the subject of automated tests came up, and I talked briefly about how and why I thought they were important to use in development. Beer drinker guy chastises me in front of everyone for not having written tests for this app. In my head I was, like "YEAH gently caress YOU I DIDN'T WRITE ANY TESTS, I BARELY GOT SOMETHING PRESENTABLE DONE". The entire dev department (as well as remote employees) sat in on the review and it felt... incredibly one-sided. They were all silently judging me while I had to maintain composure and give some show of confidence. Really, toward the end of it I wasn't even that upset or anxious - it was such an absurd experience that I started to find it funny. There was one guy who was super friendly and kept thanking me for my time and telling me he still had nightmares about his coding test. The rest were stone.

I decided from that point on that I was going to be more careful about what job opportunities I'd take seriously. It's like, I get that the intention was to see how well I could hack it given some constraints, but I felt like they could've come up with a more reasonable way to vet candidates. I repeatedly got the impression that the devs didn't hold themselves to the standards they were holding me to.

All in all, a shitshow.

Cicero
Dec 17, 2003

Jumpjet, melta, jumpjet. Repeat for ten minutes or until victory is assured.
Did you post a review on glassdoor? Because I'd post a review on glassdoor.

Amish Ninja
Jul 2, 2006

It's called survival of the fittest. If you can't slam with the best, jam with the rest.

Cicero posted:

Did you post a review on glassdoor? Because I'd post a review on glassdoor.

I've been meaning to. You're totally right, I should. Thank you for the encouragement.

Ellie Crabcakes
Feb 1, 2008

Stop emailing my boyfriend Gay Crungus

I'd be willing to bet that the most critical devs were demanding poo poo they don't do or can't, just to make themselves look like less of the useless pud-pullers they are.

fritz
Jul 26, 2003

Sex Bumbo posted:

Some people are really lovely at interviewing. The first several times I was probably more nervous than the person I was interviewing.

I still get a little nervous when I interview a candidate.

qntm
Jun 17, 2009

John Big Booty posted:

I'd be willing to bet that the most critical devs were demanding poo poo they don't do or can't, just to make themselves look like less of the useless pud-pullers they are.

Well hell, the alternative is to only hire people who are worse at the job than you are.

Dazzleberries
Jul 4, 2003
I've had good and bad on both sides. The interviewer is so critical to how things go for me. In some cases, I've had people who are not interested in interviewing or have zero social skills that make it difficult, and other times people are very rigid on what they want to hear and if you don't outright say it, you fail.

One case with the later was an interview @ Microsoft, on the Live team at the time. Like on the third guy I talked to we go to lunch. Everything has gone fine to this point and we're getting along. We sit down in the cafeteria and he starts asking me a question. He describes a scenario in which his sister owns a salon or something and has a lockable bathroom, but the key keeps getting lost, how would I solve it.

I talk about how other places attach the key to something large or whatever in an effort to avoid the issue and he then goes, Ok that's great but now let's say I have the key and I tell you about this problem and I say that I need copies made, but the key says on it, 'DO NOT DUPLICATE', what would you do?

Now I just started detailing a dozen ways to make a copy of a key like that. I literally used the term social engineering in regards to how easily it would be to convince someone who could cut keys, to do it. I just kept on coming up with ways to get more keys that I was in my head like I'm killing this with my creativity.

Of course that guy didn't see it the way I did, in that my problem solving capabilities were limitless, the whole point of the question was to identify that exact scenario as social engineering.

On the flip side as an interviewer, I've found success using a two step approach in questioning. The first is as noted earlier, constructing a scenario or asking them a question for which the answer should be almost so trivial to a quality developer that they almost second guess themselves. My go to is a problem that is so obvious a situation for recursion that we didn't even have people write up things, we were just looking for them to understand the problem enough to know what basic tool they would use. This literally eliminates 50% or more of people. We've cut so many interviews short as people stand there searching for some way to traverse a tree.

The next part is, presuming they have a recursive solution, you now start to add constraints or change parameters, forcing them to come up with alternative solutions. Creative problem solving is a huge aspect of what we do, so throwing real life constraints at them, and observing how they respond is very helpful to see how things will really go.

That all allowed me to find great skilled people but there is another aspect that is harder to pinpoint. There are a lot of different phases to products and not everyone is keen on working at different phases, and even if they are aware that they prefer building new things versus maintaining them, if you need a job you aren't going to talk about that. I lost some great developers for that reason, the phase of the product was just not a great match for what they wanted and it's hard to discern in the interview how that part of things will go.

smackfu
Jun 7, 2004

What's the deal with testing on recursion anyway? Like is it just something that people faking programming skill don't get? It's certainly not something I use much in actual programming.

metztli
Mar 19, 2006
Which lead to the obvious photoshop, making me suspect that their ad agencies or creative types must be aware of what goes on at SA

smackfu posted:

What's the deal with testing on recursion anyway? Like is it just something that people faking programming skill don't get? It's certainly not something I use much in actual programming.

Yeah, basically it's a signal that they probably don't understand a bunch of other stuff, either, if they can't handle basic recursion.

The way I ask about recursion in interviews is to ask a candidate to solve a certain problem using recursion, then convert their solution to use iteration, and then to explain the pros and cons of each solution. This gives me a large amount of insight to where they're at as a developer and also their approach to problem solving and the factors they consider, and usually does so in a very short amount of time. Much better than just giving them a bunch of brain teasers or whatever.

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug

smackfu posted:

What's the deal with testing on recursion anyway? Like is it just something that people faking programming skill don't get? It's certainly not something I use much in actual programming.

Failing to understand recursion is probably the biggest red flag that indicates somebody doesn't understand programming, logic, or mathematics at the level you need to write good code. You don't need to be a recursion wizard but somebody that can't write something to calculate Fibonacci numbers probably can't hack it.

Sex Bumbo
Aug 14, 2004
Yeah but... recursion is the wrong way to produce Fibonacci numbers. There's no reason to do it like that. Just put it in a loop and it's better code.

We're selecting for specifically bad coders. Probably because that's how we got here too. The cycle of badness.

The laws of interviewing:

- never ask a question relevant to the position being hired for
- the more irrelevant a skill is, the more importance it should be given
- never under any circumstance should existing practices be used on interviews. No metrics or data or testing about them should ever be gathered

Blue Footed Booby
Oct 4, 2006

got those happy feet

Sex Bumbo posted:

Yeah but... recursion is the wrong way to produce Fibonacci numbers. There's no reason to do it like that. Just put it in a loop and it's better code.
...

The entire point is to have them do it both ways and state pros and cons, not slap down a generic problem and fail them if they don't use recursion.

Walh Hara
May 11, 2012

Sex Bumbo posted:

Yeah but... recursion is the wrong way to produce Fibonacci numbers. There's no reason to do it like that. Just put it in a loop and it's better code.

I like being pedantic, so: this is not true, there are multiple ways to use recursion to calculate Fibonacci numbers in linear complexity. For example:

fib_recursion (int n, a, b) =
if n <= 0 then b else fib_recursion (n-1, b, a+b)

call with fib_recursion(n, 1, 1)

FamDav
Mar 29, 2008
Your solution is quadratic. Fibonacci numbers grow geometrically and bignum arithmetic is linear in the number of digits for addition. Unless you have access to an ALU that can do unbounded integer arithmetic in constant time?

Fibonacci is a dumb interview problem and your answers are probably wrong too.

FamDav fucked around with this message at 20:24 on Apr 16, 2016

Walh Hara
May 11, 2012

FamDav posted:

Your solution is quadratic. Fibonacci numbers grow geometrically and bignum arithmetic is linear in the number of digits for addition. Unless you have access to an ALU that can do unbounded integer arithmetic in constant time?

Fibonacci is a dumb interview problem and your answers are probably wrong too.

Ha, fair point, my example is wrong (but my claim that there are ways to calculate fibonacci in linear time is not). Either way I was just pointing out that when people say "solve fibo with recursion" you do not necessarily have to answer with fibo(n) = fibo(n-1) + fibo(n-2). Whether you use recursion or iteration shouldn't really change the time complexity (big O) of the optimal solution of any problem if you know what you're doing.

That said, if I went to a job interview and somebody asked me the fibonacci question I'd be quite offended so I agree it's a silly interview problem.

fritz
Jul 26, 2003

Walh Hara posted:

(but my claim that there are ways to calculate fibonacci in linear time is not).

No, seriously, what do you do about the log factor with large integers.

FamDav
Mar 29, 2008

Walh Hara posted:

Ha, fair point, my example is wrong (but my claim that there are ways to calculate fibonacci in linear time is not). Either way I was just pointing out that when people say "solve fibo with recursion" you do not necessarily have to answer with fibo(n) = fibo(n-1) + fibo(n-2). Whether you use recursion or iteration shouldn't really change the time complexity (big O) of the optimal solution of any problem if you know what you're doing.

That said, if I went to a job interview and somebody asked me the fibonacci question I'd be quite offended so I agree it's a silly interview problem.

There is no known linear time algorithm for Fibonacci that doesn't assume a machine that we cannot build.

The best known is n log n off the top of my head, which takes advantage of matrix multiplication.

weird
Jun 4, 2012

by zen death robot

Walh Hara posted:

Ha, fair point, my example is wrong (but my claim that there are ways to calculate fibonacci in linear time is not). Either way I was just pointing out that when people say "solve fibo with recursion" you do not necessarily have to answer with fibo(n) = fibo(n-1) + fibo(n-2). Whether you use recursion or iteration shouldn't really change the time complexity (big O) of the optimal solution of any problem if you know what you're doing.

That said, if I went to a job interview and somebody asked me the fibonacci question I'd be quite offended so I agree it's a silly interview problem.

your example is iterative

Walh Hara
May 11, 2012
Hmm, I guess I should have done more research before making claims, serves me right for being pedantic. (I did indeed have the algorithm using matrix multiplication in mind)

That said, I agree now even more that it's a bad interview question.

baquerd
Jul 2, 2007

by FactsAreUseless

FamDav posted:

There is no known linear time algorithm for Fibonacci that doesn't assume a machine that we cannot build.

The best known is n log n off the top of my head, which takes advantage of matrix multiplication.

Edit: not going down this rabbit hole.

Sex Bumbo
Aug 14, 2004
I think there's this bug in people's heads that tells them if someone is good at solving academic style problems then they'll be good at creating software. In my own job I can think of a ton of better questions than that. To date I've never once had to solve fibo numbers myself, and I don't think I've ever used recursion. I got a typical programmer education so I know what they are but I'd be just as good at my current job if I didn't.

I'd rather ask things like:
- why is this example code slow / how do you fix it
- how would you design something for some set of requirements/customers
- describe the implementation of some actual, useful algorithm or data transformation

If they can't do real examples, obviously they wouldn't be able to do their job. If they can't write something recursively, I dunno, I think they'll manage somehow. Or I could give them a 5 minute lesson.

baquerd posted:

Edit: not going down this rabbit hole.

https://www.nayuki.io/page/fast-fibonacci-algorithms
Hey look it's fast fibonacci algorithms. I found it, with bing. Just kidding I used google.

Sex Bumbo fucked around with this message at 22:15 on Apr 16, 2016

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


Asking school-type questions is a reasonable way to interview for entry level positions, where candidates don't have a lot of experience to talk about. We've just never as an industry figured out how to interview more senior people appropriately.

FamDav
Mar 29, 2008

Sex Bumbo posted:

https://www.nayuki.io/page/fast-fibonacci-algorithms
Hey look it's fast fibonacci algorithms. I found it, with bing. Just kidding I used google.

quote:

(Note: This is counted in terms of the number of bigint arithmetic operations, not primitive fixed-width operations)

b0lt
Apr 29, 2005

FamDav posted:

There is no known linear time algorithm for Fibonacci that doesn't assume a machine that we cannot build.

There are no non-constant time terminating algorithms that don't assume a machine that we cannot build.

Axiem
Oct 19, 2005

I want to leave my mind blank, but I'm terrified of what will happen if I do
My experience is that the best programmers I know are all aware of and can talk the academic theoretical (generally having learned from a CS degree). That said, I've met plenty of terrible programmers who knew the theoretical; and I've met plenty of good programmers who didn't really know theory.

I don't think a little of the academic stuff is untoward in an interview, to get an idea of what a candidate knows and such. But yes, the bulk of the interview should focus on practical coding and, in my opinion, "is this a person who is passionate about programming and at learning to get better at programming". Give me an army of people who want to learn to code good over apathetic but experienced coders any day.

fritz
Jul 26, 2003

ultrafilter posted:

Asking school-type questions is a reasonable way to interview for entry level positions, where candidates don't have a lot of experience to talk about. We've just never as an industry figured out how to interview more senior people appropriately.

I've seen too many senior people flub too many easy questions to think this any more.

smackfu
Jun 7, 2004

Yeah, that's the other side of things. A lot of "experienced coders" barely do any programming on a daily basis, and often when they do, it's doing maintenance work on stuff that is five or ten years old.

They are experts on the system they work on but what good does that do for their next employer?

Woodsy Owl
Oct 27, 2004

Dazzleberries posted:

he starts asking me a question. He describes a scenario in which his sister owns a salon or something and has a lockable bathroom, but the key keeps getting lost, how would I solve it.

I talk about how other places attach the key to something large or whatever in an effort to avoid the issue and he then goes, Ok that's great but now let's say I have the key and I tell you about this problem and I say that I need copies made, but the key says on it, 'DO NOT DUPLICATE', what would you do?


Did you get an answer to this thought experiment?

Attach the key to the employees'/owner's building keyring, have them unlock the door when necessary?

Attach the key to a wood plank that is larger than the entrance and exit doors?

Attach key-finders to the key; the key-finders are biometric?

Attach a lock-box to the door. Several one-time keys accompany the lock-box and are given to trusted parties, the bathroom key is inside the lock-box, permanently attached by a cable, accessible only when a one-time key is inserted?

dougdrums
Feb 25, 2005
CLIENT REQUESTED ELECTRONIC FUNDING RECEIPT (FUNDS NOW)

Walh Hara posted:

That said, if I went to a job interview and somebody asked me the fibonacci question I'd be quite offended so I agree it's a silly interview problem.

I once offered the iterative form as a response and was told I was wrong ... good thing I didn't really need it ...

RICHUNCLEPENNYBAGS
Dec 21, 2010
Isn't the traditional improvement on the recursive version to implement a cache?

dougdrums
Feb 25, 2005
CLIENT REQUESTED ELECTRONIC FUNDING RECEIPT (FUNDS NOW)

RICHUNCLEPENNYBAGS posted:

Isn't the traditional improvement on the recursive version to implement a cache?

I think the idea is to memoize or use tail recursion, but at that point you can just load an ssd with a table of them. That is the solution, sequence tables as a service over http.

dougdrums fucked around with this message at 03:16 on Apr 18, 2016

baquerd
Jul 2, 2007

by FactsAreUseless
Found this great hiring guide: http://www.alexstjohn.com/WP/download/Recruiting%20Giants.pdf

Mr Chips
Jun 27, 2007
Whose arse do I have to blow smoke up to get rid of this baby?

That's a parody, isn't it?

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
alex st john is a giant turd shitheel but i cant find any way of reading "Potential money is worth more than actual money." that isnt satire

Analytic Engine
May 18, 2009

not the analytical engine

Suspicious Dish posted:

alex st john is a giant turd shitheel but i cant find any way of reading "Potential money is worth more than actual money." that isnt satire

I think he means it's more motivating for them to chase a raise/bonus then to be currently fairly paid.

Also lol at "5% raise by hopping jobs". I got 50% from my company counter-offering. That's his worst-case scenario.

ultrabay2000
Jan 1, 2010


After seeing this blog post I don't think he's joking, no.

Adbot
ADBOT LOVES YOU

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Suspicious Dish posted:

alex st john is a giant turd shitheel but i cant find any way of reading "Potential money is worth more than actual money." that isnt satire

He made millions off his Microsoft stock (where he helped make DirectX a thing) and his life has been entirely defined by those few years.

  • Locked thread