News for hackers. Stuff that matters.
Re:How I went from failing every interview to a job at Amazon by ZanyProgrammer on Sunday April 30, 2017 @05:11PM (#14233872)
It appears the OP describes his experience as a college student (presumably full time) at Stanford. As someone with a bit more atypical college background, who now works, the idea of devoting so much of my free time to studying boggles my mind. Programming 9-5 everyday makes me much less likely to want to do any coding when I get home.

And it really sucks that being a full time programmer isn't remotely sufficient experience for any kind of technical job interview. I'd be laughed out of the office if I suggested we write BST algorithms on whiteboards.

Re:How I went from failing every interview to a job at Amazon by unoti on Sunday April 30, 2017 @05:48PM (#14234032)
> the idea of devoting so much of my free time to studying boggles my mind. Programming 9-5 everyday makes me much less likely to want to do any coding when I get home.

I can sympathize, but I suggest long term you figure out a way to get over this sentiment. If you plan to work in the industry for any length of time you absolutely must study to stay employable.

With few exceptions almost every segment of the industry changes how it does things about every six years. What you do now will be pretty out of date in mid 2020. I've been working as a programmer since the late 80s. If I step back in six year increments and look at the technologies I was using, here's what I get:

2011: Python, Django, MySQL, Jquery, Mercurial (not Git).

2005: PHP, CakePHP, MySQL.

1999: AIX, PowerBuiler, VB6, FoxPro, Access

1993: DBase 3, 8 bit embedded systems (68HC11)

At every stage of my career people I've known said there was no need to go learn new stuff. What they're doing will always be in demand. I'm talking about people doing things like ANSI 77 COBOL, RPG/3, and system 36 assembler. They were probably right, I'm guessing there's some orgs out there still using that stuff. But the options get smaller every year.

If you want to have your pick of the best opportunities available and be in control of your own destiny, and want to work in the industry more than 5 years, you're going to have to train yourself.

It'll help if you figure out a way to enjoy the experience and have fun with it.

Re:How I went from failing every interview to a job at Amazon by baddox on Sunday April 30, 2017 @06:01PM (#14234096)
I'm not attributing anything to either of your claims, but I'll claim that there's a big difference between staying fresh on CS interview stuff and staying up to date with production stacks. Both are probably necessary for maintaining employability at the interview stage to some extent, but the latter is a lot more reasonable than the former. You'll use modern stacks in most new jobs, but you won't use CS minutiae in most new jobs.
Re:How I went from failing every interview to a job at Amazon by jghn on Sunday April 30, 2017 @07:16PM (#14234426)
You don't necessarily need to study for hours in your spare time to do this. Usually when people talk about studying to pass a Big 4 interview they're talking about brushing up on the algorithm stuff and not learning some new tech. For the sort of thing you're talking about, finding your way into jobs working on cool stuff will often provide the boost that you need.

IMO all but the most serious of side projects tend to not build enough experience to pass an interview for Technology XYZ anyways so unless a company is willing to deal with a newbie, and many are, it doesn't matter that much.

Re:How I went from failing every interview to a job at Amazon by dkarapetyan on Sunday April 30, 2017 @06:25PM (#14234205)
The fundamentals don't change. Merge sort in Cobol is the same as in assembly. The rest is window dressing.
Re:How I went from failing every interview to a job at Amazon by sidlls on Sunday April 30, 2017 @08:32PM (#14234731)
Actually the rest isn't window dressing, unless you're working on a very narrowly scoped glorified CS project. Actual engineering-scope projects may or may not require a deep understanding of "the fundamentals" but certainly not to the extent that the focus on them for interviews suggests.
Re:How I went from failing every interview to a job at Amazon by dkarapetyan on Sunday April 30, 2017 @08:45PM (#14234777)
I don't understand what distinctions you are drawing. I don't know what engineering-scope vs CS means.
Re:How I went from failing every interview to a job at Amazon by unoti on Sunday April 30, 2017 @06:28PM (#14234219)
You're right, but the window dressing is the platforms we use to build production software. Other people responding to this comment seem to think that the CS fundamentals aren't worth getting good at. I think both the CS fundamentals and modern frameworks are both worth knowing well.
Re:How I went from failing every interview to a job at Amazon by arvinsim on Sunday April 30, 2017 @07:07PM (#14234383)
But then again, it goes back to the question of time. It is already hard enough to keep up with modern frameworks on one's free time. Adding CS fundamentals to the mix makes it worse. All of our free time will be eaten up.

Unless you like to be immersed in that world 24/7, something has got to give.

Re:How I went from failing every interview to a job at Amazon by krupan on Sunday April 30, 2017 @07:16PM (#14234427)
The fundamentals don't change every six years. Get them down, then do a quick refresher before a job interview.
Re:How I went from failing every interview to a job at Amazon by dkarapetyan on Sunday April 30, 2017 @07:36PM (#14234532)
This is the correct answer. Much of CS theory is timeless. Relational algebra has not changed since it was conceived and applied to create SQL.
Re:How I went from failing every interview to a job at Amazon by diminoten on Sunday April 30, 2017 @07:42PM (#14234559)
True, but you don't write merge sorts anymore. A lot of the fundamentals are valuable to know but not actually used in most situations. It's good you know how TLS works, but you really ought not be writing a TLS library yourself.
Re:How I went from failing every interview to a job at Amazon by dkarapetyan on Sunday April 30, 2017 @07:45PM (#14234575)
You'd be surprised how often tricks used in implementing those fundamental algorithms can be useful in day to day work.

Recent example I can think of was using GLPK to implement a dynamic allocation strategy for some spot instances for a pool of heterogeneous servers. I did not implement my own solver for the integer linear constraints but just knowing that allocation problems can be expressed as integer linear programs helped me tackle the problem in a way that others did not think of.

So I don't really buy the argument that knowing merge sort is useless knowledge because you never get to implement it. The value goes beyond just knowing the implementation. Same goes for other kinds of fundamental and timeless concepts and results.

Re:How I went from failing every interview to a job at Amazon by diminoten on Sunday April 30, 2017 @11:03PM (#14235326)
Sure, but you're the guy who writes the library that I use because I have no clue what the hell you just said! It'd be downright dangerous if I hand-roll anything like it.
Re:How I went from failing every interview to a job at Amazon by dkarapetyan on Monday May 01, 2017 @12:26AM (#14235568)
I hope that's not the lesson here. I was trying to get at the fact that understanding the fundamentals means understanding and exploiting the connections between seemingly different concepts and that learning and understanding merge sort is not time wasted and will come in handy in all sorts of situations.

When in doubt just remember this Feynman quote

“Right. I don’t believe in the idea that there are a few peculiar people capable of understanding math, and the rest of the world is normal. Math is a human discovery, and it’s no more complicated than humans can understand. I had a calculus book once that said, ‘What one fool can do, another can.’ What we’ve been able to work out about nature may look abstract and threatening to someone who hasn’t studied it, but it was fools who did it, and in the next generation, all the fools will understand it. There’s a tendency to pomposity in all this, to make it deep and profound.” – Richard Feynman, Omni 1979

Re:How I went from failing every interview to a job at Amazon by diminoten on Monday May 01, 2017 @12:42AM (#14235607)
The point I'm trying to make is that what you're describing as "fundamentals" aren't actually fundamentals; that it's a spectrum, and the "things that need to be known to excel" are not what they used to be. Maybe they never were those things.

There's a heavy bias towards the belief that CS, as it is currently taught, provides the "fundamentals" of software development and design. It does not, at least not as completely as the common belief seems to be. This can be reinforced by the current state of our interview processes. One has to re-prove one's understanding of such fundamental concepts, when the degree should, in theory, be enough, as it is in many other professions.

Conversely, a failure to understand fundamental CS concepts (invert a binary tree) doesn't preclude someone from being a successful software engineer (create homebrew).

Re:How I went from failing every interview to a job at Amazon by JamesBarney on Sunday April 30, 2017 @08:37PM (#14234750)
In other news, every employer under the sun complains there aren't enough qualified developers.
Re:How I went from failing every interview to a job at Amazon by jackyinger on Sunday April 30, 2017 @09:11PM (#14234859)
You can be sure that they want more supply in the market to drive down cost! I think it's safe to say that developers are pretty expensive as far as individual contributors go. Especially good ones.
Re:How I went from failing every interview to a job at Amazon by jacquesm on Sunday April 30, 2017 @10:29PM (#14235212)
Companies are perfecly happy paying their sales staff huge bonuses for 'value delivered', the fact that programmers are at the beginning of that value chain in many cases and bad at negotiation actually makes them cheap. Even the good ones.
Re:How I went from failing every interview to a job at Amazon by redblacktree on Monday May 01, 2017 @03:20PM (#14240596)
Good ones are spectacularly cheap. 10x developers are a real thing, but I've only very rarely heard of anyone who makes 10x salary as an individual contributor. Those folks are names most in this community would know.
Re:How I went from failing every interview to a job at Amazon by ZanyProgrammer on Sunday April 30, 2017 @06:05PM (#14234110)
That's different though. Its like comparing learning Angular 2 or MongoDB with grinding through Cracking the Coding Interview. Sure they both involve doing stuff in your spare time, but the former can be (or made to be) much more interesting than regurgitating algorithms.
Re:How I went from failing every interview to a job at Amazon by tdumitrescu on Sunday April 30, 2017 @10:29PM (#14235213)
To each his own I guess. When I find time to get on those hackerrank type sites, I find the algorithm practice and refreshers to be both enjoyable and time extremely well spent in terms of maintaining fundamental CS skills. It doesn't matter if my job doesn't have me implementing graph algorithms every day, it affects the code I write (and decide not to write) all the time. Learning how to weld a few 3rd-party APIs together just isn't enough to be a truly good professional.
Re:How I went from failing every interview to a job at Amazon by smithsmith on Wednesday May 03, 2017 @07:51AM (#14254897)
Now i am realizing this. Once you accept that the only way to remain in the industry is to work after work you just get used to it, although it still sucks :) .
Re:How I went from failing every interview to a job at Amazon by ci5er on Monday May 01, 2017 @12:09AM (#14235507)
HC11 in 93? May I ask if you worked at Moto, or were you with a client?
Re:How I went from failing every interview to a job at Amazon by objclxt on Sunday April 30, 2017 @05:47PM (#14234027)
> And it really sucks that being a full time programmer isn't remotely sufficient experience for any kind of technical job interview

I won't name names, but at least one large tech company in the bay actually runs evening classes for people interviewing (classes that are run by somebody very well known in the interview prep field: these aren't cheap sessions run by somebody internal).

When I found this out I could only laugh: I assume the HR department looked at the number of people flaming out of the interviews and thought "what could we do about this?"...and rather than treating the symptom (changing the way that they interview) they treated the problem instead (even more prep).

Re:How I went from failing every interview to a job at Amazon by stale2002 on Sunday April 30, 2017 @05:50PM (#14234044)
Let me guess.

The company is Google and the interview prep person is Gayle from cracking the code interview.

Re:How I went from failing every interview to a job at Amazon by poikniok on Sunday April 30, 2017 @07:10PM (#14234397)
Close, I think the company is Facebook.
Re:How I went from failing every interview to a job at Amazon by tdeck on Sunday April 30, 2017 @10:22PM (#14235174)
Sounds like something Facebook would do. When I interviewed they told me that even though I was an industry candidate, they always try to make sure everyone gets two weeks before the interview to study. I don't know how this didn't set off BS detectors internally but there you have it.
Re:How I went from failing every interview to a job at Amazon by Black-Plaid on Monday May 01, 2017 @02:30AM (#14235948)
Google actually does this in their Seattle location.
Re:How I went from failing every interview to a job at Amazon by austincheney on Sunday April 30, 2017 @07:04PM (#14234367)
Interviewing is stupid simple. It is your ego moment. You get to sit in a room and talk about yourself. Although you don't control the conversation you can steer it in creative enough directions to keep it fun and positive.

Maybe if you are a college grad with 0 real life experience then maybe interview prep is necessary... don't know. I could be biased though. The last place I interviewed at they knew who I was, something about my software, and some of my online controversies before I even walked in the door.

The best preparation for interviewing at large companies is having a second part-time job somewhere in management. I held my first management position in a part-time job at age 24 and was once a director. I have never held a management position in the primary full-time career, which is a weird inverse of power-distance in some work meetings. Being a parent is also good experience for dealing with people.

What they need to provide education on isn't dominating the interview process... but drilling down on the proper information necessary for new candidate retention.

I have worked at places that are awesome and really work hard to ensure you are happy and constantly engaged in the work. I have also worked at places that completely suck full of benchwarmers with a million layers of abstractions so that code monkeys can feel a bit more confident. It is helpful to know if you are going to be miserable in the organization.

The candidate really does share some of the burden of figuring out if they will be a good fit for the organization, but this is often really hard to interrogate out of the interviewers even for experienced people.

Re:How I went from failing every interview to a job at Amazon by sillysaurus3 on Sunday April 30, 2017 @07:17PM (#14234429)
Interviewing is stupid simple. [...] Maybe if you are a college grad with 0 real life experience then maybe interview prep is necessary... don't know. I could be biased though. The last place I interviewed at they knew who I was, something about my software, and some of my online controversies before I even walked in the door.

Yes, this is bias. Most candidates aren't being hunted by employers. It's the other way around.

It's quite the opposite of "simple." It's a soul-crushing experience of being denied at every interview because you can't think out loud or do whiteboard coding and don't have a social media portfolio presence to fall back on. The only simple part is how simple it is to reject a candidate based on the personal prejudices of just one of the five different interviewers you have to meet with.

Re:How I went from failing every interview to a job at Amazon by austincheney on Sunday April 30, 2017 @07:26PM (#14234480)
> Most candidates aren't being hunted by employers.

I call this the talent gap. When you are a newb or completely lack either experience or confidence in your skills life is harder. You have massively increased competition for lower paying jobs filled with more menial tasks. I have been there too. If a candidate doesn't want to be there they will invest in themselves outside the office. I spent as much time as I could writing open source software and language parsers while on military deployments.

Most developers I know are frequently hounded by recruiters because the demand for senior developers is stupid ridiculous.

Re:How I went from failing every interview to a job at Amazon by danellis on Sunday April 30, 2017 @11:28PM (#14235401)
> Most developers I know are frequently hounded by recruiters because the demand for senior developers is stupid ridiculous.

Maybe in your bubble. My experience is that very few recruiters are hounding me, because most of them don't know I exist. I don't live or work in a tech hub, I don't work for a famous company, and I haven't published anything. I don't think that's a particularly unusual position to be in.

It's absolutely nothing to do with talent or experience, though.

Re:How I went from failing every interview to a job at Amazon by sillysaurus3 on Sunday April 30, 2017 @07:32PM (#14234516)
Most developers I know are frequently hounded by recruiters because the demand for senior developers is stupid ridiculous.

Yes, but the next step is actually interviewing at companies. It's obviously the best strategy to coax an employer into being interested in you, rather than the other way around. But most employers typically have an interview funnel, which I think is what people are talking about here. It sounds like you're referring to an employer actively seeking out a specific candidate that they're interested in. While that does happen, it's probably not the typical interview experience.

Re:How I went from failing every interview to a job at Amazon by austincheney on Sunday April 30, 2017 @07:59PM (#14234626)
Talking to people is a life skill. That is what interviewing is. You aren't going to learn this from inside a CS textbook. Whether you are seeking the job or they are seeking you is largely irrelevant. Being an extreme introvert isn't an issue here either, although it did cause me to pass out in the taxi to the airport once after a 6 hour interview.

Just be honest (immediately so), be humble, and have confidence that you will do your very best. What ever happens after that you don't really control. It is okay to be nervous, but keep it in context. Nobody is shooting at you. You aren't drowning. Your housing isn't burning down. It is just a conversation.

Re:How I went from failing every interview to a job at Amazon by sanderjd on Sunday April 30, 2017 @08:18PM (#14234685)
You seem to be talking about a very different kind of interview than what anybody else here is talking about. The kind that is "just a conversation" is still more difficult than you're making it out to be for a lot of people, but it's definitely easier than the full day of whiteboard coding and no open ended conversation style that every big company uses and every wanna-be big company parrots.
Re:How I went from failing every interview to a job at Amazon by ZanyProgrammer on Sunday April 30, 2017 @08:37PM (#14234748)
I agree, though it can be a little jarring going into what you expect to be a whiteboard interview, and just answering questions verbally. Its nice, certainly, but if you're not expecting it (and why would you, given the odds) it can take a bit to get your footing.
Re:How I went from failing every interview to a job at Amazon by jdbernard on Sunday April 30, 2017 @11:38PM (#14235434)
Actually, I just finished a couple of weeks of interviews looking for a new job. I actually found that a lot of time I would talk through my solution to their whiteboard problem and by the time I'd talked it through--really just planning for myself before writing it out--they wouldn't wait for me to write it out. I'd explained it with enough clarity that actually writing it out would have just been a waste of time.
Re:How I went from failing every interview to a job at Amazon by sillysaurus3 on Monday May 01, 2017 @12:06AM (#14235494)
In other words, we've set up pipelines that reward those who can talk well, rather than those who can do well.

That might be an unfair characterization. But only just.

Re:How I went from failing every interview to a job at Amazon by jdbernard on Monday May 01, 2017 @09:58AM (#14237468)
A different characterization is that we are looking for those that think well. Both talking and code on whiteboards are only proxies for that, and neither are completely reliable proxies.

But really, if someone can describe the detailed psuedocode for an algorithm and explain its runtime characteristics, are you going to make them write out what they have just said?

Personally, I think the talking is a lot more valuable than the whiteboard. I rarely have to hand-write complete algorithm on a whiteboard, but I regularly need to communicate technical ideas accurately and succinctly. That's what I'm really trying to demonstrate anyways: of course I can code, but I can also organize my thoughts well and communicate them clearly to others.

Re:How I went from failing every interview to a job at Amazon by austincheney on Sunday April 30, 2017 @09:24PM (#14234901)
Maybe it is because I have a ton of code online for anybody to read that nobody wants to waste their time watching me write code on a whiteboard for hours. Sure, I will get asked to write some code in an interview but it is usally something quick and dirty just to validate thinking through a problem with a bit of pressure.

Honestly, in my experience, most application problems can be reasonably talked through without writing any code.

Re:How I went from failing every interview to a job at Amazon by sanderjd on Monday May 01, 2017 @08:41PM (#14243097)
Lots of people have lots of code online. Lots of companies don't take that into consideration when interviewing.

I share your experience that most problems can be reasonably talked through without writing code, but most people here are talking about a specific kind of interview that does not work that way.

Re:How I went from failing every interview to a job at Amazon by majormajor on Sunday April 30, 2017 @07:09PM (#14234392)
"Interviewing is stupid simple. It is your ego moment. You get to sit in a room and talk about yourself. Although you don't control the conversation you can steer it in creative enough directions to keep it fun and positive."

That would be a nice improvement as a first filter, IMO, but this isn't always the case. For Google, for instance, the very first step might be a 45-minute phone conversation with a bored engineer who just wants you to code up whatever tree-based structure and methods tickle their fancy. They might not even tell you what team they work on, or what they do. They have a script, and they run it from memory, and your experience and past accomplishments are out the window.

Re:How I went from failing every interview to a job at Amazon by austincheney on Sunday April 30, 2017 @07:14PM (#14234418)
Google has the privilege to treat you like an ape, because they know people will take it to work there. "Dance monkey"! If being spanked like a monkey doesn't tickle your fancy then don't interview there. Interview prep isn't going to make that better.
Re:How I went from failing every interview to a job at Amazon by majormajor on Sunday April 30, 2017 @07:51PM (#14234599)
Meanwhile, a bunch of non-Google companies think that this must be the right way to do it, so they copy it, and teaching people how to game the system like in the original article give them no reason not to, it just acclimates everyone to playing by stupid rules.
Re:How I went from failing every interview to a job at Amazon by austincheney on Sunday April 30, 2017 @08:00PM (#14234631)
Then call them out on it during the interview.
Re:How I went from failing every interview to a job at Amazon by majormajor on Sunday April 30, 2017 @11:34PM (#14235423)
Heck, I've walked away from an onsite mid-loop because I didn't like the process and it was stretching out and I had a flight to catch, but that doesn't mean I want things to be a "only the don't-give-a-fuck survive."
Re:How I went from failing every interview to a job at Amazon by arvinsim on Sunday April 30, 2017 @09:39PM (#14234967)
Seriously? Looks like a quick way to get rejected, or at least be regarded negatively.
Re:How I went from failing every interview to a job at Amazon by austincheney on Sunday April 30, 2017 @10:06PM (#14235073)
If you are a afraid of asking valid questions for fear that you will be rejected god help you. It doesn't hurt to simply ask a question.

Now I know there are a lot of weak and timid personalities in the world of development, but once you put that blood into the water usually it doesn't take the sharks long to swarm on it. I have never walked away from an interview feeling dejected for asking the interviewer reasonable questions or attempting to qualify their assertions.

Re:How I went from failing every interview to a job at Amazon by sillysaurus3 on Sunday April 30, 2017 @07:21PM (#14234456)
As someone who recently ran the interview gauntlet, the parent comment seems pretty accurate. It matches my experience with interviews at a wide variety of companies.
Re:How I went from failing every interview to a job at Amazon by voltagex_ on Sunday April 30, 2017 @07:21PM (#14234457)
The first phone interview I got with them was with an interviewer asking questions that were given to them by someone else - ranging from how does DNS work to inodes in filesystems and estimating 2^128... at 6:30AM in the morning.
Re:How I went from failing every interview to a job at Amazon by patch_cable on Sunday April 30, 2017 @05:51PM (#14234049)
Google offered classes in Seattle when I interviewed with them.

My reaction was the same as yours.

Re:How I went from failing every interview to a job at Amazon by haskellandchill on Sunday April 30, 2017 @05:22PM (#14233918)
It's kind of how things work in our industry and I find it very frustrating. Once I became a "Front-end Engineer" I had to work like crazy to be "Backend" and then lucked into "Operations". Now I'm "Full-stack" but only a "Web Developer" so I can't do any cool ML stuff or data engineering or embedded or whatever. I have to do it in my free time and I'm exhausted most evenings. I do sacrifice my weekends! Yay!
Re:How I went from failing every interview to a job at Amazon by sargun on Sunday April 30, 2017 @06:42PM (#14234282)
From the management perspective, how else would you handle this? I.e. Allocation of resources? It's very difficult to reason about global resource allocation.

In addition how do you deal with resource mapping and best fit during allocation?

I think the multi-level allocation model works better than anything anyone else has suggested.

Re:How I went from failing every interview to a job at Amazon by haskellandchill on Sunday April 30, 2017 @07:34PM (#14234523)
When I am a manager I will develop my people. I will hire them by getting to know them. I will encourage conference attendance and networking as well as outreach to study groups. Let's lift each other up and build welcoming communities of practice. Not sure what your reference to multi-level allocation model means.
Re:How I went from failing every interview to a job at Amazon by Aeolun on Monday May 01, 2017 @01:28AM (#14235754)
I'm not sure conference attendance does anything worthwhile. It doesn't harm, but in my experience conference attendance only serves to pique interest in new/different technologies, not in actually learning it.
Re:How I went from failing every interview to a job at Amazon by phil21 on Sunday April 30, 2017 @05:19PM (#14233906)
This doesn't even get into the fact that exceedingly few programming jobs need to know anything resembling advanced computer science theory. Probably less than 5% in my limited experience.
Re:How I went from failing every interview to a job at Amazon by dagw on Sunday April 30, 2017 @06:49PM (#14234305)
exceedingly few programming jobs need to know anything resembling advanced computer science theory

There's "need" and there's "need". The person without the solid computer science background may very well be able to solve all the problems at hand, but the person with the solid CS background is far more likely to come up with the fast elegant solution that doesn't fall over in obscure corner cases.

To use a concrete example for early in my career; I spent days and days trying to solve a problem by building a bigger and bigger pile regexps and if-else statements. Then my project manager (who had a PhD in CS) came along a just wrote a custom parser that solved the whole thing.

Re:How I went from failing every interview to a job at Amazon by alasdair_ on Sunday April 30, 2017 @10:30PM (#14235217)
>There's "need" and there's "need". The person without the solid computer science background may very well be able to solve all the problems at hand, but the person with the solid CS background is far more likely to come up with the fast elegant solution that doesn't fall over in obscure corner cases.

I know the plural of anecdote is not data, but I'd say that the typical PhD that I have interviewed has generally poorer useful coding skills than the person from a similar background who stopped at a masters or even BS and then wrote a lot of high quality code during the time the PhD was doing a whole bunch of theoretical work.

>To use a concrete example for early in my career; I spent days and days trying to solve a problem by building a bigger and bigger pile regexps and if-else statements. Then my project manager (who had a PhD in CS) came along a just wrote a custom parser that solved the whole thing.

It's MUCH easier to come along after someone has already spent days exploring the problem and can demonstrate the dead ends, then say "oh, you need a custom parser" than to start at the beginning and do the same thing. USUALLY writing a custom parser is overkill and it takes a decent amount of digging into a system to know when it's not. If you start out writing one every time something looks like it can be solved by an "if" statement, you'd never get anything useful built.

Re:How I went from failing every interview to a job at Amazon by chrisbennet on Monday May 01, 2017 @04:11AM (#14236213)
"Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems."
Re:How I went from failing every interview to a job at Amazon by majormajor on Sunday April 30, 2017 @07:14PM (#14234417)
> the fast elegant solution that doesn't fall over in obscure corner cases

This can go both ways, though. Sometimes the fast elegant solution is too elegant for the nasty corner cases and a much bigger, uglier, but ultimately straightforward procedural block of crap is better.

The examples I've seen are from established businesses that occasionally slipped up in refactoring out hacks that were introduced to support deadline-driven requirements. A year or two later, that hack is powering the reporting for a huge portion of the traffic, and you have to be able to balance between (a) writing maintainable code that supports the hack for the short term and (b) working with the rest of the business to clean up the requirements so you can improve the system for the long term.

(b) is a skill that most interview processes I've seen completely ignore. And (a) often is downplayed (as "simple" or "easy") compared to more clever tricks - but knowing how to do the clever tricks might turn into a temptation to use them more than you should.

Re:How I went from failing every interview to a job at Amazon by arvinsim on Sunday April 30, 2017 @07:12PM (#14234407)
You don't need to know how to implement a parser to recognize it as a solution to a problem. And there are already libraries and tools for building parsers anyway.
Re:How I went from failing every interview to a job at Amazon by sanderjd on Sunday April 30, 2017 @08:23PM (#14234703)
The hard part isn't building the parser, the hard part is recognizing that a parser would be a good solution to the problem and distilling the problem into a form for which the solution works. One of the main purposes of a college degree is to come out knowing a lot about what you don't know. That is, knowing a lot about what sorts of things exist, even if you don't know much detail about any of those things.
Re:How I went from failing every interview to a job at Amazon by frozenport on Sunday April 30, 2017 @05:30PM (#14233954)
Further those 5% move at a glacial pace, you could be given a week to write or improve a BST.
Re:How I went from failing every interview to a job at Amazon by bpodgursky on Sunday April 30, 2017 @10:21PM (#14235163)
Having basic algorithmic competence (and yes, BSTs + BFS/DFS are basic) is like knowing how to swim.

Maybe you aren't near water or writing performance-sensitive code 95% of the time, but the 5% of the time you're in over your head, being able to implement (or identify when to use) basic algorithms will save you a whole lot of time, money, and headache.

Re:How I went from failing every interview to a job at Amazon by yazaddaruvala on Sunday April 30, 2017 @06:33PM (#14234236)
I do believe we need a better system for interviewing candidates.

However, I strongly disagree with your statement!

I work on distributed systems day in and day out, and more and more I find that I'm using or building distributed data structures analogous to BST, HashTable, etc.

Not knowing the foundations of my field in and out would be a mistake!

Re:How I went from failing every interview to a job at Amazon by johnnyb9 on Sunday April 30, 2017 @06:49PM (#14234304)
How many programmers work for Facebook, Google, Amazon, etc and how many work for non-web scale companies? As a professional programmer in financial services I have never had to use a red-black tree, min heap or do anything more advanced than properly using a HashTable.
Re:How I went from failing every interview to a job at Amazon by yazaddaruvala on Sunday April 30, 2017 @07:18PM (#14234434)
Ok, I'll try and use an example from financial services:

Disclaimer: Never worked in financial tech, I have thought about this problem for 5 mins. This is unlikely to be an optimal solution to keeping a sorted set of distributed data. I'm just trying to show how basic knowledge of data structures helps in the field of distributed systems.

Lets say you need to keep a sorted set of sooooo much data that you cannot keep it all on one machine. I would imagine all financial services firms have some custom datastore which has "potential buy orders" and need to keep them all sorted by profitability to efficiently search/insert/remove from that datastore.

In such a situation, my instincts would be to create a distributed, redundant Heap. Now, how do you build a distributed, redundant Heap, without understanding how a Heap works? How do you even know what to look for if you don't know what a Heap is?

Now, lets say you've built it such that each node in your distributed network acted like a node in a Heap, and the left "pointer"(i.e. url to other computer) meant "less than" and the right "pointer" meant "greater than". Now you have this data store in production and all of a sudden you realize performance worsens over time... "WHY is this happening? Is there some memory leak?". You investigate and realize that all of your data isn't being distributed evenly! "Do I need to like.. shuffle the data around? How do I get it so that the data is evenly distributes?"

At this point if you do not know what a red-black tree is, what do you even google look for? Lets say you dig around for a while and find out about re-balancing trees. Now you have to implement it, and eventually you figure out that one of the best ways is to color your nodes. When a future colleague/manager asks, "What is this system, please describe it to me?" wouldn't it be nice to just say "Oh visualize it kinda like a distributed red-black tree. It holds XXX data, and ensures that it is always sorted and re-balanced for optimal performance."

Re:How I went from failing every interview to a job at Amazon by fragmede on Sunday April 30, 2017 @08:19PM (#14234691)
Of course there's some sort of B-tree somewhere in the stack; that's not the question.

With dozens of database stacks to choose from, many companies won't have anybody actively and regularly working in the database's code, nor in the OS kernel code either.

If, then, an individual can successfully contribute to the company without ever hearing of a red-black tree, what's the value in testing for it, past "this is how we've always done it"?

(How long it would take someone who doesn't know CS lingo to string together "tree" and "balance" and plug that into Google, I don't know, but I suspect it's not impossible to find.)

Re:How I went from failing every interview to a job at Amazon by yazaddaruvala on Monday May 01, 2017 @02:55AM (#14236022)
> Of course there's some sort of B-tree somewhere in the stack; that's not the question.

You've misunderstood me. I'm literally talking about building a distributed B-Tree or Heap. As in, a Heap which cannot fit in memory or storage of any one node.

Think: S3/DynamoDB is a distributed, highly available HashTable; _____ is a distributed, highly available Heap.

Re:How I went from failing every interview to a job at Amazon by nerfhammer on Sunday April 30, 2017 @08:13PM (#14234673)
FWIW finance normally uses big relational databases (because you absolutely need strong transaction support), something else off-the-shelf, or Microsoft Excel.
Re:How I went from failing every interview to a job at Amazon by PlaceFan on Sunday April 30, 2017 @08:31PM (#14234729)
As a counterpoint, I work in high finance and one of our core systems that I'm expected to know extremely well uses Paxos for consensus.

Just because those topics show up infrequently doesn't mean that no one's using them. Plenty of companies outside of Google, etc. are doing complicated things that require a solid CS background.

Re:How I went from failing every interview to a job at Amazon by johnnyb9 on Monday May 01, 2017 @06:50PM (#14242464)
My point was not that they do or do not exist, merely the magnitude. I would venture a guess that for every software engineer working on a blockchain there are 100 working on crud-style applications. If a job on your team requires a solid understanding of these concepts, then by all means filter on knowledge of algorithms. My point is that many companies don't do anything remotely as complex and yet use the same filters to screen job applicants.
Re:How I went from failing every interview to a job at Amazon by FiveDegrees on Monday May 01, 2017 @12:13AM (#14235524)
You should have programmers implement paxos on a whiteboard in their interviews.
Re:How I went from failing every interview to a job at Amazon by majormajor on Sunday April 30, 2017 @07:06PM (#14234376)
It's really unfortunate that motivated people spend so much time matching themselves to what companies look for. Gives the top companies a lot less incentive to reevaluate their own processes.

But it gives you a great opportunity if you're a less well known company without the same name recognition. If your process is the same as Google's, you'll have candidates picking between the resume stamp that is a stint at Google and your offer. If your process is intentionally somewhat different than Google's, but tailored to your own immediate needs, you'll have a wider pool.

Re:How I went from failing every interview to a job at Amazon by reggylong on Sunday April 30, 2017 @06:27PM (#14234213)
Transitioning to working full-time has made me realize how much more freedom I had with my time as a college student. That being said, you don't need to spend too much time studying for interviews (~30 minutes a day for a few months is more than sufficient).
Re:How I went from failing every interview to a job at Amazon by tsiki on Sunday April 30, 2017 @07:46PM (#14234580)
Really? I have the exact opposite experience, I feel much more free to study and work on whatever I want now that I graduated. I would always feel bad for working my own stuff instead of just working on the class project or homework.
Re:How I went from failing every interview to a job at Amazon by Spooky23 on Sunday April 30, 2017 @06:09PM (#14234134)
It's buyers market, so the interview as hazing technique works just fine.
Re:How I went from failing every interview to a job at Amazon by dkarapetyan on Sunday April 30, 2017 @06:26PM (#14234209)
Since when is it a buyer's market?
Re:How I went from failing every interview to a job at Amazon by Spooky23 on Sunday April 30, 2017 @07:46PM (#14234577)
If employers can get away with the bullshit that they do, it's a buyers market.

In my personal experience, I've rarely had problems hiring qualified candidates, and my employer doesn't pay particularly well, and isn't located in a particularly large market. A company like Google who does pay very generously needs to narrow the funnel just to get the pool down to an actionable number.