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.
 
  • Post
  • Reply
lifg
Dec 4, 2000
<this tag left blank>
Muldoon
code:
sort_algorithm_pseudocode_for_interview:
  sorted_array = load_parameters()
  perform_miracle(sorted_array)
  return sorted_array

Adbot
ADBOT LOVES YOU

Mniot
May 22, 2003
Not the one you know

TooMuchAbstraction posted:

I may need to start explicitly asking candidates to use pseudocode. Usually I ask them to use whatever language they're most comfortable with, but sometimes that leads to a candidate deciding to do, say, manual string parsing in C. Which is a signal of a sort, but not really the kind I'm looking for when interviewing.

Good post/username combo. I think requiring pseudocode is not a great plan, but you could say "please use bison or some other parser-generator" or "please use a language with a decent regex library".

I'm doing SRE interviews and a lot of candidates want to solve literally everything with a bash script. Most of the time, as you say, this is enough of a signal. (I think "this is not the candidate you want to hire" is exactly the signal you should be looking for when hiring.) But occasionally they're just being a bit too lazy/clever and will do a nice job in Python or whatever when prompted. (I tell them "anything except bash". One day someone will respond with csh.)

Jose Valasquez
Apr 8, 2005

Lord Of Texas posted:

Not the OP but I'm in the US working for a Fortune 100 company, have been interviewed many times as well as given many interviews. I've never been asked, nor asked anyone, to write anything more than psuedocode for an interview.

I do ask for candidates to bring code they've worked on in the past (something they have the rights to of course) and have them walk me through it like they're sharing with a teammate. Then I ask questions about why they made a particular design choice etc.

I find that emulates a real day-to-day situation more accurately than on-the-spot coding, and it does a better job of weeding out the non-fizz-buzzers than just high-level conversation.

What do you do for candidates that don't code in their free time

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Mniot posted:

Good post/username combo. I think requiring pseudocode is not a great plan, but you could say "please use bison or some other parser-generator" or "please use a language with a decent regex library".

I'm doing SRE interviews and a lot of candidates want to solve literally everything with a bash script. Most of the time, as you say, this is enough of a signal.
Well, the thing is, sometimes I'm brought on to do algorithms interviews for people who normally do low-level programming. Being an expert in C and useless at other languages is fine for that kind of thing! But I really don't want to see char* in an interview. My questions are not questions about replicating, or trying to go without, the last 40 years' worth of advances in text processing.

JawnV6
Jul 4, 2004

So hot ...

TooMuchAbstraction posted:

Well, the thing is, sometimes I'm brought on to do algorithms interviews for people who normally do low-level programming. Being an expert in C and useless at other languages is fine for that kind of thing! But I really don't want to see char* in an interview. My questions are not questions about replicating, or trying to go without, the last 40 years' worth of advances in text processing.
I think you should be saying more words at the beginning if you routinely go through the phone screen, arrange the time and effort for an onsite, all for you to watch them irrevocably faceplant in the first 5 minutes on language selection. Exactly how many candidates have you rejected on this basis?

Jose Valasquez posted:

What do you do for candidates that don't code in their free time
Yeah I have a decade or two of experience for major tech companies and have reams of non-public code. I think it's supposed to be this inclusive push away from pure whiteboarding and onto something without those traditional pressures, but I still see it as "yo, code on your off hours too."

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

JawnV6 posted:

I think you should be saying more words at the beginning if you routinely go through the phone screen, arrange the time and effort for an onsite, all for you to watch them irrevocably faceplant in the first 5 minutes on language selection. Exactly how many candidates have you rejected on this basis?

I don't reject them on the basis of language choice. Like I said, it's a signal of sorts but not really a useful one. What I really want to see is someone who can come up with a workable algorithm, which requires only the ability to talk about loops, conditionals, data structures, etc; nothing specific to language choice. The coding is secondary, really. Someone who can come up with a solid algorithm but then runs into trouble because they made a bad language choice will still pass the interview, they'll just take long enough that I probably won't have the chance to really plumb the depths of their capabilities. So someone that might be a "holy poo poo hire this person ASAP" might end up just being a "they clearly understand what they're doing and they did a decent job." And someone who is "they're basically OK, came up with a workable algorithm and coded it out" becomes "they're basically OK, came up with a workable algorithm but ran out of time implementing it."

What has happened a few times is that I'll get the combination of bad language choice with "immediately started writing a for loop before they'd even figured out how they were going to solve the problem." If you do that in an expressive language, you should (hopefully!) fairly quickly figure out that there's some subtleties in the problem that you need to address, so you can back up and deal with those. If you're in a language like C, though, you can spend so much time tediously writing out boilerplate / dealing with limited data structures that by the time you figure out your approach is flawed you won't have time to fix it. I'm still trying to figure out how to head that off without giving them enough hints that my evaluation is thrown off.

In any case, my interview is only one of many, and my evaluation will include any appropriate weasel words like "I had the last interview of the day; candidate seemed tired/nervous; we spent the first five minutes going to the restroom".

Mniot
May 22, 2003
Not the one you know
If you're happy to hire a candidate who can only use C then it sounds like your interview question, which is terrible when done with C, is a bad interview question.

There's lots of algorithms questions that work great in C. Ordered insertion into a linked list? Write a regex matcher for a simplified regex language? I donno. What kind of algorithm knowledge are you trying to test for?

Mao Zedong Thot
Oct 16, 2008


Mniot posted:

Good post/username combo. I think requiring pseudocode is not a great plan, but you could say "please use bison or some other parser-generator" or "please use a language with a decent regex library".

I'm doing SRE interviews and a lot of candidates want to solve literally everything with a bash script. Most of the time, as you say, this is enough of a signal. (I think "this is not the candidate you want to hire" is exactly the signal you should be looking for when hiring.) But occasionally they're just being a bit too lazy/clever and will do a nice job in Python or whatever when prompted. (I tell them "anything except bash". One day someone will respond with csh.)

Lol at pretending SREs write anything other than golang or bash.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
It's definitely a bad fit if the candidate chooses to use C, but it's rare to see a candidate that only lists C on their resume. And also pretty rare to see candidates that don't list either C or C++, for that matter. So I can't reliably choose an interview question based on the resume alone. I guess I could walk into the interview with two questions prepped, ask the candidate what language they use, then choose a question accordingly, but I honestly haven't felt like it was that big of a problem. :shrug:

Algorithms interviews are generally "I want to see how you approach problems that you almost certainly haven't seen before." This isn't about being able to regurgitate Dijkstra's algorithm on command, or knowing how to use dynamic programming. My favored question can fairly easily be solved without anything more complicated than a list. It's "here's a problem, there's several valid ways to solve it, what are you going to do and more importantly why?" That's why I emphasized that good candidates will be able to come up with a convincing solution before they start coding, and that the actual code is secondary. It's also why the lead-off of this conversation was me musing that maybe I should tell all candidates that I want them to write in pseudocode, in an attempt to remove "language of choice" as a variable in the interview process.

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

TooMuchAbstraction posted:

It's definitely a bad fit if the candidate chooses to use C, but it's rare to see a candidate that only lists C on their resume. And also pretty rare to see candidates that don't list either C or C++, for that matter. So I can't reliably choose an interview question based on the resume alone. I guess I could walk into the interview with two questions prepped, ask the candidate what language they use, then choose a question accordingly, but I honestly haven't felt like it was that big of a problem. :shrug:

Algorithms interviews are generally "I want to see how you approach problems that you almost certainly haven't seen before." This isn't about being able to regurgitate Dijkstra's algorithm on command, or knowing how to use dynamic programming. My favored question can fairly easily be solved without anything more complicated than a list. It's "here's a problem, there's several valid ways to solve it, what are you going to do and more importantly why?" That's why I emphasized that good candidates will be able to come up with a convincing solution before they start coding, and that the actual code is secondary. It's also why the lead-off of this conversation was me musing that maybe I should tell all candidates that I want them to write in pseudocode, in an attempt to remove "language of choice" as a variable in the interview process.

How fine are you with p code that doesn’t look like algol?

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
If by "p code" you mean pseudocode, really I don't give a poo poo. I don't care if you use = where you meant == either, so long as the intent is clear. Your ability to write valid code is not what I'm testing.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

TooMuchAbstraction posted:

If by "p code" you mean pseudocode, really I don't give a poo poo. I don't care if you use = where you meant == either, so long as the intent is clear. Your ability to write valid code is not what I'm testing.

I think they were going for "what happens if they whip out a functional language and produce a 100-layer sandwich with parenthesis buns.

Or brainfuck. Actually, definitely brainfuck.

Careful Drums
Oct 30, 2007

by FactsAreUseless

Rocko Bonaparte posted:

I think they were going for "what happens if they whip out a functional language and produce a 100-layer sandwich with parenthesis buns.

Or brainfuck. Actually, definitely brainfuck.

i'd just be stoked for a real excuse to do anything with brainfuck

User
May 3, 2002

by FactsAreUseless
Nap Ghost

Mao Zedong Thot posted:

Lol at pretending SREs write anything other than golang or bash.

I miss the days of Perl ascendancy.

Mniot
May 22, 2003
Not the one you know

User posted:

I miss the days of Perl ascendancy.

There was no better language for stupid interview questions than Perl. That's why they nerfed it.

Che Delilas
Nov 23, 2009
FREE TIBET WEED
Had my third of a four(?) step interview process at a company today. I didn't beef it but true to form I didn't get a lot of sleep due to nervousness so I'm sure I didn't wow them either.

This puts me at just over three hours (all remote) with ~6 to go (on-site) for this one company. No they aren't Google and I don't expect them to offer a Google-level compensation package. I feel bad about putting up with it, but I want out of my current place and it'll end up being a lot of practice interviewing that I can certainly use. Sorry to everyone for moving the needle, however slightly, in the direction of "ridiculous" vis-a-vis amount of time an interview should take.

I think I need to spend more of my free time just going to meetups and poo poo. I don't like spending my free time coding, but it'd be nice to just get hired via friendships instead of running the goddamned gauntlet.

User
May 3, 2002

by FactsAreUseless
Nap Ghost

Che Delilas posted:

Had my third of a four(?) step interview process at a company today. I didn't beef it but true to form I didn't get a lot of sleep due to nervousness so I'm sure I didn't wow them either.

This puts me at just over three hours (all remote) with ~6 to go (on-site) for this one company. No they aren't Google and I don't expect them to offer a Google-level compensation package. I feel bad about putting up with it, but I want out of my current place and it'll end up being a lot of practice interviewing that I can certainly use. Sorry to everyone for moving the needle, however slightly, in the direction of "ridiculous" vis-a-vis amount of time an interview should take.

I think I need to spend more of my free time just going to meetups and poo poo. I don't like spending my free time coding, but it'd be nice to just get hired via friendships instead of running the goddamned gauntlet.

Generally just try to show that you were awake during your CS classes (or self-teaching), that you can think, and clearly articulate your thought process. Obviously every company is different, but many times you can get quite a lot of "partial credit." I've been in debriefs and given feedback like "the candidate got 90% of the way there and I'm positive she would have aced it with access to a search engine. Hire." Another good signal is that your prospective employer doesn't like sunk costs anymore than you do, so having gotten as far as you have in their process means you're in a strong position to succeed.

And try to have fun with it. I know that's easier said than done, but presenting an enthusiastic and pleasant personality in a stressful circumstance is a trait your interviewer will appreciate.

Building your network is never a bad idea either.

Good luck to you!

Che Delilas
Nov 23, 2009
FREE TIBET WEED
Thanks! Yeah that's all generally the approach I try to take. There's no way for me to stop the pre-interview anxiety except to just keep interviewing so it becomes old hat, but I've never just frozen or clammed up in an actual interview (which I've seen happen to plenty of candidates). The anticipation is always worse for me.

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost

Mao Zedong Thot posted:

Lol at pretending SREs write anything other than golang or bash.
Hey man, I write actually legit Python 3 with type hinting, asyncio, coroutines, and need to not completely suck at performance which I can’t even say for a frighteningly large portion of the Python community. Also, don’t forget we usually write Jenkinsfiles and have to write some horrific lobotomized Groovy while being unable to test our code worth a drat because working with Jenkins as a workflow is like coding like you’re writing COBOL on a timesharing system (I’m not kidding, I wrote COBOL for a year as a kid and it made me not want to be a programmer for years until I learned better). My team has over 3k lines of goddamn Groovy across dozens of Jenkinsfiles and pipeline libraries. I’m also about to advocate moving toward producing Rundeck plugins for our deployments with Kotlin because it’s better for our goals of making better GUIs and APIs for our deployments while making Real Code that is testable, verifiable, and observable without resorting to the black magic soul selling of continuing to use Jenkins (sales engineers shouldn’t need to see our infinite sadness of Jenkins either).

Vulture Culture
Jul 14, 2003

I was never enjoying it. I only eat it for the nutrients.

Mao Zedong Thot posted:

Lol at pretending SREs write anything other than golang or bash.
Rust supremacy motherfucker

Tinestram
Jan 13, 2006

Excalibur? More like "Needle"

Grimey Drawer

ultrafilter posted:

https://twitter.com/lhochstein/status/1123755527312433152

Mine is "self-inflicted DDOS", but that's not a phrase that comes up too often.

"<very large company> gets away with it"

Literally killed the startup I was working at for 6 years.

Pollyanna
Mar 5, 2005

Milk's on them.


runupon cracker posted:

"<very large company> gets away with it"

Literally killed the startup I was working at for 6 years.

Oh man, dish.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



Pollyanna posted:

Oh man, dish.

Yes please

Tinestram
Jan 13, 2006

Excalibur? More like "Needle"

Grimey Drawer

Pollyanna posted:

Oh man, dish.

Basically boils down to this:

Management - "We're going to spend a year getting 8 developers to build this really great mobile app that allows users to get a subscription that unlocks content in our other apps."

Me - "Apple's submission guidelines very specifically state that in-app purchases can't unlock content in other apps. This will end poorly."

Management - "Well, Disney gets away with it, so we'll just do it and submit, and if they complain we'll make our case"

We built the app, at the end I worked about a month doing ~90h weeks to meet deadline. We submitted and it was approved, but in the first couple of weeks after it went live, Apple discovered the content unlocking functionality. They told us we needed to remove the functionality within a certain timeframe. I was initially instructed to ~ignore this directive~, but when Apple came back and said "hey you guys, remove this or we'll shut down your entire account," the galaxy brain behind this whole scheme decided to meet with Apple and argue with them.

When he pointed out that Disney did the exact same thing, Apple said "we don't discuss other cases." While they didn't come right out and say it, Apple let Disney do it because they're a big company that makes Apple a boatload of money. Us... not so much. In any case, Apple didn't budge, but Mr Galaxy Brain would. not. let. it. go. He ended up ruining our relationship with Apple, and our app feature placements dried up literally overnight. No feature placement meant rapidly dwindling revenue, and we ended up shuttering about a year later.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

A recruiter from IBM reached out to me and after some conversation told me that the one thing IBM could offer me over my current position was that "IBM cares about employee development, you can do so much training." He could not specify how much of that training was online video courses and how much I had to do in my own time.
That was all he could offer, video training in my own time for lower pay.
And o yeah, you will be working on client projects at the client site and no, we cannot tell you yet who that client is or what location that would be.

:psyduck:
How is that appealing? To whom is that appealing?

Ralith
Jan 12, 2011

I see a ship in the harbor
I can and shall obey
But if it wasn't for your misfortune
I'd be a heavenly person today

Keetron posted:

A recruiter from IBM reached out to me and after some conversation told me that the one thing IBM could offer me over my current position was that "IBM cares about employee development, you can do so much training." He could not specify how much of that training was online video courses and how much I had to do in my own time.
That was all he could offer, video training in my own time for lower pay.
And o yeah, you will be working on client projects at the client site and no, we cannot tell you yet who that client is or what location that would be.

:psyduck:
How is that appealing? To whom is that appealing?

The recruiter misjudged your current position before reaching out, but at this point he might as well roll the dice and hope you're dumb.

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
As a former reluctant IBMer just don’t go if it’s not an awesome opportunity

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

Keetron posted:

A recruiter from IBM reached out to me and after some conversation told me that the one thing IBM could offer me over my current position was that "IBM cares about employee development, you can do so much training."

Translation: You'll have plenty of time to learn stuff on your own after we lay you off.

Che Delilas
Nov 23, 2009
FREE TIBET WEED
Based on what I've heard about how IBM has treated its employees, I would never want to work there unless they paid me enough that I could retire with a year.

Careful Drums
Oct 30, 2007

by FactsAreUseless

Che Delilas posted:

Based on what I've heard about how IBM has treated its employees, I would never want to work there unless they paid me enough that I could retire with a year.

same, why would anyone ever want to go there

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
I would caution also being paid enough money to retire in a year from IBM - there's a rather high chance you get let go within a year anyway. And if you're not let go that early there's a pretty high likelihood it's because you're being paid under market.

JawnV6
Jul 4, 2004

So hot ...
Best case you last long enough at IBM that they risk another ageism suit to boot you out.

Rattus
Sep 11, 2005

A rat, in a hat!
I once was offered a job whose big thing was 'we have real coffee!'
As in an actual bean-to-cup machine.
Even their employee recruitment video had them mentioning it.

sunaurus
Feb 13, 2012

Oh great, another bookah.
I've worked at a place where you have to bring your own milk if you want cappuccino. I later found out that this could be normal in non-IT offices, but as a developer, that was definitely the weirdest office kitchen experience I've ever had.

Lord Of Texas
Dec 26, 2006

Jose Valasquez posted:

What do you do for candidates that don't code in their free time

Most candidates ask their employers for permission to share code samples if they don't code in their free time, and in addition, many interviewees are internal to my company which eliminates the IP concern. In the rare case a candidate doesn't have rights via any of those avenues, I don't count it against them and we go another way, but that rarely happens.

I only do this for those applying to Sr. level positions or above, btw. I don't expect a fresh college hire to bring code.

Hughlander
May 11, 2005

Lord Of Texas posted:

.

I only do this for those applying to Sr. level positions or above, btw. I don't expect a fresh college hire to bring code.

Why’s that? They just spent the last 4 years writing code they have the copyright to.

Lord Of Texas
Dec 26, 2006

Hughlander posted:

Why’s that? They just spent the last 4 years writing code they have the copyright to.

The college applicants I tend to get are already visibly/audibly nervous and I don't want to derail them by forcing them to talk through code in a collaborative work environment they might not have experienced yet. Depends on the type of internships/student jobs they've had, I had an internship where they tossed me in a corner and checked in once a week, and another where I actually felt like part of a team.

Potential for growth is more important than immediate production for fresh college hires in my work culture. They aren't getting paid poo poo relative to a senior, and if they turn out to suck they'll be weeded out before they start getting paid more.

So, I look for general intelligence, disposition, and ability to form/communicate opinions about software (so did you happen to take any classes on <X technology that my team uses> ? Oh yeah, what do you think of <X technology>? we really like it because of <Y>.)

But, the code-sharing approach could totally work for college hires, just haven't done it myself.

User
May 3, 2002

by FactsAreUseless
Nap Ghost
An opinionated guide to evaluating candidates with no industry experience based on academic credentials:

An undergrad degree in CS is observably worthless, so you should just treat them like a smart person that went to a boot camp or self taught or something. Run them through your process and be fair.

A masters is actually negative signal. It's usually just some con artist who thinks that wasting another year and a half in school is going to bring the big bucks. And it's kind of true, but if you want someone who actually gets things done then hard pass.

PhDs are another matter. If they're from a good program then effectively they actually do have industry experience, it's just been at slave labor rates while their advisor steals all the credit. If you think they are going to be a good fit, then joking about this will virtually guarantee they accept your offer.

Doctor w-rw-rw-
Jun 24, 2008

User posted:

An opinionated guide to evaluating candidates with no industry experience based on academic credentials:

An undergrad degree in CS is observably worthless, so you should just treat them like a smart person that went to a boot camp or self taught or something. Run them through your process and be fair.

A masters is actually negative signal. It's usually just some con artist who thinks that wasting another year and a half in school is going to bring the big bucks. And it's kind of true, but if you want someone who actually gets things done then hard pass.

PhDs are another matter. If they're from a good program then effectively they actually do have industry experience, it's just been at slave labor rates while their advisor steals all the credit. If you think they are going to be a good fit, then joking about this will virtually guarantee they accept your offer.

in my experience:

Masters are not a hard pass. Circumstances can mean someone didn't get a PhD due to things that were out of their hands, even if they deserved it.
PhDs don't always guarantee they know a drat thing about working effectively or are familiar with best practices.

User posted:

Run them through your process and be fair.
Excessively generic but yes, this.

Adbot
ADBOT LOVES YOU

Jose Valasquez
Apr 8, 2005

User posted:

An undergrad degree in CS is observably worthless, so you should just treat them like a smart person that went to a boot camp or self taught or something. Run them through your process and be fair.

My anecdotal experience at non-tech companies disagrees with this. People with CS degrees have generally been quite a bit better at programming and software design than people without a CS degree. There are outliers both ways but a CS degree has been a strong positive signal in my experience.

In my experience this difference disappears at big tech companies because there is a higher baseline technical competency.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply