Fuck You, I Quit - Hiring Is Broken (article)
-
He only knows Javascript and is surprised when Google doesn't want him? Oh hipsters.
-
@Onyx said in Fuck You, I Quit - Hiring Is Broken (article):
@blakeyrat our wonderful country is considering bringing it back. As in, 58% (or something close to that) of polled public is all for it because, get this, it teaches young men such valuable lessons like making their bed or throwing dirty socks into the dirty laundry basket. Yes, really. Because parents can't accomplish that these days any more apparently, so the army has to do it. At age 18.
Also: "I had to go through that shit, why do you get to get off scott free?"
-
@dse said in Fuck You, I Quit - Hiring Is Broken (article):
blackhoe
Backhoe? Or Black hole?
Either way, your mom's weird, man.
-
@cartman82 Hipster tears ... mmmmmm ... delicious
-
@blakeyrat said in Fuck You, I Quit - Hiring Is Broken (article):
the giant Brony cartoon on his GitHub page probably isn't exactly screaming out, "hire me!" And he's obsessed with people visiting his GitHub page. Maybe... maybe rethink that particular strategy?
VICTIM BLAMING! Heh.
-
@Arantor said in Fuck You, I Quit - Hiring Is Broken (article):
One thing I would point out, he is talking front end dev.
You forgot the quotes around "dev". Obligatory. ;)
-
@Onyx said in Fuck You, I Quit - Hiring Is Broken (article):
Yes, really. Because parents can't accomplish that these days any more apparently, so the army has to do it. At age 18.
I've been trying to figure out where to post a link. Now that you've said this, a reply to your statement seems perfect:
-
@cartman82 said in Fuck You, I Quit - Hiring Is Broken (article):
So probably someone who can do frontend at his level, AND solve programming algorithm puzzles.
Or they hired someone who flat-out said, "hey I can do this puzzle if you give me a few hours, but I'm not sure it's a good indicator of how I can work for you, let me tell you about when I did X..."
i.e. has people skills.
-
@Yamikuronue said in Fuck You, I Quit - Hiring Is Broken (article):
Exactly! Thank you for saying it so succinctly, it's early in the morning for me and I'm tired
My value to my company is:
- I have a sense of pride in my work (that apparently is utterly missing in 99% of coders) (a.k.a. I actually test my shit before handing it over to QA)
- I know the problem domain of US healthcare insurance rules inside and out, which is a huge time investment the company would lose if I left
- I get shit done
- I do the shit work nobody else wants to do, like writing documentation
Based on the standards of Hacker News, I'm probably the worst developer in this company.
So anyway. The point is I guess the coding test is just to weed-out the real scammers; the people who say they've worked in C# for 5 years yet can't describe the term "interface" to you. Everything else is crap. If the candidate passes the coding test, and they seem smart and you see evidence that they get shit done, hire them.
In 99.9% of problem domains, the candidate's ability to write a depth-first search is utterly useless.
-
Flipped through his Github and LinkedIn, looks pretty light on actual experience and very heavy on Javascript and related technologies. Javascript has some cool stuff going on, but it just isn't that big outside of trendy startups. Maybe he should know that there's a lot more work being done in C#, Java, Ruby, Python, etc and he should have some solid experience in at least some other language?
Starting a few project on Github is cool and all, but it doesn't show a lot about whether you can work on ugly legacy codebases in uncool languages that so many companies have, work with other companies and teams whose requirements and technical preferences don't match up with yours, basically get shit done in a real-world scenario where you can't always have everything your way and things aren't usually neat and clean.
I'm getting kind of a prima donna vibe from him - I have a few dozen kinda popular Github projects in Javascript only, so clearly I'm a total badass and should be hired anywhere without any interview, despite under 2 years of professional experience on his LinkedIn. What are the odds than, when asked to do something he didn't have memorized like a BFS, he flipped out and got pissed at them for daring to ask him that instead of politely saying that he didn't remember but would be happy to work through finding a solution with them?
-
@Onyx said in Fuck You, I Quit - Hiring Is Broken (article):
Dunno man, I know to avoid Initrode thanks to the interwebz...
I've always thought it would be pretty cool to work at Contoso Ltd.
-
@blakeyrat said in Fuck You, I Quit - Hiring Is Broken (article):
the candidate's ability to write a depth-first search is utterly useless.
Yeah, but you forgot one crucial point opf value:
- You have a fucking brain and can figure out how to solve problems
I've seen devs who need everything spelled out for them before they can write software. The more complex code tasks are usually about your ability to a) solve problems and b) talk about solving problems.
-
@Yamikuronue I covered that under point 3. I either figure it out, or if I can't in a reasonable amount of time, ask the guy who knows.
Yes, it's a basic skill, but it puts you heads and shoulders above a lot of developers because they'd rather spent 47 hours dicking away at an IDE (with 4-5 back-and-forths with QA) than have a 1 hour conversation and spend 3 hours of coding the correct behavior from the start.
-
@blakeyrat Right, exactly. So if I give a candidate a test like "code a breadth-first search", I'm not asking if they remember shit from college, I'm asking if they can work through a problem in front of me. I don't care if the answer is right or optimized or whatnot, I care if they can think about a problem without spending 47 hours dicking away at an IDE.
-
@Yamikuronue said in Fuck You, I Quit - Hiring Is Broken (article):
I did not feel like they were prepared for an interview, as they started asking me for questions based on what I said earlier
How dare they!
That's the best thing they could possibly do for him, if he actually knew what he was talking about. I wish that interviewers had actually listened to what I said in the past.
@Yamikuronue said in Fuck You, I Quit - Hiring Is Broken (article):
What the fuck?! You’ve got to be shitting me. How many people can actually write BFS on the spot
without preparing for it in advance?
Now you're just fucking with me, right? This is the easiest algorithm they could possible ask you to implement on the spot.
@Arantor said in Fuck You, I Quit - Hiring Is Broken (article):
Front end dev
OK, that explains it a bit, but still: BFS? SRSLY?
@WPT said in Fuck You, I Quit - Hiring Is Broken (article):
I had gone through mandatory conscription.
Plus, I've had a pretty shitty paper route for a few years (effective salary around $1/h).
-
@blakeyrat said in Fuck You, I Quit - Hiring Is Broken (article):
In 99.9% of problem domains, the candidate's ability to write a depth-first search is utterly useless.
True, but if you need to check whether a candidate can write basic algorithms by himself, I can't think of a better task. If you know what the acronym means, you already know how to implement the algorithm (unless you can't program), no need to have anything memorized.
-
This post is deleted!
-
@Vaire fuck you, you don't get to devalue me as a dev
-
@Arantor said in Fuck You, I Quit - Hiring Is Broken (article):
@Vaire fuck you, you don't get to devalue me as a dev
Can I devalue myself? I think I am depreciating :(
-
@Yamikuronue We're in violent agreement. I made that point in like my second post to this thread.
-
@Vaire if you want to, knock yourself out, but (insert Pinocchio voice) I'm a real dev!
-
@asdf said in Fuck You, I Quit - Hiring Is Broken (article):
True, but if you need to check whether a candidate can write basic algorithms by himself, I can't think of a better task.
"write a depth-first search" isn't a task; it's an implementation. It's the kind of dumb shit clueless teachers have students do at school.
A task is something like, "here's a CSV file with 48 items, write an output CSV file with those items sorted by the dollar value in the 4th column". That's the kind of thing people do at a job.
I 100% agree with giving coding tests, but test tasks, not trivia.
-
@blakeyrat said in Fuck You, I Quit - Hiring Is Broken (article):
A task is something like, "here's a CSV file with 48 items, write an output CSV file with those items sorted by the dollar value in the 4th column". That's the kind of thing people do at a job.
That's why I wrote:
if you need to check whether a candidate can write basic algorithms
i.e. assuming he'll have to write library code, which might be a requirement for a job at Google, instead of implementing business logic.
-
@blakeyrat said in Fuck You, I Quit - Hiring Is Broken (article):
@Yamikuronue We're in violent agreement. I made that point in like my second post to this thread.
"we're in violent agreement" I love that!
YOINK!
-
@ufmace said in Fuck You, I Quit - Hiring Is Broken (article):
I'm getting kind of a prima donna vibe from him - I have a few dozen kinda popular Github projects in Javascript only, so clearly I'm a total badass and should be hired anywhere without any interview, despite under 2 years of professional experience on his LinkedIn. What are the odds than, when asked to do something he didn't have memorized like a BFS, he flipped out and got piss
I was actually surprised when he got around to mentioning that he was in his 20s. The way he described himself it seemed like he would have been older.
-
@boomzilla And with more than 2 years experience. Who is giving people like this such superiority complexes?! I don't understand why this kind of behaviour is so common.
-
@asdf said in Fuck You, I Quit - Hiring Is Broken (article):
If you know what the acronym means, you already know how to implement the algorithm
I don't have a CS degree. I've never seen or thought about a BFS. I could probably work it out but I certainly don't already know it.
-
@asdf said in Fuck You, I Quit - Hiring Is Broken (article):
BFS? SRSLY?
I'll admit I wouldn't know how to do this out the gate. I don't regularly implement search algorithms, and the terminology used here isn't the most obvious.
If I'm going by name alone, I would think it's some sort of method whereby you sort the items by width, then take the items that match the wanted width and match from those....
-
@Tsaukpaetra said in Fuck You, I Quit - Hiring Is Broken (article):
the terminology used here isn't the most obvious
I agree that just the name is not very descriptive. (The problem is especially visible in science, where things are named after "the guy who worked on this for the first time").
The task for which BFS is the answer is:
In a labyrinth on a square grid (like pacman level), find the shortest path between 2 points.
-
I fucking worked on a rice farm. I'm a geek, working with these guys who could bench me.
Those rice plants will tear you up, and I was tired of looking like I went through a blender with dull blades. So, I show up in windpants, long sleeve sweater, hat, towel on my neck, gloves, and rubber boots. I looked like iron man made a suit out of gym clothes.
They looked at me, smirked, and then we carried on. I never met people who didn't less shits about who they worked with.
So, yeah, no one deserves anything.
I've met more people like Good Will Hunting, than an arrogant bastard who actually knew what the hell he was doing.
-
@Yamikuronue said in Fuck You, I Quit - Hiring Is Broken (article):
so they can evaluate your problem-solving skills
Except they don't do that.
They look to see if you can get the boiler plate answer with the least amount of effort.
They don't look for problem solving capacity.
They use these problems, but care about the result only, which defeats the point of the problem. I can come up with the perfect answer if I have a search engine. Do you want me to ask your own site how to solve the problem, or do you care about how I solve the problem.
This is why coding questions suck.
I can understand being frustrated at solving them when you have some work under your belt, but I don't act smug in the interview like I won't do it.
@Yamikuronue said in Fuck You, I Quit - Hiring Is Broken (article):
Interviews shouldn’t be one-sided battles where a candidate must “prove” themselves in order to get hired.
That's why you make it NOT one-sided by giving a damn about the company and asking them how they would solve the problem once you took a shot at it.
There's my answer. What would you have done differently?
Would be unexpected and put them in the spotlight. People like to talk about themselves. You want them thinking, "He's just like the best parts about me. I like him." When really they think that because all they did was talk about themselves.
@boomzilla said in Fuck You, I Quit - Hiring Is Broken (article):
All of his interview experiences sound awful (granted we've only heard one side). I'm sure I'd fail them all. It's been a while since I've been on either side of an interview, but interviewing like that would never occur to me.
That's been every one of my experiences.
@Yamikuronue said in Fuck You, I Quit - Hiring Is Broken (article):
Nobody ever. BFS doesn't even really exist. It's the hardest problem you can possibly give, as no answer exists.
You know how to tell a real programmer?
My knee-jerk reaction was, "Oh really..... let's go kill this shit!"
Then the logic side kicked in and thought, "if everyone else gave it a shot... then what..."
Then the kid inside me said, "Fuck them.... Let's go."
That's how you tell a real programmer.
-
@Adynathos said in Fuck You, I Quit - Hiring Is Broken (article):
The task for which BFS is the answer is:
In a labyrinth on a square grid (like pacman level), find the shortest path between 2 points.And if you want the longest path, use DFS :P
-
@anonymous234 Except.... it's a maze.
DFS may never finish.
(of course, you could keep track of what nodes you visited....)
But, assuming an infinite maze, you'd never finish, while a BFS could finish. A BFS would behave like a bomb going off, while a DFS would behave like a mouse running off in a straight line, and then returning to run a different line.
-
@xaade said in Fuck You, I Quit - Hiring Is Broken (article):
you could keep track of what nodes you visited
You need to do that in both BFS and DFS.
They are quite similar, the difference is what type of queue you use for the nodes to visit:
LIFO -> DFS
FIFO -> BFS
heap -> Dijkstra
-
@xaade Make sure the direction to take is random instead of deterministic, then it will almost surely find a path anyway.
Interesting mathematical fact: if it's an infinite board, it will still find a path sooner or later too, as long as it's a 2-dimensional board. If it's 3-dimensional, the probability of it ever succeeding is only 34%, and it gets lower the more dimensions you add [1].
-
@Adynathos said in Fuck You, I Quit - Hiring Is Broken (article):
You need to do that in both BFS and DFS.
Strictly, you only need to do it when you're not traversing a DAG. With a DAG, it's trivial to ensure that the traversal strategy terminates (as you can guarantee that there are no loops); tracking what you've seen is then just an efficiency measure.
-
@dkf Only if you're traversing a tree. If you're traversing a DAG, you may still visit a node twice if you do not track visitations.
-
@PleegWat I know, I know. With DAGs, seen-node tracking is an efficiency measure, not a correctness measure; you'll traverse some nodes several times, but always a finite number (depending on the number of paths that reach a node, which might be pretty large on some DAGs). With a general graph on the other hand, tracking what you've seen is a correctness measure, as otherwise you can't prevent loops and will get stuck.
-
@dkf I might be off on terminology. True, with a DAG you don't need to track to prevent infinite loops, but depending on what you're doing it may still be incorrect to process the same node multiple times.
For example, if you're aggregating some value over all nodes, it is incorrect to add the same node to the total multiple times.
-
@PleegWat said in Fuck You, I Quit - Hiring Is Broken (article):
For example, if you're aggregating some value over all nodes, it is incorrect to add the same node to the total multiple times.
Then you're using a different sort of visitor to what I was thinking of. In practice, you often care not just about the node but the way in which you got to it, and in that case you can't optimise the way you say. It's all rather algorithm-specific…
-
Oh, it's definitely all very algorithm-dependent. But that also goes for depth-first vs. breath-first; it all depends on what you're doing.
-
One of these days I might implement either BFS or DFS in a legitimate use case in PHP. 13 years and counting...
-
@PleegWat said in Fuck You, I Quit - Hiring Is Broken (article):
Oh, it's definitely all very algorithm-dependent. But that also goes for depth-first vs. breath-first; it all depends on what you're doing.
I don't know about you, but being able to breathe is definitely among the first of a list of things all people ought to be able to do.
-
@Rhywden there are plenty of "programmers" for whom I would encourage "depth" before "breath" since their contributions to code are sufficiently full of shit that they have to dig through it every time to get to anything useful. If they go truly depth first, breathing might be a secondary consideration they stop doing.
-
@anonymous234 said in Fuck You, I Quit - Hiring Is Broken (article):
Interesting mathematical fact: if it's an infinite board, it will still find a path sooner or later too,
What if the first pathway it traverses is infinite in that one direction?
-
@Arantor I had to implement DFS in a winforms hackenstine enterprisey.
Stupid app devs wanted the grid control to act like excel...
-
@xaade sure, I'm not saying it doesn't happen. I'm just saying that in my experience it hasn't happened yet and I'm closer to the guy from the OP in practical terms than a lot of people, because I'm primarily a web dev.
Web dev rarely requires hard CS skills, we usually fart in CSS instead because playing with pretty colours is more our thing, as well as torturing users with shitty UX.
-
@Arantor said in Fuck You, I Quit - Hiring Is Broken (article):
as well as torturing users with shitty UX
Tell me about it.
I was trying to find a product on Target's site, using the "search in store" feature.
I had to change the store I was looking in. The popup to do that showed all the stores in my area nicely, but didn't display the addresses. When you clicked on them to see the address, that loaded in a separate page. So if you selected the wrong one, screw you, start all over.
The reason I clicked on more than one?
Because the store names were conveniently.
"Houston NW"
"Willowbrook"
"Steeplechase"One of those is a region, one a town, and one a road, all typically considered the same general location, mind you.
-
@Arantor said in Fuck You, I Quit - Hiring Is Broken (article):
I'm just saying that in my experience it hasn't happened yet and I'm closer to the guy from the OP in practical terms than a lot of people, because I'm primarily a web dev.
How often do you use a tree or graph datastructure? Hardly ever? Me neither, and mostly I do back-end work.
-
@dkf I've got directory trees in a couple of locations, and a single dependency graph which gets its nodes sorted.