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
the talent deficit
Dec 20, 2003

self-deprecation is a very british trait, and problems can arise when the british attempt to do so with a foreign culture





Good Will Hrunting posted:

I certainly remember things from my DS course and for some topics a light refresher is more than adequate. I'm not spending like 3 weeks hammering down linked lists or something, but I do need to do a little practice as a refresher if they were to come up. It's the harder problems that I'm spending the bulk of my time on. One I really struggled with last time was Towers of Hanoi. Regardless of being able to solve most of the other recursion problems I saw - that one still kicked my rear end to conceptualize.

how often do you actually get rejected after tech interviews because you couldn't perform? i think you probably have different expectations than the people asking you these questions. most interviewers just want to see if you can recognize the problem and recall the broad outline of a solution. if people are expecting working solutions or perfect recall of algorithms or data structures you probably don't want to work with them

Adbot
ADBOT LOVES YOU

asur
Dec 28, 2012

the talent deficit posted:

how often do you actually get rejected after tech interviews because you couldn't perform? i think you probably have different expectations than the people asking you these questions. most interviewers just want to see if you can recognize the problem and recall the broad outline of a solution. if people are expecting working solutions or perfect recall of algorithms or data structures you probably don't want to work with them

This is pretty much the polar opposite of what was expected on both sides in my experience in SV. If you don't have a working solution at the end of the interview, then you've failed that interview. Expectations in generally are that you solve the problem with a complexity that is reasonably close to optimal to be considered a great candidate.

There is a large element of luck to all this as candidates are generally weak in one or more areas and you might get several questions in those areas or none.

The Leck
Feb 27, 2001

Munkeymon posted:

I bet this is why you're getting grilled about algorithms more than most of the posters ITT. They see your degree wasn't in CS so they crack their knuckles and think better make sure this isn't some dogshit imposter to the brotherhood :smug:* because your prep work is nuts compared to what I'd realistically do, even for a big 5

*realistically, this is the word they'd use, unfortunately
I've definitely felt like this was happening in interviews, although who knows how much of that is me projecting. I did interview at Amazon a while back and fielded the "so, I see you don't have a CS or EE degree... why are you here?" question in every single one of the six interviews plus lunch that day. On a less intense note, for my current job I got a grilling on basic Java (interfaces, abstract classes, what the compiler will/will not allow), even though there's no Java in use at the company at all. I guess it was a similar "Is this guy bullshitting us?" kind of thing, even though I was a referral.

JawnV6
Jul 4, 2004

So hot ...
My experience with interviews is that the journey matters a lot more than the destination. This idea that someone who wasn't in the room could take a picture of the whiteboard and give a hard pass/fail purely based on edit distance to a perfect solution is wild.

Seconding the talent deficit's question about how you "know" the results as well. I've received honest criticism specific to one interview exactly once in my life and it was devastating. Ruined my weekend. When giving feedback on candidates it's never been anything as narrow as "your solution was O(n2.5) when we required O(n2.1) or better for question (C)," it's much more broad.

Good Will Hrunting
Oct 8, 2012

I changed my mind.
I'm not sorry.
I'd say 50/50. Some places wanted me to work with them on whatever that website is where your code needs to compile and run, while others were white-boarding. I actually only "failed" Google and one other one as far as the code part goes - I failed system design in the others! That was after pretty extensive prep though. Probably 50 hours.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Today is interview day for that medior java dev role, as a contractor. I did not finisch a java backend with js frontend and in memory database. I did write a few endpoints for data manipulation using h2 and spring boot so that is a thing I guess.

The recruiter said to be a nice person that shows intelligence, motivation and an ability to learn. Nobody is expected to know everything and certainly not someone with less than 5 years of experience.

Star War Sex Parrot
Oct 2, 2003

Keetron posted:

in memory database
I’m curious if they gave you any more direction on this aspect.

Also good luck!

Munkeymon
Aug 14, 2003

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



Paolomania posted:

Staying current in tech is always an oldie concern and to that end the stackoverflow dev survey came out today: https://insights.stackoverflow.com/survey/2018/#technology

How do people feel about this measure of hot tech? I had no idea that JavaScript and Node.js were actually that popular. Unsurprising that MySQL is still undisputed king of databases.

I suspect that JS is overrepresented on SO because of a combination of bad libraries that mainly have useful 'documentation' in the form of SO Q&A tagged with that library and a bunch of novices getting into JS because it's relatively cool and the barrier to entry is low. I can find good answers to many many C#/.Net questions on MSDN docs.microsoft bu I can't usually say the same for flavor-of-the-week.js

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

Munkeymon posted:

I suspect that JS is overrepresented on SO because of a combination of bad libraries that mainly have useful 'documentation' in the form of SO Q&A tagged with that library and a bunch of novices getting into JS because it's relatively cool and the barrier to entry is low. I can find good answers to many many C#/.Net questions on MSDN docs.microsoft bu I can't usually say the same for flavor-of-the-week.js

The quality of documentation for JS libraries pisses me the gently caress off. They seem to be universally written as "here's a bunch of tutorials on how to use this library in specific ways!" and nobody bothers to include a reference or an index. Half the time they don't even document what all the parameters to their functions do. And this is for big, widely-used libraries.

Good Will Hrunting
Oct 8, 2012

I changed my mind.
I'm not sorry.
Been 4 years but jQuery documentation, the last I used it, was spectacular. Node's documentation was mediocre, at best, but has greatly improved. I just remember the first time I was figuring out how to use child process and how sparse that doc was but now it's fairly nice.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Star War Sex Parrot posted:

I’m curious if they gave you any more direction on this aspect.

Also good luck!

Nope, that was it. I used H2 as per some tutorial I found and it works fine with SpringBoot. They use some local MongoDB instance for local testing.
We never looked at the code, they were more interested in other stuff. I feel like I hosed up for admitting I have no clue about javascript but did emphasize I am super motivated and when landing the job would jump in the courses I have ready.


edited a few hours after I wrote the above: didn't get the job, not enough experience in java.

Pollyanna
Mar 5, 2005

Milk's on them.


Sounds like they were looking for someone very very specific.

mrmcd
Feb 22, 2003

Pictured: The only good cop (a fictional one).

Good Will Hrunting posted:

There was someone in this thread that had a similar experience to me interviewing here who ended up saying gently caress it and just going to Google. Maybe mrmcd?

You mean whiteboard style, 4-5 hour interviews? Yeah they are pretty common now (or were two years ago when I was last looking), though not an iron clad rule.

Once you do a couple of them you get the hang of it, and know what to study. Google also literally sends you a list of things to review and study beforehand.

Like, we can sit here and bikeshed all day on whether this is or is not an effective way to interview people, but if a job you want has that kind of interview, just treat it like a professional examination and prepare ahead of time for it. If they *surprise* you with that, then that's kinda lovely yeah, but otherwise stop acting like it's some major human rights violation when you're asked to provide evidence of competency and skill in a job interview.

By far my weirdest interview was some lovely startup connected to Jared Kushner. They had a big room where a bunch of people were all crammed into random desks, they asked me a bunch of random questions about how equity clearing worked, one of their devs proclaimed that no one could possibly be using Maria DB in production, and then asked me to leave. Their head of engineering had this creepy Russian used car salesman vibe going on too.

Good Will Hrunting
Oct 8, 2012

I changed my mind.
I'm not sorry.
They're so common now you should never be blindsided and I think they're about the same as take-homes, that is to say a gigantic crap-shoot.

mrmcd
Feb 22, 2003

Pictured: The only good cop (a fictional one).

Other places I interviewed that did long whiteboard style were... Two Sigma, Bloomberg, Shutterstock, KCG.. kinda. Shutterstock people were actually pretty cool and another goon referred me, and I only ended up passing on their offer because the money wasn't quite good enough to walk away from a big stock vesting tranche six months early. Those six months suuuucked but that's a whole other story.

The worst part tbh is just that it takes a whole day, so you end up burning lots of vacation time or inventing increasingly elaborate medical problems if you're doing a scattershot approach to interviews. Also Two Sigma won't buy you lunch unless you do good enough on the morning interviews, and they tell you this at the start lol. Glad I was competent enough to warrant a passable pad thai.

Good Will Hrunting
Oct 8, 2012

I changed my mind.
I'm not sorry.
MLBAM, Squarespace, and Betterment were my longer white-boardy ones here. On top of Google phone screen and a few other phone screens that were.. Collaberpad and Coderalitedit

At the end of the day, whiteboarding is just a minor nuisance I don't enjoy preparing for where my biggest concern this time around is how I explain my team has accomplished basically nothing that went into prod or stuck around (or much of anything, really) in the 12 months I've been there. This should be fun.

Good Will Hrunting fucked around with this message at 03:59 on Mar 22, 2018

FlapYoJacks
Feb 12, 2009

mrmcd posted:

Other places I interviewed that did long whiteboard style were... Two Sigma, Bloomberg, Shutterstock, KCG.. kinda. Shutterstock people were actually pretty cool and another goon referred me, and I only ended up passing on their offer because the money wasn't quite good enough to walk away from a big stock vesting tranche six months early. Those six months suuuucked but that's a whole other story.

The worst part tbh is just that it takes a whole day, so you end up burning lots of vacation time or inventing increasingly elaborate medical problems if you're doing a scattershot approach to interviews. Also Two Sigma won't buy you lunch unless you do good enough on the morning interviews, and they tell you this at the start lol. Glad I was competent enough to warrant a passable pad thai.

One of the perks of coming in at 0500 is leaving at 1300. Thus, interview times aren’t an issue.

redleader
Aug 18, 2005

Engage according to operational parameters

ratbert90 posted:

One of the perks of coming in at 0500 is leaving at 1300. Thus, interview times aren’t an issue.

Interviewing after a full day's work seems like not such a great idea.

Jaded Burnout
Jul 10, 2004


redleader posted:

Interviewing after a full day's work seems like not such a great idea.

When I interviewed at Stripe it was a full day of whiteboarding the day after a transatlantic flight.

Lily Catts
Oct 17, 2012

Show me the way to you
(Heavy Metal)
I just got my increase letter. I thought it was a typo, but I got a whopping 3% increase after 19 months of working here (and almost dying in the process due to 60 hour workweeks). I managed to put myself in a team that doesn't work itself to the bone, but I'm still in shock.

This is totally not normal, isn't it? My last job did like 15% increase per year, and I was an above average performer.

(I also live in the Philippines for context)

EDIT: We also get a bonus which is like a 14th month pay at the minimum. The company did well so I got paid twice my monthly salary (But it's taxed).

Lily Catts fucked around with this message at 09:39 on Mar 22, 2018

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

Schneider Heim posted:

I just got my increase letter. I thought it was a typo, but I got a whopping 3% increase after 19 months of working here (and almost dying in the process due to 60 hour workweeks). I managed to put myself in a team that doesn't work itself to the bone, but I'm still in shock.

This is totally not normal, isn't it? My last job did like 15% increase per year, and I was an above average performer.

(I also live in the Philippines for context)

EDIT: We also get a bonus which is like a 14th month pay at the minimum. The company did well so I got paid twice my monthly salary (But it's taxed).

COL raises are the norm. This is one of the reasons it’s advantageous to jump ship every 1-3 years. There are disadvantages to keeping this loop very short.

Lily Catts
Oct 17, 2012

Show me the way to you
(Heavy Metal)

leper khan posted:

COL raises are the norm. This is one of the reasons it’s advantageous to jump ship every 1-3 years. There are disadvantages to keeping this loop very short.

It's supposed to be an annual performance increase, though?

Good Will Hrunting
Oct 8, 2012

I changed my mind.
I'm not sorry.
The only question I've struggled with so far is reverse a linked list with recursion. I'm a meme. For real though, I find linked list questions typically very easy and breezed through the ones that were "more complicated" (add two numbers represented by linked lists, etc), have no problem with most other recursion problems, but when it's something like this.. while I can reason around the problem, coming up with the algo is especially difficult to me???

Paolomania
Apr 26, 2006

Schneider Heim posted:

It's supposed to be an annual performance increase, though?

Every job I've had prior to big G did this, with annual bonus more of a performance reward and significant pay bumps only coming on promotion.

Jose Valasquez
Apr 8, 2005

Good Will Hrunting posted:

The only question I've struggled with so far is reverse a linked list with recursion. I'm a meme. For real though, I find linked list questions typically very easy and breezed through the ones that were "more complicated" (add two numbers represented by linked lists, etc), have no problem with most other recursion problems, but when it's something like this.. while I can reason around the problem, coming up with the algo is especially difficult to me???

Wouldn't it just be something like

code:
List<Butt> reverseList(List<Butt> butt_list) {
 if (butt_list.size() == 1) {
  return butt_list;
 }
 Butt first_butt = butt_list.at(0);
 butt_list.remove(0);
 reverseList(butt_list);
 butt_list.push_back(first_butt);
 return butt_list;
}

Good Will Hrunting
Oct 8, 2012

I changed my mind.
I'm not sorry.
Yeah it's not complicated, but I really struggle to think like that and conceptualize certain things recursively (honestly, reverse a linked list even iteratively in-place the first few times I saw it made my head spin) and I'm not sure how to increase my comfort there. I actually don't struggle with most problems that lend themselves to recursion anymore, it's just certain problems like this.

Naar
Aug 19, 2003

The Time of the Eye is now
Fun Shoe
It might be easier to think of it in head/tail terms, each recursive call conses one more item onto the accumulator:

code:
||| Reverse a list onto an existing tail.
reverseOnto : List a -> List a -> List a
reverseOnto acc [] = acc
reverseOnto acc (x::xs) = reverseOnto (x::acc) xs

||| Return the elements of a list in reverse order.
reverse : List a -> List a
reverse = reverseOnto []

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


Spend some time learning Haskell or OCaml. You'll get a lot of practice writing recursive functions, and that will translate into an easier time doing imperative programs.

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

Jose Valasquez posted:

Wouldn't it just be something like

code:
List<Butt> reverseList(List<Butt> butt_list) {
 if (butt_list.size() == 1) {
  return butt_list;
 }
 Butt first_butt = butt_list.at(0);
 butt_list.remove(0);
 reverseList(butt_list);
 butt_list.push_back(first_butt);
 return butt_list;
}

The base case can be zero! :eng101:

code:
Butt* &#128169;Butt(Butt* butts, Butt* &#128169;Butts) {
  if (butts == nullptr) return &#128169;Butts;
  Butt *hold = butts->next;
  butts->next = &#128169;Butts;
  return &#128169;Butt(hold, butts);
}
I’m at a conference and don’t have access to my computer, but I could probably throw together a gif in opus magnum to reverse a linked list as well.

Forums hates emoji I guess 💩

Jose Valasquez
Apr 8, 2005

Good Will Hrunting posted:

Yeah it's not complicated, but I really struggle to think like that and conceptualize certain things recursively (honestly, reverse a linked list even iteratively in-place the first few times I saw it made my head spin) and I'm not sure how to increase my comfort there. I actually don't struggle with most problems that lend themselves to recursion anymore, it's just certain problems like this.

I find that the best way to think about the problem recursively is to start at the end and work my way back.
What happens if I pass in a list with 1 entry? I just return it because a reversed 1 entry list is the same list.
What if I pass in a list with 2 entries? I take the first entry and move it to the end of the list.
3 entries? Remove first entry, remove second entry, put second entry at end of the list, put first entry at the end of the list.
Now the recursive nature is more obvious, excluding the base case I remove the first entry, reverse the rest of the list, then put the first entry at the end of the list.

Jose Valasquez
Apr 8, 2005

leper khan posted:

The base case can be zero! :eng101:
Only a nerd would try to reverse an empty list and they deserve whatever error comes back :colbert:

Star War Sex Parrot
Oct 2, 2003

ultrafilter posted:

Spend some time learning Haskell or OCaml. You'll get a lot of practice writing recursive functions, and that will translate into an easier time doing imperative programs.
Yeah I was gonna say, implement some data structures in a functional language and that poo poo becomes easy.

Munkeymon
Aug 14, 2003

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



"What recursion? Just swap the head and tail pointers" - pre-coffee thoughts :downs:

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
The real solution is to use a doubly-linked list, and just go through and swap all the "next" and "prev" pointers for each element of the list in a simple for loop. O(n) runtime, O(1) space (for the reversal algorithm, not the list itself), no risk of blowing out your stack or worrying about whether your language does tail recursion properly.

Jose Valasquez
Apr 8, 2005

Or just call list.reverse() and assume it works well.

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:

The real solution is to use a doubly-linked list, and just go through and swap all the "next" and "prev" pointers for each element of the list in a simple for loop. O(n) runtime, O(1) space (for the reversal algorithm, not the list itself), no risk of blowing out your stack or worrying about whether your language does tail recursion properly.

Store a reversed flag in your structure and do it in O(1) time

Lily Catts
Oct 17, 2012

Show me the way to you
(Heavy Metal)

Paolomania posted:

Every job I've had prior to big G did this, with annual bonus more of a performance reward and significant pay bumps only coming on promotion.

Yeah I'm going to jump ship. The problem is that I've just started a pivot to DevOps so I'd need to amass skills in order to be desirable in the market. So I'll spend some of my free time doing that, and work on getting AWS-certified.

I guess I got really spoiled by my previous company. Lasted 6 years there, probably a lot more than I should have, but I liked the culture and nature of work there.

Good Will Hrunting
Oct 8, 2012

I changed my mind.
I'm not sorry.

ultrafilter posted:

Spend some time learning Haskell or OCaml. You'll get a lot of practice writing recursive functions, and that will translate into an easier time doing imperative programs.

Genuinely think I should dive deeper into a functional language. I work with Scala at work but only really in the capacity of using it like a wrapper for Java, we have so much interop with Java that it prohibits certain things.

E; http://learnyouahaskell.com/ this is... something

Good Will Hrunting fucked around with this message at 02:34 on Mar 23, 2018

Ghost of Reagan Past
Oct 7, 2003

rock and roll fun

Good Will Hrunting posted:

Genuinely think I should dive deeper into a functional language. I work with Scala at work but only really in the capacity of using it like a wrapper for Java, we have so much interop with Java that it prohibits certain things.

E; http://learnyouahaskell.com/ this is... something
Yes...learn Haskell. See beyond the veil.

Adbot
ADBOT LOVES YOU

Star War Sex Parrot
Oct 2, 2003

It’s actually decent.

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