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
FISHMANPET
Mar 3, 2007

Sweet 'N Sour
Can't
Melt
Steel Beams
Your resume should show me you have some technical chops, I'm way more interested in how you think (full disclosure, our University is now in a covid induced hiring freeze so I haven't had the chance to put my theories into practice when it comes to hiring and interviews)

Adbot
ADBOT LOVES YOU

GreenNight
Feb 19, 2006
Turning the light on the darkest places, you and I know we got to face this now. We got to face this now.

Good friend of mine has worked for IBM for 25 years. She was luckily not on the cutting block of the 3000 or so IBM fired today, but drat that's nerve racking.

CLAM DOWN
Feb 13, 2007




Scientist Al Gore posted:

Unpopular opinion,

If you can't writeboard pseudcode, write a small script during an interview with a projector while I'm watching or walk me through how this PowerShell Loop works then I'm going to have a hard time justifying hiring you no matter how great your resume looks.

You're gonna miss out on hiring some amazing people with such a stupid "policy".

Vulture Culture
Jul 14, 2003

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

Methanar posted:

I forget how to type entirely when somebody is looking over my shoulder for the explicit purpose of judging me.

Maybe I'm just bad and actually an unhirable unskilled piece of poo poo but Okta wanted me to do some situation where I made and then pretended a nested dictionary was a database and update some subset of 'records' with a new pattern to simulate a schema update and a few other bullet points. Couldn't do it on the spot as I'm being stared at with a clock in the corner of the screen.

I probably could have done it just fine in the expected amount of time if I were doing it on my own.

Somebody else wanted me to instrument a prebuilt toy golang webapp with the prometheus library to get timeseries metrics for tracking response times or whatever in a take home project. That I'm fine with.

Live coding exercises are extremely dumb. If anybody ever tries to watch me work I'll tell them to stop looking at me so I can actually do it.
This year we had a guy interview, where there was the perception in his interview that he had fairly little coding competency because of how much he seemed to completely freeze up and stall out. I lobbied for him anyway based on a different interview in the loop, on the basis that he was probably fine at coding but bombed the one interview, and succeeded in building enough of a coalition to get him the offer anyway. When he started, he made it clear that he could run laps around most of the engineers in the department. Most companies are very, very bad at reading this signal and finding other ways to extract the information they want

CLAM DOWN posted:

You're gonna miss out on hiring some amazing people with such a stupid "policy".
I'll argue to the death that this is the right option for some teams (and their orgs should reorg those team arrangements away as soon as it's feasible to do so).

The thing is that everything is so context-dependent, and there's no one-size-fits-all option. Environments where people are siloed onto projects and unable to effectively collaborate with others on new projects/features/deliveries aren't uncommon. In my current team environment, where all our SREs are mixed into delivery teams with SWEs, we don't need to emphasize coding. But if I was gonna hire a lead engineer at a consulting company, you'd better fuckin believe I expect an 8/10 coder

Vulture Culture fucked around with this message at 01:40 on May 23, 2020

CloFan
Nov 6, 2004

CLAM DOWN posted:

You're gonna miss out on hiring some amazing people with such a stupid "policy".

A university is a little different though than typical business. Revenues are going to be so poo poo for the next year, and if you're big enough to have live-in students it's really going to suck. We are projecting a 10% enrollment drop and that's a wishful thinking

Gucci Loafers
May 20, 2006

Ask yourself, do you really want to talk to pair of really nice gaudy shoes?


KillHour posted:

I have a hard time justifying working for someone who needs to put me on the spot and demand I write code without Google. Also, someone who can't spell whiteboard.

How am I suppose to send an engineer to client site that can't at least code a little on the spot? That just doesn't fly at all.

Gucci Loafers
May 20, 2006

Ask yourself, do you really want to talk to pair of really nice gaudy shoes?


Vulture Culture posted:

But if I was gonna hire a lead engineer at a consulting company, you'd better fuckin believe I expect an 8/10 coder

I am one of those customer facing consultants. :smith:

Sickening
Jul 16, 2007

Black summer was the best summer.

Scientist Al Gore posted:

How am I suppose to send an engineer to client site that can't at least code a little on the spot? That just doesn't fly at all.

Do you often send engineers to do live coding sessions in front of your clients? If so, why?

Gucci Loafers
May 20, 2006

Ask yourself, do you really want to talk to pair of really nice gaudy shoes?


Sickening posted:

Do you often send engineers to do live coding sessions in front of your clients? If so, why?

What do you mean by "live coding" session?

Like, sometimes you will be under the gun and expect to at the minimum demonstrate products and services to clients. You need to able to do this competently. If you can't show me this at all during an hour interview why should I hire you?

Gucci Loafers fucked around with this message at 04:11 on May 23, 2020

Sickening
Jul 16, 2007

Black summer was the best summer.

Scientist Al Gore posted:

What do you mean by "live coding" session?

Like, sometimes you will be under the gun and expect to at the minimum demonstrate products and services to clients. You need to able to do this competently. If you can show me this at all during an hour interview why should I hire you?

What does any of that have to do with fizz buzz?

I feel like you are comparing a person coming in to do random fizz buzz nonsense in front of a team of people to what would should happen during a more prepared session with a client. The two should be drastically different.





Sickening fucked around with this message at 04:02 on May 23, 2020

Methanar
Sep 26, 2013

by the sex ghost

Scientist Al Gore posted:

How am I suppose to send an engineer to client site that can't at least code a little on the spot? That just doesn't fly at all.

Why are you putting IT people on planes to other company offices to write original code on the spot in a room full of people.

Scientist Al Gore posted:


Like, sometimes you will be under the gun and expect to at the minimum demonstrate products and services to clients. You need to able to do this competently. If you can't show me this at all during an hour interview why should I hire you?

I don't apply to those jobs. why do I still need to do somebody's bullshit schema update in 15 minutes while somebody is glaring at me.

Methanar fucked around with this message at 04:30 on May 23, 2020

KillHour
Oct 28, 2007


Sickening posted:

Amen.

Like, I can’t even loving spell anymore. Auto complete takes care of all of that for me. Google takes care of the rest. It’s time to live in the future.

But what if some code REALLY has to get written right this minute but the internet is down and you don't have access to an IDE? WHAT THEN!?

12 rats tied together
Sep 7, 2006

The for loop is probably the exception, if you have a scripting language on your resume and you can't manage to psuedocode a for loop during a technical interview, something is seriously wrong.

Needing a moment or two of focus time to realize "oh, this is really just a while loop" or messing up your like, <= vs <, that's all fine. The for loop though is like the most fundamental building block of turning any snippet of code into something repeatable that can integrate into a wider process or be extended by a coworker.

People aren't going to copy paste out of SCRIPTS.TXT and hit enter on a bash prompt at work.

Umbreon
May 21, 2011

Scientist Al Gore posted:

What do you mean by "live coding" session?

Like, sometimes you will be under the gun and expect to at the minimum demonstrate products and services to clients. You need to able to do this competently. If you can't show me this at all during an hour interview why should I hire you?

Forgive my ignorance if this is wrong, but why would demonstrating products and services to clients have anything to do with coding/IT staff? Wouldn't you want a sales guy for that? (Or a sales engineer?)

KillHour
Oct 28, 2007


Scientist Al Gore posted:

How am I suppose to send an engineer to client site that can't at least code a little on the spot? That just doesn't fly at all.

I'm a senior consultant at a large NoSQL DB company and I'm the technical lead on a huge project for a major company I promise you you've heard of. I can build anything you can think of in any language you want if you give me coffee, headphones, Google and leave me the gently caress alone while I work on it. I can also give (and have given) product demonstrations and training to everyone from union electricians to C level executives and everything in between. I've been a product manager, training manager, customer success manager, sales engineer and about a dozen other things. I will happily sit around and whiteboard a block level diagram or flow chart or DFD or whatever with you all day long and we can hammer out all the different options to approach the problem. I like doing that - it's fun for me. Hell, if you give me a printed out piece of code, I'll tell you its complexity and memory usage and we can riff off of other ways to do it or maybe discuss how it could be more efficient (Within reason - I'm not going to sit there and try to optimize threading or SIMD instructions). But as soon as you tell me to write pseudocode on that whiteboard, I'm walking out of that interview. It's an absolutely worthless exercise that has no utility in the real world because people don't memorize the most efficient way to find prime factors unless they're studying for stupid interviews. It's also insulting because it implies that merely knowing how a for loop works qualifies someone for the job and I'm wasting my time interviewing for a role that's beneath me.

12 rats tied together posted:

The for loop is probably the exception, if you have a scripting language on your resume and you can't manage to psuedocode a for loop during a technical interview, something is seriously wrong.

Needing a moment or two of focus time to realize "oh, this is really just a while loop" or messing up your like, <= vs <, that's all fine. The for loop though is like the most fundamental building block of turning any snippet of code into something repeatable that can integrate into a wider process or be extended by a coworker.

People aren't going to copy paste out of SCRIPTS.TXT and hit enter on a bash prompt at work.

Do you test if they know how to do long division, too? You can get all that poo poo out of a conversation. "Describe what a for loop is" is a fine question that gives you the exact same information. Besides, if your requirements are really as basic as "can write a for loop," they can learn that poo poo as they go. Someone can Google how to write a for loop in PowerShell. You're more likely to be interested in when they would decide to use a for loop, which you don't need a whiteboard to ask.

Edit: Here's an illustrative example of what to do vs. what not to do.

:) "Let's say you had 1000 records containing a name and a birth date, and you wanted to find all the records whose birthday is this month. How would you go about that?"
:eng101: "Hmm. To start, I would iterate through all the records, checking the birth date of each one and storing the matched results in a list."
:) "Great. What would you do if you had 10,000,000 records instead of 1000?
[Conversation continues pleasantly]

vs.

:downs: "Write some code on that whiteboard to find a list of records with a birthday in the current month."
:eng101: "What do the records look like? What language? What data structure am I accessing? Is there an API for accessing it?"
:downs: "Doesn't matter, just pick something."
:eng101: "Uh.... okay... void CheckBirthday (BirthdayObject[])... wait is that right? That doesn't look right. Hang on, what am I returning here?"
:downs: "Hmm, how would you improve this code?"
:eng101: "gently caress man, I don't know. I'd actually test it against some real code instead of making poo poo up on the spot with no guidance." :fuckoff:

KillHour fucked around with this message at 05:10 on May 23, 2020

Gucci Loafers
May 20, 2006

Ask yourself, do you really want to talk to pair of really nice gaudy shoes?


Methanar posted:

Why are you putting IT people on planes to other company offices to write original code on the spot in a room full of people.

What do you mean by on the spot? Like, some times we want to show our work to our clients? :shrug:

Methanar posted:

I don't apply to those jobs. why do I still need to do somebody's bullshit schema update in 15 minutes while somebody is glaring at me.

There's a difference between have an environment that's appropriate for sharing or people being pricks.

Gucci Loafers fucked around with this message at 05:11 on May 23, 2020

Gucci Loafers
May 20, 2006

Ask yourself, do you really want to talk to pair of really nice gaudy shoes?


Umbreon posted:

Forgive my ignorance if this is wrong, but why would demonstrating products and services to clients have anything to do with coding/IT staff? Wouldn't you want a sales guy for that? (Or a sales engineer?)

Sometimes but job titles are little nebulous. Our customers occasionally want to meet our developers and I see no harm in things like - "Hey guys, lets go do this presentation on X later today?".

KillHour
Oct 28, 2007


Scientist Al Gore posted:

Sometimes but job titles are little nebulous. Our customers occasionally want to meet our developers and I see no harm in things like - "Hey guys, lets go do this presentation on X later today?".

Be honest with me. When has a developer ever whiteboarded code in front of a customer? Ever.

Methanar
Sep 26, 2013

by the sex ghost

Scientist Al Gore posted:

Sometimes but job titles are little nebulous. Our customers occasionally want to meet our developers and I see no harm in things like - "Hey guys, lets go do this presentation on X later today?".

your developers hate you if you've ever put them in that position

Gucci Loafers
May 20, 2006

Ask yourself, do you really want to talk to pair of really nice gaudy shoes?


KillHour posted:

pseudocode on that whiteboard

Then I would say write in whatever your preferred language is and I'd be okay with that. Some newer folks might feel more comfortable explaining concepts this way. Real code would be preferred but I am indifferent. And I'm sure people can easily google how to run a simple Powershell Script but I'm still going to ask deeper questions because I'd want to know things like how much they used it, if understand they parameters, did they ever deal with unexpected behavior, etc.

Gucci Loafers
May 20, 2006

Ask yourself, do you really want to talk to pair of really nice gaudy shoes?


Methanar posted:

your developers hate you if you've ever put them in that position

Why?

KillHour
Oct 28, 2007


Scientist Al Gore posted:

Then I would say write in whatever your preferred language is and I'd be okay with that. Some newer folks might feel more comfortable explaining concepts this way. Real code would be preferred but I am indifferent. And I'm sure people can easily google how to run a simple Powershell Script but I'm still going to ask deeper questions because I'd want to know things like how much they used it, if understand they parameters, did they ever deal with unexpected behavior, etc.

Goddamn, you read that entire thing and didn't get my point at all. Do you do this in interviews too - respond to comments or questions with non sequiturs? It's about the very concept of writing code on a whiteboard; not what language it's in.

Gucci Loafers
May 20, 2006

Ask yourself, do you really want to talk to pair of really nice gaudy shoes?


KillHour posted:

Goddamn, you read that entire thing and didn't get my point at all. Do you do this in interviews too - respond to comments or questions with non sequiturs? It's about the very concept of writing code on a whiteboard; not what language it's in.

I'm sorry, what is your point then? :shrug:

KillHour
Oct 28, 2007


Scientist Al Gore posted:

I'm sorry, what is your point then? :shrug:

My point is you don't need to see me write code in front of you to get an understanding of my technical abilities. If you think you do, you're a bad interviewer and you should stop interviewing people.

Gucci Loafers
May 20, 2006

Ask yourself, do you really want to talk to pair of really nice gaudy shoes?


KillHour posted:

My point is you don't need to see me write code in front of you to get an understanding of my technical abilities. If you think you do, you're a bad interviewer and you should stop interviewing people.

None? At all?

In your view, what is a reasonable bare minimum for a generic technical interview?

KillHour
Oct 28, 2007


Scientist Al Gore posted:

None? At all?

In your view, what is reasonable bare minimum for a generic technical interview?

None. At all. And it's not a minimum. You can go very deep into a technical interview without asking anyone to write code. Since you probably missed it, I will repost my previous example.

KillHour posted:

Here's an illustrative example of what to do vs. what not to do.

:) "Let's say you had 1000 records containing a name and a birth date, and you wanted to find all the records whose birthday is this month. How would you go about that?"
:eng101: "Hmm. To start, I would iterate through all the records, checking the birth date of each one and storing the matched results in a list."
:) "Great. What would you do if you had 10,000,000 records instead of 1000?
[Conversation continues pleasantly]

vs.

:downs: "Write some code on that whiteboard to find a list of records with a birthday in the current month."
:eng101: "What do the records look like? What language? What data structure am I accessing? Is there an API for accessing it?"
:downs: "Doesn't matter, just pick something."
:eng101: "Uh.... okay... void CheckBirthday (BirthdayObject[])... wait is that right? That doesn't look right. Hang on, what am I returning here?"
:downs: "Hmm, how would you improve this code?"
:eng101: "gently caress man, I don't know. I'd actually test it against some real code instead of making poo poo up on the spot with no guidance." :fuckoff:

You can ask someone to explain, in words, how they would tackle a problem. Translating those words into actual code should be completely trivial for anyone who got far enough in the interview process to be sitting in front of you. If you need proof that they can do it, you can send them a short project to complete before the interview. This is valuable because it mirrors how they would work in practice - use words to describe an approach in a not-at-all code fashion, potentially make a block level diagram if it's a particularly complicated problem, and then go away and translate those words into code. People speak in English, not C++. When I'm sitting down brainstorming with my customer's enterprise architect, we speak words and draw diagrams. We don't write error-riddled code on a piece of paper.

KillHour fucked around with this message at 05:33 on May 23, 2020

Gucci Loafers
May 20, 2006

Ask yourself, do you really want to talk to pair of really nice gaudy shoes?


KillHour posted:

When I'm sitting down brainstorming with my customer's enterprise architect, we speak words and draw diagrams.

That's what I mean? I don't mean to say that "Yes write this for-loop word for on this whiteboard using the colors of the rainbow." but it may used to explain some concepts. As for other items, I'm going want to see you show me code or walk me through existing content. You can pick whatever from your personal Github to explaining parts of Chrome Developer Tools.

The last developer we had Stanley, freaking brilliant guy, was just straight up with us, we gave him a keyboard, wrote some random cool poo poo while explaining what he was doing during it and that was enough to prove his salt.

If someone wants to prove it another way I am all for it but you're going to have to show me something real world.

KillHour
Oct 28, 2007


Scientist Al Gore posted:

That's what I mean? I don't mean to say that "Yes write this for-loop word for on this whiteboard using the colors of the rainbow." but it may used to explain some concepts. As for other items, I'm going want to see you show me code or walk me through existing content. You can pick whatever from your personal Github to explaining parts of Chrome Developer Tools.

The last developer we had Stanley, freaking brilliant guy, was just straight up with us, we gave him a keyboard, wrote some random cool poo poo while explaining what he was doing during it and that was enough to prove his salt.

If someone wants to prove it another way I am all for it but you're going to have to show me something real world.

Real world is not writing code in front of you. Stop asking people to write code with you standing there because a lot of people can't do it and it's not something anyone will ever need to do outside of a bad interview. My last interview, I brought a printed out page of code I was particularly proud of and explained how it worked. That's fine, and I said you can give them a project to complete before they show up. Having someone try to bodge together an underspecified function while you watch is pointless. If they want to do that, then fine, I guess. Stanley sounds like a weird guy. But don't expect them to.

Also, diagrams != code. I don't know what the hell kind of crazy diagrams you work with.


Edit: Befiore you try to claim "That's what I was saying all along!" here's your initial post:

Scientist Al Gore posted:

Unpopular opinion,

If you can't writeboard pseudcode, write a small script during an interview with a projector while I'm watching or walk me through how this PowerShell Loop works then I'm going to have a hard time justifying hiring you no matter how great your resume looks.

KillHour fucked around with this message at 05:51 on May 23, 2020

mllaneza
Apr 28, 2007

Veteran, Bermuda Triangle Expeditionary Force, 1993-1952




Scientist Al Gore posted:

What do you mean by "live coding" session?

Like, sometimes you will be under the gun and expect to at the minimum demonstrate products and services to clients. You need to able to do this competently. If you can't show me this at all during an hour interview why should I hire you?

I've frozen completely in an interview when asked to whiteboard code in a language I was currently working in.

I've also written code to deadline during a global all-hands emergency. At my desk, with my headphones on, and nobody looking over my shoulder. The code worked and came in under deadline.

Devise an interview to pick me or make allowances for live coding challenges in interviews. I generally agree that pseudocode and a for loop are pretty basic standards for interviews, but be aware that there are people who can code under real world pressure who will fold in an interview.

Scientist Al Gore posted:

Our customers occasionally want to meet our developers and I see no harm in things like - "Hey guys, lets go do this presentation on X later today?".

Do you not see a difference between giving a developer hours worth of notice that they're going to talk about a specific thing that they already did versus asking someone to whiteboard something cold ?

mllaneza fucked around with this message at 07:04 on May 23, 2020

22 Eargesplitten
Oct 10, 2010



KillHour posted:

Edit: Here's an illustrative example of what to do vs. what not to do.

:) "Let's say you had 1000 records containing a name and a birth date, and you wanted to find all the records whose birthday is this month. How would you go about that?"
:eng101: "Hmm. To start, I would iterate through all the records, checking the birth date of each one and storing the matched results in a list."
:) "Great. What would you do if you had 10,000,000 records instead of 1000?
[Conversation continues pleasantly]


Because I'm bored and rusty, I want to take a stab at this. First question, is it already sorted?

If yes, binary search tree to find the start and end of the range with that month. I was tempted to say just iterate through until you find the first that doesn't have it, but with roughly 10,000,000/12 records it would be faster to do another search using the entry after the first record found as the start of the range. Thinking about it, you could also keep track of the last record checked with a month after the month you're looking for as the end of the range to cut it down further, although I'd have to think about whether that's worth it in terms of processing time and coding time since you would have to write a custom function to store the values rather than just using a search that's already baked into one of your libraries, and the assignment might add enough extra complexity that it's not saving a significant amount of processing time. Once you get that range it should be possible to move it all as a chunk rather than iterating through each one.

If it's not sorted, run a quicksort or radix sort (since I'm not googling anything for the purpose of this exercise I can't remember if this would be a good use case for a radix sort) on the data set, it will take longer than if it's already sorted but there's no way it's slower than trying to find all the entries without them sorted. Then do the above.

If it's in a database with certain keys or indexes assigned, there might be something more efficient, but I don't really know enough about database architecture to make use of that.

E: Out of curiosity I looked up the speed of a radix sort, seems like it really depends on how the information is stored, because that's going to make a big difference in how many bits are used to store the birth date.

22 Eargesplitten fucked around with this message at 07:34 on May 23, 2020

12 rats tied together
Sep 7, 2006

Being able to turn "I would iterate through [...]" into a visual representation of a for loop is an extremely important collaboration skill. Keep in mind that psuedocode these days is effectively python without the punctuation, which ends up being "for x in y", and then a line break, and then some more plain rear end english words that describe what you want to do. It's the bare minimum of what can be expected for someone with a language on their resume.

I'm sure there are companies that will ask that you write executable code onto a whiteboard but I'd never even consider working for one.

KillHour
Oct 28, 2007


22 Eargesplitten posted:

Because I'm bored and rusty, I want to take a stab at this. First question, is it already sorted?

If yes, binary search tree to find the start and end of the range with that month. I was tempted to say just iterate through until you find the first that doesn't have it, but with roughly 10,000,000/12 records it would be faster to do another search using the entry after the first record found as the start of the range. Thinking about it, you could also keep track of the last record checked with a month after the month you're looking for as the end of the range to cut it down further, although I'd have to think about whether that's worth it in terms of processing time and coding time since you would have to write a custom function to store the values rather than just using a search that's already baked into one of your libraries, and the assignment might add enough extra complexity that it's not saving a significant amount of processing time. Once you get that range it should be possible to move it all as a chunk rather than iterating through each one.

If it's not sorted, run a quicksort or radix sort (since I'm not googling anything for the purpose of this exercise I can't remember if this would be a good use case for a radix sort) on the data set, it will take longer than if it's already sorted but there's no way it's slower than trying to find all the entries without them sorted. Then do the above.

If it's in a database with certain keys or indexes assigned, there might be something more efficient, but I don't really know enough about database architecture to make use of that.

E: Out of curiosity I looked up the speed of a radix sort, seems like it really depends on how the information is stored, because that's going to make a big difference in how many bits are used to store the birth date.

Speaking from a database perspective, I'd probably implement an index on the dates and store that separately if this is something that needs to be accessed frequently. Then you can just query for the range of dates. Depends on query frequency vs. update frequency. This also gets to the other problem of whiteboard coding questions - it's never formally specified how much needs to be implemented from scratch and how much can be abstracted away. If I'm trying to hire someone for my line of work, I don't care if they know that the index is implemented as a skiplist on the backend because that poo poo is all abstracted under an API.

P.S.: Sorting the entire list is always going to be slower than iterating through the unsorted items unless you cache the sorted list and use it for later queries. A typical sort is ~(O) n * log(n) while a simple iteration is (O) n

12 rats tied together posted:

Being able to turn "I would iterate through [...]" into a visual representation of a for loop is an extremely important collaboration skill

When have you ever needed to do this in the real world? Seriously; I cannot fathom a situation where this would come up. And it's tangential at best to the point of the question - trying to understand how the applicant would approach the problem. The specific kind of loop they use is completely irrelevant, and there are so many ways to write one that the answer loses all meaning. Saying "I would iterate over" and saying "For x in y" are literally the same sentiment, except the first one demonstrates you understand the generic nature of loops and the second says "I memorized this before coming here." Demanding the applicant produce the exact answer you were looking for like this is an episode of Jeopardy shows a lack of communication skills on your part, not theirs. Hell, they might not even use a loop - in JS, I'd probably just use a .filter() function*. If you're specifically looking for "I know you know what a for loop is" just ask what a for loop is. Don't make me guess what you're really asking. I've had my fair share of vague interview questions where it was obvious the interviewer was fishing for a specific answer and we got to play the guessing game until I came up with the magic words and it's always bullshit.

*I know .filter() implements some kind of loop on the backend. Don't @ me.

KillHour fucked around with this message at 08:59 on May 23, 2020

Wibla
Feb 16, 2011

Most of my code is diagrams :smith:

(FBD in the IEC 61131-3 family of languages)

22 Eargesplitten
Oct 10, 2010



KillHour posted:

Speaking from a database perspective, I'd probably implement an index on the dates and store that separately if this is something that needs to be accessed frequently. Then you can just query for the range of dates. Depends on query frequency vs. update frequency. This also gets to the other problem of whiteboard coding questions - it's never formally specified how much needs to be implemented from scratch and how much can be abstracted away. If I'm trying to hire someone for my line of work, I don't care if they know that the index is implemented as a skiplist on the backend because that poo poo is all abstracted under an API.

P.S.: Sorting the entire list is always going to be slower than iterating through the unsorted items unless you cache the sorted list and use it for later queries. A typical sort is ~(O) n * log(n) while a simple iteration is (O) n


When have you ever needed to do this in the real world? Seriously; I cannot fathom a situation where this would come up. And it's tangential at best to the point of the question - trying to understand how the applicant would approach the problem. The specific kind of loop they use is completely irrelevant, and there are so many ways to write one that the answer loses all meaning. Saying "I would iterate over" and saying "For x in y" are literally the same sentiment, except the first one demonstrates you understand the generic nature of loops and the second says "I memorized this before coming here." Demanding the applicant produce the exact answer you were looking for like this is an episode of Jeopardy shows a lack of communication skills on your part, not theirs. Hell, they might not even use a loop - in JS, I'd probably just use a .filter() function*. If you're specifically looking for "I know you know what a for loop is" just ask what a for loop is. Don't make me guess what you're really asking. I've had my fair share of vague interview questions where it was obvious the interviewer was fishing for a specific answer and we got to play the guessing game until I came up with the magic words and it's always bullshit.

*I know .filter() implements some kind of loop on the backend. Don't @ me.

Yeah, I calculated the speed and was kind of unpleasantly surprised when I realized a quicksort would be 70,000,000 calculations. Radix sort on date would be worst case 320,000,000. Oof. I guess in all my school projects I would always end up using the sorted data repeatedly. So I guess if it was 10 million unsorted then still iterate, and shows why a database is pretty drat important for datasets that size because you almost certainly are going to want other sort orders than just by birthdate.

KillHour
Oct 28, 2007


22 Eargesplitten posted:

Yeah, I calculated the speed and was kind of unpleasantly surprised when I realized a quicksort would be 70,000,000 calculations. Radix sort on date would be worst case 320,000,000. Oof. I guess in all my school projects I would always end up using the sorted data repeatedly. So I guess if it was 10 million unsorted then still iterate, and shows why a database is pretty drat important for datasets that size because you almost certainly are going to want other sort orders than just by birthdate.

As a general rule, sorting data is only beneficial if you're going to use the results of that sort more than log(n) times. And as a corollary to that, indexing the data as it's ingested is nearly always preferable to sorting later.

Also, skip lists are fuckin' baller.

22 Eargesplitten
Oct 10, 2010



That looks interesting, I'll read it tomorrow as it's way too late for me to comprehend that right now.

ErikTheRed
Mar 12, 2007

My name is Deckard Cain and I've come on out to greet ya, so sit your ass and listen or I'm gonna have to beat ya.
I definitely prefer take home assignments if possible, but I've had 3 interviews recently where I've done these and then gotten a form rejection letter and zero feedback on my solution. For one of these the next step in the process was supposed to be discussing my solution with 2 engineers at the company, so I dunno if they froze their process due to coronavirus or what the deal was.

I've been getting a lot of interviews lately wanting to use Coderpad and similar tools, which are just as bad as whiteboarding since the intellisense doesn't even work half the time.

CPColin
Sep 9, 2003

Big ol' smile.

Internet Explorer posted:

Seems like as good a time as any to plug the InfoSec thread. Even if your job isn't "InfoSec," you should be keeping up as someone in the IT field.

https://forums.somethingawful.com/showthread.php?threadid=3750534

Next you all are going to tell me is that our web applications shouldn't be accessing our databases via all-powerful credentials that are stored in plaintext on our servers!

KillHour
Oct 28, 2007


CPColin posted:

Next you all are going to tell me is that our web applications shouldn't be accessing our databases via all-powerful credentials that are stored in plaintext on our servers!

Of course not. You store the credentials as const fields in the JavaScript.

Adbot
ADBOT LOVES YOU

CPColin
Sep 9, 2003

Big ol' smile.

KillHour posted:

Of course not. You store the credentials as const fields in the JavaScript.

Don't get me started on the multiple sets of credentials that are in our (private) GitHub!

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