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
Tres Burritos
Sep 3, 2009

Dear goons, what kind of CSci jobs involve making computers go fast? I did some mutithreading stuff for my summer job and loved it a whole lot. My problem is that I don't know what kinds of titles/positions I should be searching for that would involve lots of multithreading and optimization, or in what fields I should be focusing my search.

Secondly, I go into interviews hoping like crazy that people will ask me about my job experience and then I always get the "Tell me about a school project" line. It's frustrating as gently caress, seeing as how it's the first section under work experience on my resume. Is there a polite way to say "PLEASE GOD ASK ME ABOUT MY WORK WITH XYZ COMPANY"? When I do try and steer away from the school stuff and say, "Well, I don't know about school work, but this summer I did xyz" I get a look like I have a prehensile dick growing out of my forehead. I feel like I go to these interviews on my campus and all the recruiters are either not CSci people or are just the generic HR guy that tours universities. Job searching is depressing as gently caress.

Also I feel like I ramble during interviews.

Adbot
ADBOT LOVES YOU

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Tres Burritos posted:

Dear goons, what kind of CSci jobs involve making computers go fast? I did some mutithreading stuff for my summer job and loved it a whole lot. My problem is that I don't know what kinds of titles/positions I should be searching for that would involve lots of multithreading and optimization, or in what fields I should be focusing my search.

All of them, to some degree. However, premature optimization is a problem waiting to happen. You optimize last, once you have a working solution and good unit test coverage. Then you can go in and optimize to your heart's content, time permitting.

In the Real World, you'll often have to skip optimization in order to have code that satisfies all the business requirements, actually works properly, is readable, has test coverage, and is delivered on-time.

Of course, that's all largely dependent on the type of industry you're in. For most purposes, though, having something run in 10 seconds instead of 20 seconds just doesn't matter. 20 seconds is fast enough, and the time you'd spend making it take 10 could be better spent on fixing Bug X or implementing Feature Y.

As for threading, it's one of the most difficult things to do right. Some languages (.NET languages, for starters) have taken some huge strides in the past few years in making asynchronous and multithreaded code much easier to write via compiler magic.

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
As with so many other SE aphorisms that get bandied about, the "premature optimization" one deserves to be read in context. Knuth's point was that optimization is important and beneficial, if it is guided by profiling.

quote:

Dear goons, what kind of CSci jobs involve making computers go fast?
Scientific computing, game engineering, compiler/runtime engineering (the last being concentrated in a few large companies). Multithreading at the OS level doesn't have much to do with optimization in these fields, though.

shrughes
Oct 11, 2008

(call/cc call/cc)

Tres Burritos posted:

Dear goons, what kind of CSci jobs involve making computers go fast? I did some mutithreading stuff for my summer job and loved it a whole lot. My problem is that I don't know what kinds of titles/positions I should be searching for that would involve lots of multithreading and optimization, or in what fields I should be focusing my search.

I work on a database engine, but of course we worry way way way waaay more about correctness than performance. But of course we care about performance too. Architecture ends up being much more important than any other aspect of optimization.

But really we care about having useful features that customers want. While being correct and having vague notions of performant-ness.

shrughes fucked around with this message at 08:27 on Dec 9, 2012

Amarkov
Jun 21, 2010

Gazpacho posted:

As with so many other SE aphorisms that get bandied about, the "premature optimization" one deserves to be read in context. Knuth's point was that optimization is important and beneficial, if it is guided by profiling.

This is amazing. Nothing dates an article like referring to disenchantment with COBOL as some hypothetical future event.

e: Although using ALGOL 60 as your pseudocode is a pretty close second

Rurutia
Jun 11, 2009
.

Rurutia fucked around with this message at 14:02 on Apr 18, 2013

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Rurutia posted:

I have a question about computer science jobs which might be out of place in a 'newbie programming job' megathread, but I wanted to try here first. My boyfriend's a software engineer with a CS BS degree from GT and 7 years of experience.

As he has advanced in his career, he finds himself hating the excessive meetings as he gets higher up. He has expressed to me several times that sometimes he finds himself unmotivated to advance his career because the more advanced he has become, the less of the work he loves to do he has actually gotten to do. I'm wondering if this is a problem endemic with the career progression of a typical software engineer (to management) and if a change in this aspect would be good for him.

From what I've seen, the kind of work he likes doing (designing etc) is more along the lines of a software architect. Most jobs of that nature seem to prefer an MS/PhD in CS. Would he do well to try and get a terminal master's (this seems like a waste to me, because in my field, 5 years of experience pretty much makes up for a terminal master's) or even a PhD? Is a CS PhD something that someone cannot make up for with work experience?

Software engineering / architecture and degrees are orthagonal. In fact, most of the folks I've met with advanced degrees are terrible software engineers. They know a ton of minutia about their very specific focus, but nothing about actually developing or designing software.

It sounds like he wants to be a hands-on architect -- someone who sits down, understands the needs of the business, and then chooses the appropriate technologies and architects a platform to meet their needs. After that, everyone on his team, including himself, writes the software.

Are you going to be involved in more meetings the higher you go up in the org chart? Yes. That's pretty much unavoidable. Can you minimize the amount of time? Also yes. It depends on how the projects are managed. If he's in a position where he can really drive change within his organization, he may want to try to adopt Agile software development practices.

Rurutia
Jun 11, 2009
.

Rurutia fucked around with this message at 14:03 on Apr 18, 2013

BirdOfPlay
Feb 19, 2012

THUNDERDOME LOSER

Ithaqua posted:

All of them, to some degree. However, premature optimization is a problem waiting to happen. You optimize last, once you have a working solution and good unit test coverage. Then you can go in and optimize to your heart's content, time permitting.

Now that I've seen this phrase used a couple of times (especially in regards to it being a bad thing), I'm curious about what exactly it means. You're surely not taking about ways to trim the fat off of algorithms before implementation, right? Or just designing them, initially, in terms of running faster?

I only ask cause that's how I've been coding recently due to working on Euler Problems where my assumption is that my gut solution will be inefficient.

awesmoe
Nov 30, 2005

Pillbug

BirdOfPlay posted:

Now that I've seen this phrase used a couple of times (especially in regards to it being a bad thing), I'm curious about what exactly it means. You're surely not taking about ways to trim the fat off of algorithms before implementation, right? Or just designing them, initially, in terms of running faster?

I only ask cause that's how I've been coding recently due to working on Euler Problems where my assumption is that my gut solution will be inefficient.

Knuth posted:

There is no doubt that the grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.
Yet we should not pass up our opportunities in that critical 3%. A good programmer will not be lulled into complacency by such reasoning, he will be wise to look carefully at the critical code; but only after that code has been identified.
http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf

So he's saying, there's a tradeoff between optimization and maintainability (and coding time and correctness etc etc). With low-level bit-fiddling optimizations, you're dramatically reducing the maintainability and "97%" of the time you're doing it in a place that doesn't need the speed, so you're just making your program worse.

This tradeoff is a little less true with algorithmic efficiency (ie a better algorithm doesn't necessarily screw up your debugging as much), and the gains are usually much more impressive, so the tipping point of whether an optimization is worthwhile changes. The general principle of "balance the costs and benefits of making optimizations instead of just going nuts on them" holds.

awesmoe fucked around with this message at 22:11 on Dec 10, 2012

FamDav
Mar 29, 2008

BirdOfPlay posted:

I only ask cause that's how I've been coding recently due to working on Euler Problems where my assumption is that my gut solution will be inefficient.

Well, two things.

1) The critical part of an Euler problem is the entire problem

2) The Knuth quote isn't really about algorithmic efficiency, which is what you're focusing on when you do these Euler problems.

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

FamDav posted:

The Knuth quote isn't really about algorithmic efficiency, which is what you're focusing on when you do these Euler problems.
Well, it can be. I know I've wasted a stupid amount of time coming up with a nice linear-time algorithm to solve a problem, only to realize that the O(n^3) naive solution was already way faster than it needed to be.

Amarkov
Jun 21, 2010

Plorkyeran posted:

Well, it can be. I know I've wasted a stupid amount of time coming up with a nice linear-time algorithm to solve a problem, only to realize that the O(n^3) naive solution was already way faster than it needed to be.

On one project I quicksorted a bunch of 10 element arrays :(

ShadowMoo
Mar 13, 2011

by Shine
For someone who had been into programming but has dropped out of college, what would be the go-to language if one wants to learn a marketable language fast and get a decent job?

Pweller
Jan 25, 2006

Whatever whateva.
The premature optimization talk reminds me of this presentation by Jonathan Blow, talkin straight about his opinions on software development

http://the-witness.net/news/2011/06/how-to-program-independent-games/

It's an interesting listen, think I was introduced to it in this thread awhile back.



ShadowMoo posted:

For someone who had been into programming but has dropped out of college, what would be the go-to language if one wants to learn a marketable language fast and get a decent job?

Depends on the area, but if you want 'fast', probably HTML/CSS & javascript for a web development gig.

shrughes
Oct 11, 2008

(call/cc call/cc)

ShadowMoo posted:

For someone who had been into programming but has dropped out of college, what would be the go-to language if one wants to learn a marketable language fast and get a decent job?

Python, C#, Java, or Ruby. The best choice might depend on your region.

^^^ and what he said.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

ShadowMoo posted:

For someone who had been into programming but has dropped out of college, what would be the go-to language if one wants to learn a marketable language fast and get a decent job?

Any language that you're interested in and can follow through in learning. Java, .NET, C, C++, Ruby, JavaScript, Python, it's all acceptable. There are even COBOL jobs out there.

Alternately: Go to Dice or Monster.com. Look at the job postings in your area. If you want to focus on employability, choose the language that there are the most postings in and start learning that. Then by the time you know the language well enough to program in it professionally, go back and see that a totally different language is in demand. :v: Then go back to the first paragraph I wrote and start over.

Safe and Secure!
Jun 14, 2008

OFFICIAL SA THREAD RUINER
SPRING 2013
Okay, suppose I want to live in NYC. Anyone want to take a stab at the hottest tools in that area?

shrughes
Oct 11, 2008

(call/cc call/cc)

Safe and Secure! posted:

Okay, suppose I want to live in NYC. Anyone want to take a stab at the hottest tools in that area?

I bet the average company looking for a Python or Ruby dev is more likely to tolerate a lack of degree. Why'd you drop out, anyway?

Safe and Secure!
Jun 14, 2008

OFFICIAL SA THREAD RUINER
SPRING 2013
I'm a different poster, I haven't dropped out. I am going to graduate soon, though.

sink
Sep 10, 2005

gerby gerb gerb in my mouf

Safe and Secure! posted:

Okay, suppose I want to live in NYC. Anyone want to take a stab at the hottest tools in that area?

Ruby, Python, SQL, Mongo, Redis in that order. There's some Scala peeps too.

http://nytm.org/made-in-nyc

Tres Burritos
Sep 3, 2009

Pweller posted:

The premature optimization talk reminds me of this presentation by Jonathan Blow, talkin straight about his opinions on software development

http://the-witness.net/news/2011/06/how-to-program-independent-games/

It's an interesting listen, think I was introduced to it in this thread awhile back.


Depends on the area, but if you want 'fast', probably HTML/CSS & javascript for a web development gig.

There should be a "Cool talks by smart dudes about computer stuff" thread. Everytime someone posts one of these they're generally really good.

double sulk
Jul 2, 2010

So I had a phone screen last week, later followed by a somewhat involved coding exercise which I completed, which led to this:

"Great work on this. [...] Would you be able to come visit the office in New York to meet the team and discuss further?"

I am presumably going up to NYC this Friday to meet with the people at the company. I don't know exactly what this means, though I assume "make sure you're an okay person."

Cicero
Dec 17, 2003

Jumpjet, melta, jumpjet. Repeat for ten minutes or until victory is assured.
That's a big part of it. They don't want to hire an anti-social neckbeard. The other reasons are to verify that you weren't cheating, and to just generally dig deeper into your skillset to see if you're a good match.

double sulk
Jul 2, 2010

Cicero posted:

That's a big part of it. They don't want to hire an anti-social neckbeard. The other reasons are to verify that you weren't cheating, and to just generally dig deeper into your skillset to see if you're a good match.

I'd like to think it's more of the first two things than the last, but it is a fairly big trip to make up there either way.

enthe0s
Oct 24, 2010

In another few hours, the sun will rise!

gucci void main posted:

I'd like to think it's more of the first two things than the last, but it is a fairly big trip to make up there either way.

In my experience companies usually pay for everything (if that's what you're worried about) so it's really just an investment of time on your part.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

gucci void main posted:

So I had a phone screen last week, later followed by a somewhat involved coding exercise which I completed, which led to this:

"Great work on this. [...] Would you be able to come visit the office in New York to meet the team and discuss further?"

I am presumably going up to NYC this Friday to meet with the people at the company. I don't know exactly what this means, though I assume "make sure you're an okay person."

If they're having you make a long trip out, that's a good sign. It's a shame you won't be in the city on Thursday, otherwise we could meet up and I could kidnap and ransom you to your loved ones we could grab a drink.

double sulk
Jul 2, 2010

Ithaqua posted:

If they're having you make a long trip out, that's a good sign. It's a shame you won't be in the city on Thursday, otherwise we could meet up and I could kidnap and ransom you to your loved ones we could grab a drink.

I'd like to hope so, considering that I did what I imagine is the hard part. I was initially told that I could either do a second call/technical thing over the phone, or I could instead do some code, and I opted for the code for a number of possibly obvious reasons. I would like to think that this is more of a "hammer out the details" kind of thing, but I'll have to see. It's a 1.5-2 hour trip up there, either way, so that's a lot of commitment on both ends.


enthe0s posted:

In my experience companies usually pay for everything (if that's what you're worried about) so it's really just an investment of time on your part.

I'm not sure what they're expecting as far as my getting up there. I still have to confirm everything, but Friday is the tentative as of right now.

The Insect Court
Nov 22, 2012

by FactsAreUseless
Sorta meta question, but anyone with some sort of hiring perspective have an informed opinion about programming contest/puzzle sites, resume-wise? Stuff like interviewstreet or Rosalind. I get a sense that they're useful at a basic level to filter out the kind of people who can't handle fizzbuzz, but what about for demonstrating more advanced skills? I like to think my 200-something rank on interviewstreet is kind of impressive but I'd feel better about wasting time on it if I was convinced it had any sort of relevance to actual employment.

DholmbladRU
May 4, 2006
I dont know if this is the correct place for this, however I figured id give it a shot. Currently I am employed with a large Business Intelligence company providing customers with "support" with SDK solutions. This can range from information on the API, testing SDK solutions(in ~5 languages), to creating training and customer facing documentation.

This was my first job out of college and I have been working here for ~2 years. I really enjoy what I do however I feel as if I am not utilizing my background from college in CS.

Currently I would not consider my coding to be a principal developer or anything, but I am a descent backend developer. What recommendations can youall make on how to improve myself as a developer? I have started to look into open source projects, however I am unsure where else to look. I dont want to take on smaller 'contract' dev jobs as my skills are not where I would like them to be at this point.

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

The Insect Court posted:

Sorta meta question, but anyone with some sort of hiring perspective have an informed opinion about programming contest/puzzle sites, resume-wise? Stuff like interviewstreet or Rosalind. I get a sense that they're useful at a basic level to filter out the kind of people who can't handle fizzbuzz, but what about for demonstrating more advanced skills? I like to think my 200-something rank on interviewstreet is kind of impressive but I'd feel better about wasting time on it if I was convinced it had any sort of relevance to actual employment.

I don't think anyone is going to look at your ranking on a website where you can submit answers in an uncontrolled environment and be impressed. Where I work it's hard enough getting people to not cheat when working on our test under controlled conditions.

People who do hiring tend to have day jobs they need to do - they're not going to spend too much time evaluating a website to see if a metric or ranking is meaningful.

By all means, solve the problems on these sites for practice, but most hiring people aren't going to really care about where you rank.

Being blunt, if I saw a ranking on a CV, I'd raise an eyebrow and would do some more digging to find out if the candidate is a good culture fit for our place. Again, that's just my opinion - others might not bat an eyelid.

kitten smoothie
Dec 29, 2001

Milotic posted:

Being blunt, if I saw a ranking on a CV, I'd raise an eyebrow and would do some more digging to find out if the candidate is a good culture fit for our place. Again, that's just my opinion - others might not bat an eyelid.
Naw, I think you're not the only one. I'd think the same thing if I saw someone put "mensa member" on a resume, honestly.

shrughes
Oct 11, 2008

(call/cc call/cc)
Saying I finished X'th (with a rather unimpressive value of X) on the Putnam contest helped me, mostly because it helped on the "is not a retard" front, on my first job (doing C# and web dev, nothing involving any more math than adding numbers and sorting them) after college.

If you're applying for your first job out of college, I think saying you were ranked Y'th on some InterviewStreet or Project Euler thing, I think would do some help in making you stand out from the generic comp sci student. It's not impressive, but it is evidence that you're more likely to be worth a phone screen. You're more likely to be the sort of person who cares about things, and less likely to be completely incapable of writing code (which 90% of CS majors are).

(If you're a mensa member, though, I'd schedule a phone screen and use it to make fun of you.)

oRenj9
Aug 3, 2004

Who loves oRenj soda?!?
College Slice

shrughes posted:

Saying I finished X'th (with a rather unimpressive value of X) on the Putnam contest helped me, mostly because it helped on the "is not a retard" front, on my first job (doing C# and web dev, nothing involving any more math than adding numbers and sorting them) after college.

How did you move from doing bog standard web development stuff to what you're doing now?

gonadic io
Feb 16, 2011

>>=
I know Fortran. I have absolutely no desire whatsoever to program in it ever again. Do I put it on my CV?

Pweller
Jan 25, 2006

Whatever whateva.

AlsoD posted:

I know Fortran. I have absolutely no desire whatsoever to program in it ever again. Do I put it on my CV?

No.

how!!
Nov 19, 2011

by angerbot
I just got off the phone for a phone interview. It ended like just about every other phone interview I do.

He started by asking a bunch of technical questions. Easy stuff that I had no problem answering. Then he asked me to solve an algorithm problem.

This was the problem: You have a list of integers. Write a function that takes that list, as well as an integer. Return two numbers from that list that add up to the integer passed in.

He wanted me to solve this problem over the phone. My first guess was to iterate over the items by comparing the first number to the second number, then the first to the third, then the first to the fourth, etc. until the end. Then compare the second to the third, then the second to the fourth, second to the fifth, etc until the end. When comparing, you add them together and see that they equal the number passed in.

This is obviously not optimal, so he asked me if I could do it in a more optimal way. I then explained to him that this is not a problem that I have ever solved, and doesn't represent the type of problems I solve every day, and that if he really wanted me to give him an optimal solution, to let me think about it for a few hours and send him the solution over email.

He insisted, so I begrudgedly thought about it for a little more. My second solution was to sort the list, then compare the first number with the second number, but stop once you get to the value in the list that is greater than passed in number minus the first number. Basically the same as the first solution, but instead of going all the way to the end, you stop once the solution is impossible.

He told me me that my solution is better, but theres an even more optimized solution. At that point I pretty much realized he was looking for someone who thinks exactly like him, and that even if I were to happen to get the same solution as him, he is not the kind of person I want to work for. It wouldn't bother me so much if it weren't for the face that literally 99% of phone interviews end up like this.

Am I the only person who is unable to write algorithms over the phone? In real life, being faced with problems like these means you have bigger problems, IMO. Instead of trying to optimize through these types of algorithms, its best to redesign the system itself that makes this type of problem happen in the first place. All real life problems have a context. Imaginary interview problems have no context. What do these numbers represent? Why do we have a stream of numbers that scales to the point where we absolutely need the most optimal algorithm? Answers to these questions are essential to creating the best solutions, but are unanswerable when asked as part of an interview.

Just wanted to rant.

Pweller
Jan 25, 2006

Whatever whateva.
Think of it as a game. The interviewer will restrict the game's rules more and more to see how you consider the problem under varying circumstances. This is almost certainly an exercise you do every day working with code.

Don't think of the questions as black and white, or adversarial, the interviewer (probably) isn't looking at it that way. Saying there is a better solution is simply a gentle prod to let you know it isn't a trick question. Interviewers want you to succeed, try to relax man, you'll find a good match soon :)

No Safe Word
Feb 26, 2005

To be honest it sounded like other than a bit of bitterness toward the process, you did fine. If he was insisting that you get the "right" answer, then that's stupid, but pushing for optimizations or alternate implementations is not uncommon and the motivating factor is to see how you can adapt to try and see your critical thinking process.

The naive solution at first is fine, and if you suggested it immediately that's fine.

Then adapting using the sorted list is good as well, shows that you realize that you don't want to have to check everything every time.

You aren't expected to really be able to fully write algorithms over the phone. Just display critical thinking about the relevant properties of a problem given a set of requirements. You did do a fair amount of that quite successfully. And yes, the problems are fabricated and generic for a reason and there's often better knobs to turn than the arbitrary ones you're constrained by, but for the sake of simplicity and to probe for problem solving approaches they're what you have to deal with.

Adbot
ADBOT LOVES YOU

shrughes
Oct 11, 2008

(call/cc call/cc)

how!! posted:

He told me me that my solution is better, but theres an even more optimized solution. At that point I pretty much realized he was looking for someone who thinks exactly like him, and that even if I were to happen to get the same solution as him, he is not the kind of person I want to work for. It wouldn't bother me so much if it weren't for the face that literally 99% of phone interviews end up like this.

So you're given a problem with an obvious O(n^2) solution. Naturally the first thing you'd like to do is to perform less work in finding the answer. Since the n^2 solution space is rocky and uncomfortable to navigate, it would be nice if it were smooth, so that you had a nice neat contour line passing through the grid. Sorting the list is the most obvious option, a completely harmless operation because it destroys no useful information, costs less than n^2 time, and it gives us a single monotonic contour line through the solution space. Then you walk along that contour line, hopping back and forth across it, hoping you land right on it. That takes linear time. So that's how you solve the problem in O(n log n) time.

That's how a good problem solver would reason through the situation, except that I'm omitting the part where a whole bunch of solution ideas flashed through his head before he discarded them. I didn't only view the problem as searching a 2D map until after considering what it looked like after deciding you might as well sort the array because there's no way you could get a linear time solution anyway. And since a simple double for loop was still going to be O(n^2) I considered what happened if the second index was iterated backward and then hey you could just continue from the existing location of the second index and that brought everything down to linear time, but by then I had twisted the second backwards iteration into the second dimension and heeey that's a nice way to visualize it ("contour lines!") and the obvious walking along the contour line in linear time with O(n log n) cost for sorting and O(n) cost for navigating the contour line or caching the location from which you can start the second iterator, whatever you want to call it, it's the same thing, problem sa-holved!

So we had:
1. Immediately recognizing that an O(n) solution was unlikely and imagining the array as sorted from here on out.
2. Recognizing that walking both iterators from the front was absurd.
3. ...

You eventually got to 1, but didn't get past 2. You didn't have to visualize the 2D map of f(x,y) = a[x] + a[y] and see the contour line rolling through, and you didn't have to consider walking an iterator backward and notice that you could cache it. You could have carefully jumped down to reconsider a part of the subproblem: Given a value for the first index, is there a second value in the sorted array that adds with the first to produce the input value? You tried finding that out by iterating through the array. But you could have binary searched the array! That gives you an O(n log n) solution and it was sitting there right next to your quadratic time solution, a second answer to the same question, a simple tweak on the algorithm. You weren't asked to think like the interviewer -- when asked to solve a problem like this, the question is whether you're good at navigating the problem solving space, and there's multiple paths to different solutions. Sometimes people get stuck when doing this, and so I ask multiple questions so that they have multiple chances to prove themselves. At least one respectable greybeard has observed that all the people he found who were good at high level architecture were also good at algorithmic problems like that.

You also pulled the whole "I don't see how this is the sort of thing I'd ever face in practice" line, which basically means you might as well just hang up the phone. I got pulled that line after an interview, and I replied "Yeah, they're simplified versions of problems we do face in practice," only not really, I was much more gracious and specific in my response. I'm guessing that's not true of many places, instead it's their stand-in for an intelligence test. I think the interview process has three main things: Are you comfortable writing clean and nonfragile code? Are you going to walk us into a corner with terrible design decisions? Are you going to fit in well with the team? I think you mostly hurt most strongly with regard to the third question. After all, everybody does badly on an algorithmic problem solving question or two. You're pretty good with the first, from what I remember.

oRenj9 posted:

How did you move from doing bog standard web development stuff to what you're doing now?

I sent a spergacious resume and cover letter that said things like "I actually don't suck at programming" and "I have written functional data structures in an arena allocator in C" and "Finished Xst in the <college programming contest>" for some value of X. Then on the interviews I covered up my inner sperg and acted like a normal person.

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