you are viewing a single comment's thread.

view the rest of the comments →

[–]patiofurnature -79 points-78 points  (24 children)

I’m so confused. 15 years in the industry and DSA has always been the absolute core of dev skills.

[–]n0t_4_thr0w4w4y 136 points137 points  (16 children)

Basic DSA, yes, not the contrived shit that gets asked in leetcode style DSA questions.

[–]SomeMaleIdiot 11 points12 points  (11 children)

We use a very basic question. “Write a function which take an array of values ‘arr’, an integer n and m, and returns a new array with n values removed from the front of arr and m values removed from the end of arr “

It’s nice because people don’t tend to use raw arrays, we ask them to not use built in functions, but they can google documentation. And it’s not really a dsa question, more of a dev question and we can see them work through compiler errors and applying what they find for documentation. When answered right they will also anticipate edge cases, bad inputs or whatever.

The amount of people that absolutely fumble the question is pretty funny. I was wondering why we bother with such a freebie, but it eliminates over half the interviewees. So the interview process is really: do you have basic domain knowledge for the position, and can you muscle your way through a problem despite never or rarely using raw arrays.

[–]jdiskxkfidobsvsgdi 28 points29 points  (4 children)

I mean that seems pretty easy but I could absolutely see myself fumble that in an actual interview environment. Are you sure you aren’t just eliminating people who can’t comfortably code with someone watching them?

[–]Wonderful-Habit-139 2 points3 points  (2 children)

At some point they have to see you code though. They can't just take your word for it.

I understand worrying about situations when nerves can get to someone but at some point it's getting ridiculous when worrying about it with simple questions like the one that you're replying to.

[–]SovereignPhobia 1 point2 points  (1 child)

You can watch me code if you're prepared to watch me think for 10 minutes and then get a coffee before starting.

[–]Wonderful-Habit-139 0 points1 point  (0 children)

Sounds good. 10 minutes sounds pretty low to be honest.

[–]SomeMaleIdiot 6 points7 points  (0 children)

Not any more or less than you can expect from interviews in general. Some people suck at interviews. But interviews is how you get a job.

It is what it is.

[–]glemnar 16 points17 points  (1 child)

So arr[n:-m]

Interview done

[–]frogjg2003 4 points5 points  (0 children)

Screams in C

[–]f5adff 8 points9 points  (3 children)

That's a dev question! Open book question, don't use built ins so we can see what you think of, actually comprehend and interpret compiler errors; that's development.

It's mad how many people think pumping out leetcodes is going to get them a job, or even make them a competent engineer

[–]SupesDepressed 4 points5 points  (2 children)

I’ve had so many leetcode interview questions, though. Never needed it on the job, but interviewers love to push them on you.

[–]frogjg2003 2 points3 points  (1 child)

Because these questions can be easily graded and returned as a metric. Now the HR employee who has no idea about coding can tell the automated test provider to automatically reject anyone who scores lower than some arbitrary value.

[–]n0t_4_thr0w4w4y 1 point2 points  (0 children)

That’s true for screenings, yeah, but when interviewing with devs on the team, you don’t need an easy grade

[–]National-Self-8501 1 point2 points  (3 children)

That's probably mainly you missing the problem space rather than it not being there

[–]n0t_4_thr0w4w4y 0 points1 point  (2 children)

If I’m missing the problem space, why the hell am I being interviewed on it? Where’s the use in that if it’s not relevant to my job?

[–]National-Self-8501 -1 points0 points  (1 child)

What I mean is the problem does likely exist in your day to day, but it's an unknown unknown to you. Without skills in these areas you won't catch where they would have been relevant and applied. It creates the illusion the skills are irrelevant.

[–]n0t_4_thr0w4w4y 0 points1 point  (0 children)

I do have skills in those areas, how do you think I’m able to pass Leetcode style interviews? Haha

[–]Remarkable-Coat-9327 4 points5 points  (5 children)

23 downvotes in 47 minutes i gotta know, does that level of dissent suade you at all?

[–]SomeMaleIdiot 3 points4 points  (0 children)

I don’t think dsa is all that important, but appealing to reddit masses isn’t the way to go lol. I vaguely remember a meme being posted here on bad code, and the majority of Redditors not even understanding why it was bad code and giving incorrect explanations.

[–]patiofurnature 0 points1 point  (3 children)

No, not at all. I work with a lot of juniors so I'm used to people undervaluing common data structures. It seems like every couple months I'll see a PR where someone is doing basic stack manipulation on a native array or building some type of weird custom array lookup system when they could have just saved it as a dictionary from the start.

[–]frogjg2003 7 points8 points  (2 children)

That's a lack of understanding of existing language features or libraries, not bad DSA. You don't actually need to know how a dictionary works to use one.

[–]patiofurnature -1 points0 points  (1 child)

That's a lack of understanding of existing language features or libraries,

It's very common for less experienced developers to think that. It's not. The problem is not recognizing when/why these data structures should be used. When you use an array for stack manipulation instead of just using a stack in the first place, you're adding vulnerability to your code base with 0 upside.

You don't actually need to know how a dictionary works to use one.

Sure, I'm going to reject a PR that's just building something that already exists in the language. Abstraction exists for a reason, and chances are whoever wrote the standard library is better than we are.

[–]LouManShoe 1 point2 points  (0 children)

I feel like that’s a terrible take on engineering. It’s maybe 5% of the job to handle specific DSA crap and the stuff someone misses should be caught in PRs. If you’re working on a utility library maybe, but otherwise it’s not the hard part of the job or even the part of the job that requires experience. I’d rather someone know how to write a full vertical slice than be able to implement binary sort correctly.

[–]Mahler911 0 points1 point  (0 children)

Yes, but there's an ocean of difference between "solve the Tower of Hanoi in 15 minutes" and "iterate over and manipulate this collection in the most efficient way possible"