Having interviewed STEM job applicants I can say that while there is no shortage of STEM graduates, there is a shortage of good STEM graduates.
My company isn't even trying to underpay or offer shit benefits and they've already accepted that they won't be getting google and apple level talent. And yet still, candidate after candidate cannot answer simple questions.
The ones that can answer are typically swimming in offers and take whatever tickles their fancy.
Can you give examples? This kind of thing makes me curious
canny edge detection and building boxes, etc
The canny edge detection story is actually a good example. My company does computer vision, so every applicant for certain positions has taken a computer vision course and listed computer vision as a specialization for a post-graduate degree. So keep that in mind.
Canny edge detection is one of the basic, most commonly taught computer vision algorithms. Its an image transform that takes in a fully detailed photographic image and spits out another image that looks more like a line drawing. Its great for, as its name suggests, detecting edges. It lets a computer greatly cut down the information content of an image, and make the content left over invariant to lighting, shading, etc. It's typically taught in Image Processing or Computer Vision 101 type classes.
I asked an open-ended question of a candidate. "How would you find a cardboard box in an image of a cardboard box?" The question tests a variety of things, but it's very open to discussion. One candidate in their answer mentioned the canny edge detector, but the way they used it in their design seemed a little odd and skipped a lot of steps, so I asked them to go back and explain. They looked at me like I had just ripped their pants down, so I knew I was in for a treat.
Over the course of their explanation, it became clear that they didn't know what the canny edge detector was or what it did or what its inputs and outputs were. These are not hard questions. It takes in a photo, it spits out a line drawing. But they couldn't say it because they didn't know it. They just threw out the words and hoped I'd let them gloss over it. And I would have, if their usage had made any sense.
From there the interview went rapidly downhill. It was clear they didn't have any computer vision experience and they failed the basic C/C++ programming test too. And this is not uncommon. This is representative of about half of the people who make it through the screening process. These are people with nice GPAs and degrees from good institutions. It's really demoralizing.
I mean, if I'm ready canny edge right on wikipedia, it's a grayscale/bluring (reduce the number of tiny sharp edges?) image where they scan over the ints in the bitmap and check for something breaking a threshold between adjacent values, seems pretty straight forward.
If you were doing computer vision as a degree this seems like something you'd be doing every god damned day for research and projects to the point where it'd be second nature.
Is the C++ just like.. testing if you know for/if/else/variables or are you doing OOP, structs, bit packing, etc ?
Canny is a very specific implementation of that, one that was invented in the 70s and is always cited as the default / standard edge detection technique. But essentially yes. You're looking for gradient that exceeds a certain threshold. Yes is is used like every day.
C++ test is a little nitpicky, but it's nothing crazy. We ask about macros and the preprocessor, keywords like static. We ask about pre and post increment stuff, pointer questions, some basic "reimplement basic string parsing" stuff, one question that tests that the candidate can write a sane function definition for something that need to use dynamically allocated memory. I'd call it a middling C++ test. Goes beyond if/else and loops, but stops sort of advanced crazy shit like multiple inheritance or weird ass corner cases that would be mean to expect someone to know.
I thought the macro question is a little mean at first, but when I watched a few people reason through it, I was impressed with how readily it exposes the frauds.
It really is kind of crazy the kind of shit you can do with macros though.
You don't hardly even need to write c++ code, just do it all in the preprocessor macro language.
nooooo
the last decade of development in C++ has (among other things) been about adding shit so you never have to use macros again. constexpr etc...
Attacked by tweeeeeeees!
0
Options
ShivahnUnaware of her barrel shifter privilegeWestern coastal temptressRegistered User, Moderatormod
One of my friends was interviewing people for a devops type job and about 50% of the candidates couldn't even fizzbuzz
people with honest-to-god CS degrees couldn't even start to make up a 10 line program in pseudocode
You can't be fucking serious.
I have a CIS degree and I can do that.
I'll be honest. I don't know if I could either. But I can find tests to break any program over my goddamn knee.
I bet you could
input: a list of random ints with values between 1 and 100
output: for each number print "fizz" if it's (evenly) divisible by 3, "buzz" if it's divisible by 5, and "fizzbuzz" if divisible by both.
I keep wanting to write a joke overly complex way to do this that'd still work, but I'm having trouble actually thinking of any.
I guess you could do it by writing too many functions and passing shit around those.
0
Options
Powerpuppiesdrinking coffee in themountain cabinRegistered Userregular
One of my friends was interviewing people for a devops type job and about 50% of the candidates couldn't even fizzbuzz
people with honest-to-god CS degrees couldn't even start to make up a 10 line program in pseudocode
You can't be fucking serious.
I have a CIS degree and I can do that.
I'll be honest. I don't know if I could either. But I can find tests to break any program over my goddamn knee.
I bet you could
input: a list of random ints with values between 1 and 100
output: for each number print "fizz" if it's (evenly) divisible by 3, "buzz" if it's divisible by 5, and "fizzbuzz" if divisible by both.
Yeah like the point is that it tests for:
Do you know how to separate out shit into some conditional format?
Do you know how to test for a simple mathematical property?
One of my friends was interviewing people for a devops type job and about 50% of the candidates couldn't even fizzbuzz
people with honest-to-god CS degrees couldn't even start to make up a 10 line program in pseudocode
You can't be fucking serious.
I have a CIS degree and I can do that.
I'll be honest. I don't know if I could either. But I can find tests to break any program over my goddamn knee.
I bet you could
input: a list of random ints with values between 1 and 100
output: for each number print "fizz" if it's (evenly) divisible by 3, "buzz" if it's divisible by 5, and "fizzbuzz" if divisible by both.
I keep wanting to write a joke overly complex way to do this that'd still work, but I'm having trouble actually thinking of any.
I guess you could do it by writing too many functions and passing shit around those.
Typedefs and the other c++ thing like that can be used to do it with like the words of a poem or something
I very much agree with what Donkey Kong wrote above. About half of candidates that get through all the layers of screening to even get to an interview seem unable to answer basic questions about things they chose to list on their resume. If someone doesn't know X that's usually not a problem But don't then go and say you know X on your fucking resume.
I want examples so that I can feel cool for knowing things that other people don't
oh for example what is the difference between a value type and a reference type (or struct vs class) in C#. Why would you use a List<> vs a Dictionary<>. (for someone who claimed to know C#)
I feel like the latter is a thing anyone who claims to know anything about algorithms or data structures should be able to answer without any more context :P
One of my friends was interviewing people for a devops type job and about 50% of the candidates couldn't even fizzbuzz
people with honest-to-god CS degrees couldn't even start to make up a 10 line program in pseudocode
You can't be fucking serious.
I have a CIS degree and I can do that.
I'll be honest. I don't know if I could either. But I can find tests to break any program over my goddamn knee.
I bet you could
input: a list of random ints with values between 1 and 100
output: for each number print "fizz" if it's (evenly) divisible by 3, "buzz" if it's divisible by 5, and "fizzbuzz" if divisible by both.
for each i in inputlist
if i mod 3 == 0
print fizz
if i mod 5 ==0
print buzz
print newline
next
Okay, yeah, that's dumb easy if you've done any programming ever.
Well, you run into repeated newlines for non-divisible things, but yes.
0
Options
jungleroomxIt's never too many graves, it's always not enough shovelsRegistered Userregular
One of my friends was interviewing people for a devops type job and about 50% of the candidates couldn't even fizzbuzz
people with honest-to-god CS degrees couldn't even start to make up a 10 line program in pseudocode
You can't be fucking serious.
I have a CIS degree and I can do that.
I'll be honest. I don't know if I could either. But I can find tests to break any program over my goddamn knee.
I bet you could
input: a list of random ints with values between 1 and 100
output: for each number print "fizz" if it's (evenly) divisible by 3, "buzz" if it's divisible by 5, and "fizzbuzz" if divisible by both.
for each i in inputlist
if i mod 3 == 0
print fizz
if i mod 5 ==0
print buzz
print newline
next
Okay, yeah, that's dumb easy if you've done any programming ever.
Yup.
If you can't do that shit then just hang it up. I don't even care about syntax, that's something you can learn as you go.
Having interviewed STEM job applicants I can say that while there is no shortage of STEM graduates, there is a shortage of good STEM graduates.
My company isn't even trying to underpay or offer shit benefits and they've already accepted that they won't be getting google and apple level talent. And yet still, candidate after candidate cannot answer simple questions.
The ones that can answer are typically swimming in offers and take whatever tickles their fancy.
Can you give examples? This kind of thing makes me curious
canny edge detection and building boxes, etc
The canny edge detection story is actually a good example. My company does computer vision, so every applicant for certain positions has taken a computer vision course and listed computer vision as a specialization for a post-graduate degree. So keep that in mind.
Canny edge detection is one of the basic, most commonly taught computer vision algorithms. Its an image transform that takes in a fully detailed photographic image and spits out another image that looks more like a line drawing. Its great for, as its name suggests, detecting edges. It lets a computer greatly cut down the information content of an image, and make the content left over invariant to lighting, shading, etc. It's typically taught in Image Processing or Computer Vision 101 type classes.
I asked an open-ended question of a candidate. "How would you find a cardboard box in an image of a cardboard box?" The question tests a variety of things, but it's very open to discussion. One candidate in their answer mentioned the canny edge detector, but the way they used it in their design seemed a little odd and skipped a lot of steps, so I asked them to go back and explain. They looked at me like I had just ripped their pants down, so I knew I was in for a treat.
Over the course of their explanation, it became clear that they didn't know what the canny edge detector was or what it did or what its inputs and outputs were. These are not hard questions. It takes in a photo, it spits out a line drawing. But they couldn't say it because they didn't know it. They just threw out the words and hoped I'd let them gloss over it. And I would have, if their usage had made any sense.
From there the interview went rapidly downhill. It was clear they didn't have any computer vision experience and they failed the basic C/C++ programming test too. And this is not uncommon. This is representative of about half of the people who make it through the screening process. These are people with nice GPAs and degrees from good institutions. It's really demoralizing.
I mean, if I'm ready canny edge right on wikipedia, it's a grayscale/bluring (reduce the number of tiny sharp edges?) image where they scan over the ints in the bitmap and check for something breaking a threshold between adjacent values, seems pretty straight forward.
If you were doing computer vision as a degree this seems like something you'd be doing every god damned day for research and projects to the point where it'd be second nature.
Is the C++ just like.. testing if you know for/if/else/variables or are you doing OOP, structs, bit packing, etc ?
Canny is a very specific implementation of that, one that was invented in the 70s and is always cited as the default / standard edge detection technique. But essentially yes. You're looking for gradient that exceeds a certain threshold. Yes is is used like every day.
C++ test is a little nitpicky, but it's nothing crazy. We ask about macros and the preprocessor, keywords like static. We ask about pre and post increment stuff, pointer questions, some basic "reimplement basic string parsing" stuff, one question that tests that the candidate can write a sane function definition for something that need to use dynamically allocated memory. I'd call it a middling C++ test. Goes beyond if/else and loops, but stops sort of advanced crazy shit like multiple inheritance or weird ass corner cases that would be mean to expect someone to know.
I thought the macro question is a little mean at first, but when I watched a few people reason through it, I was impressed with how readily it exposes the frauds.
It really is kind of crazy the kind of shit you can do with macros though.
You don't hardly even need to write c++ code, just do it all in the preprocessor macro language.
nooooo
the last decade of development in C++ has (among other things) been about adding shit so you never have to use macros again. constexpr etc...
Yeah I know it.
Sometimes if I download some code and I see it's heavy in macros I just sigh, close it, and pretend like I never looked at it.
not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
50% of being able to fizzbuzz is basic programming knowledge
the other 50% is knowing that the modulo operator is a thing that exists
You could probably also do it with some abomination involving floats and casting back and forth
Yeah I was literally just thinking like oh shit how do I test for a remainder again for a second and then remembered good old buddy modulo.
Although also like... if someone did a fizzbuzz without modulo that was just like "call the function DivisibleByFive" I would say that's not too ridiculous as an answer.
One of my friends was interviewing people for a devops type job and about 50% of the candidates couldn't even fizzbuzz
people with honest-to-god CS degrees couldn't even start to make up a 10 line program in pseudocode
You can't be fucking serious.
I have a CIS degree and I can do that.
I'll be honest. I don't know if I could either. But I can find tests to break any program over my goddamn knee.
I bet you could
input: a list of random ints with values between 1 and 100
output: for each number print "fizz" if it's (evenly) divisible by 3, "buzz" if it's divisible by 5, and "fizzbuzz" if divisible by both.
I keep wanting to write a joke overly complex way to do this that'd still work, but I'm having trouble actually thinking of any.
I guess you could do it by writing too many functions and passing shit around those.
I had one that put the ascii for "fizzbuzz" into a byte array and read out of it starting different places using bizarre pointer arithmetic that worked out to be the right place for each integer used.
Thousands of hot, local singles are waiting to play at bubbulon.com.
+7
Options
YamiNoSenshiA point called ZIn the complex planeRegistered Userregular
I haven't written a line of code outside an in-house test app in nearly a decade.
0
Options
jungleroomxIt's never too many graves, it's always not enough shovelsRegistered Userregular
Fizzbuzz will at least tell you you have a programmer of some variety if they can solve it.
Depending on how elegant it is, and if they took longer than 30 minutes, will tell you if they're a natural programmer, or just someone who studied what fizzbuzz was the night before.
not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
0
Options
TTODewbackPuts the drawl in ya'llI think I'm in HellRegistered Userregular
Yeah about a year ago I was in the position of firing out fairly bullshit-filled resumes. I was going for data science (lel) but easily could have been shooting out machine vision resumes since that's a bit closer to what I actually know how to do. Very unclear if I'd immediately get spotted as a fraud, but I 100% understand why you would put that sort of thing on your resume--you are a stem PhD with an expertise in something entirely useless and non-job relevant, you want your resume to be looked at, so you put in some keywords and figure you'll learn them on the job.
I am fearful I am going to get destroyed in my next job interview
I was like, huh I can't say what static is
then I looked it up and it's like oh yeah, you can call the function without first having an object of that type
and if it's like a static variable, it's basically global across all instances of that object
and you can't create an interface for static shit so that's a knock against it in the test system we use (google mocks/tests)
yeah I knew those three things, but I had to do a google first to get my bearings : (
Also if a function or variable are static at the top level, outside an object, that means they can only be seen by code in that file.
in C or C++ yeah. Means something different in C#. And in Javascript it means a local variable whose value is kept around the next time you call the same function.
Attacked by tweeeeeeees!
+1
Options
ShivahnUnaware of her barrel shifter privilegeWestern coastal temptressRegistered User, Moderatormod
One of my friends was interviewing people for a devops type job and about 50% of the candidates couldn't even fizzbuzz
people with honest-to-god CS degrees couldn't even start to make up a 10 line program in pseudocode
You can't be fucking serious.
I have a CIS degree and I can do that.
I'll be honest. I don't know if I could either. But I can find tests to break any program over my goddamn knee.
I bet you could
input: a list of random ints with values between 1 and 100
output: for each number print "fizz" if it's (evenly) divisible by 3, "buzz" if it's divisible by 5, and "fizzbuzz" if divisible by both.
I keep wanting to write a joke overly complex way to do this that'd still work, but I'm having trouble actually thinking of any.
I guess you could do it by writing too many functions and passing shit around those.
I had one that put the ascii for "fizzbuzz" into a byte array and read out of it starting different places using bizarre pointer arithmetic that worked out to be the right place for each integer used.
Fizzbuzz will at least tell you you have a programmer of some variety if they can solve it.
Depending on how elegant it is, and if they took longer than 30 minutes, will tell you if they're a natural programmer, or just someone who studied what fizzbuzz was the night before.
I think that with a year actually working a bit more in computer vision, I probably could do ok in a machine vision question like 'recognize [anything]', although what I would say instead is 'do transferred learning from a CNN developed for imagenet' -- although then if I were asked 'yeah ok, so how would you do that' I would say 'I would fucking google it/ask my colleagues'
I am fearful I am going to get destroyed in my next job interview
I was like, huh I can't say what static is
then I looked it up and it's like oh yeah, you can call the function without first having an object of that type
and if it's like a static variable, it's basically global across all instances of that object
and you can't create an interface for static shit so that's a knock against it in the test system we use (google mocks/tests)
yeah I knew those three things, but I had to do a google first to get my bearings : (
Also if a function or variable are static at the top level, outside an object, that means they can only be seen by code in that file.
in C or C++ yeah. Means something different in C#. And in Javascript it means a local variable whose value is kept around the next time you call the same function.
Static is one of those things I need to go lookup, without fail, every time I switch languages.
not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
+3
Options
jungleroomxIt's never too many graves, it's always not enough shovelsRegistered Userregular
Now I've got people trying to log in under the name "facebook".
Posts
Also if a function or variable are static at the top level, outside an object, that means they can only be seen by code in that file.
nooooo
the last decade of development in C++ has (among other things) been about adding shit so you never have to use macros again. constexpr etc...
I keep wanting to write a joke overly complex way to do this that'd still work, but I'm having trouble actually thinking of any.
I guess you could do it by writing too many functions and passing shit around those.
Study first!
Yeah like the point is that it tests for:
Do you know how to separate out shit into some conditional format?
Do you know how to test for a simple mathematical property?
"We now call to order the first meeting of Vanilla Mayonnaise Cream Flour."
Look Jacob is like some bizarre pedophile, so Team Edward.
pleasepaypreacher.net
the alt-death group God hates Fangs has partnered with them a few times.
You could probably also do it with some abomination involving floats and casting back and forth
Typedefs and the other c++ thing like that can be used to do it with like the words of a poem or something
Monday is a federal holiday.
I had that problem so I took tomorrow off.
hmm idk what that means, 'at the top level, outside an object'
I feel like the latter is a thing anyone who claims to know anything about algorithms or data structures should be able to answer without any more context :P
I feel vindicated though.
pleasepaypreacher.net
Well, you run into repeated newlines for non-divisible things, but yes.
Yup.
If you can't do that shit then just hang it up. I don't even care about syntax, that's something you can learn as you go.
Modulo, son. Them remainders gonna help a lot.
(was gonna go all out but fuck it)
Yeah I know it.
Sometimes if I download some code and I see it's heavy in macros I just sigh, close it, and pretend like I never looked at it.
Yeah I was literally just thinking like oh shit how do I test for a remainder again for a second and then remembered good old buddy modulo.
Although also like... if someone did a fizzbuzz without modulo that was just like "call the function DivisibleByFive" I would say that's not too ridiculous as an answer.
I had one that put the ascii for "fizzbuzz" into a byte array and read out of it starting different places using bizarre pointer arithmetic that worked out to be the right place for each integer used.
If you set an array using a do while loop...
*smacks self*
Edward is like 100 years old and is going after a 17 year old.
They are both bizarre pedophiles
You know how your main function doesn't belong to an object? It's just a bare function in a C++ file? Like that.
Depending on how elegant it is, and if they took longer than 30 minutes, will tell you if they're a natural programmer, or just someone who studied what fizzbuzz was the night before.
ME MAYBE
Her soul is older than she is captain, god TRUE LOVE TRANSCENDS BARRIERS!
pleasepaypreacher.net
in C or C++ yeah. Means something different in C#. And in Javascript it means a local variable whose value is kept around the next time you call the same function.
Oh man this is amazing
yeah
the "no true scotch man" fallacy.
haha what
Static is one of those things I need to go lookup, without fail, every time I switch languages.
Oi...
pleasepaypreacher.net