News for hackers. Stuff that matters.
Re:I interviewed at six top companies in Silicon Valley in s... by rossdavidh on Friday January 18, 2019 @06:23PM (#18944082)
When I was a new college grad, I felt trapped by the fact that everywhere I looked they wanted several years of experience, and I had none yet. How can I get experience if it's required to get the job?

Now that I am 51, I feel annoyed that all of these stories of interviews involve asking questions about algorithms that rarely come up in real coding, and if they do you should NOT be rolling your own code, you should use the established, battle-tested solution that is out there on the internet if you spend 60 seconds looking for it. Much more important is to have the experience of how code complexity accumulates, and how to mitigate that. I cannot spend hours and hours studying up on these algorithms, there are much more important things (real coding-related things) which I need to learn about, to the extent I have time to do that. What should I choose, pytorch or keras? React or Vue? Go? Kubernetes? Spark? All much more important questions than how to do a breadth-first search.

So, was I wrong then? Or am I wrong now? Perhaps both.

Re:I interviewed at six top companies in Silicon Valley in s... by acpetrov on Friday January 18, 2019 @06:50PM (#18944237)
I just graduated, so I'm not dealing with constant internship interviews anymore, but at the time I absolutely hated it.

My frustration isn't exactly like yours (my time is probably a lot less valuable). I feel that the questions are all geared at puzzle solvers.

If you're a puzzle solver, you love answers. You love digging into the details. You love finding out the basic components of a system. I think these are the people who excel in academics.

Almost every other intern I met once I got to the bay area was a puzzle solver. They were also competitive and had amazing grades. And these people LOVED algo questions. Over lunch, they could go through half a dozen questions.

I slipped through the cracks I guess. I'm bored by puzzles, have awful grades (and in a worse program), and not so competitive. What I do enjoy, however, is building up. I like modeling and being about to think at greater and greater levels of abstraction to solve problems that aren't puzzles, but instead open ended questions.

Anyway, I think both of these types of people have a place is software, and only one is given attention

Re:I interviewed at six top companies in Silicon Valley in s... by turtlecloud on Friday January 18, 2019 @10:35PM (#18945165)
I agree with you. The puzzle solver ABSOLUTELY hate it if you somehow say that the question is flawed. Ie if you think outside the box and render their hypothetical situation flawed. It’s as if they didn’t spend enough time to realize that they are missing the forest for the trees.
Re:I interviewed at six top companies in Silicon Valley in s... by gdy on Saturday January 19, 2019 @05:24PM (#18949585)
"It’s as if they didn’t spend enough time to realize that they are missing the forest for the trees."

In their eyes, they have given you a problem involving a tree from the graph theory and you are insisting on an "out of the box" solution involving woodpeckers.

Let me elaborate.

Usually hypothetical situation is just a way to talk about an abstract problem.

It's easier to visualize and to talk about an egg falling and breaking (or not) than abstract measurements.

Now what you call 'thinking outside the box' is just attacking the irrelevant details of an imaginary situation which is there purely for convinience and can be replaced with another hypothetical situation corresponding to the same abstract problem.

Re:I interviewed at six top companies in Silicon Valley in s... by Drdrdrq on Saturday January 19, 2019 @04:36AM (#18946174)
To be fair, almost everyone hates it when you show them they are wrong. Especially in the setting where they are supposed to be judging you, remember? And even in normal settings it pays to think about how some critique will be received by the other side. It's a slippery slope in the interview... For me it would raise red flags if the flaw was pointed out in an inappropriate manner. After all, this is the person who would be involved in code reviews where sensitivity to other people's feelings (and egos) is very important.
Re:I interviewed at six top companies in Silicon Valley in s... by Matumio on Saturday January 19, 2019 @08:54AM (#18947044)
> they are supposed to be judging you, remember?

It's actually supposed to be mutual judgement. But I agree: be respectful if you decide to drop a remark about the relevance of the question. There are enough reasons to treat people with respect even if you can afford to turn them down.

Re:I interviewed at six top companies in Silicon Valley in s... by Drdrdrq on Saturday January 19, 2019 @10:17AM (#18947431)
> It's actually supposed to be mutual judgement.

Agreed, I was being sarcastic.

Re:I interviewed at six top companies in Silicon Valley in s... by audience_mem on Saturday January 19, 2019 @11:52AM (#18947863)
It didn't come across as sarcastic to me, btw
Re:I interviewed at six top companies in Silicon Valley in s... by flatline on Friday January 18, 2019 @10:43PM (#18945198)
I like solving puzzles. I like algorithms. Every once in a while I even get to use them at my job! Solving these kinds of things is at most 5-10% of a developer’s job, and that’s probably a stretch in reality. The number of times I’ve seen things like dynamic programming come up in a real world application are vanishingly small, and rarely will you need to roll your own implementation rather than using a third party library. Even if you’re working on a library like that, considerations of good software design principles, infrastructure and the like will consume a large portion of your time.
Re:I interviewed at six top companies in Silicon Valley in s... by holdenc on Friday January 18, 2019 @07:57PM (#18944553)
I am like you. For me, the solution has been build something and show it off. Building a great and useful app rarely requires Herculean feats of logic and puzzle solving.
Re:I interviewed at six top companies in Silicon Valley in s... by nailer on Friday January 18, 2019 @09:40PM (#18944979)
Years ago I was rejected by Google for a permanent position, then a year later employed at a much better rate as a contractor in the same building I'd interviewed in. I'd built a relatively cool app (full stack, from Linux to Tornado to JavaScript to UX), like Secret or YikYak (but a few years before either).

The people in Creative Lab were impressed with the ride range of knowledge I had, the SRE guys who rejected me got stuck into me for mixing up some VMware terminology.

Re:I interviewed at six top companies in Silicon Valley in s... by widforss on Saturday January 19, 2019 @07:51AM (#18946778)
My current problem is that I built an app and showed of to some gov agencies, and now that demo app is solving their business problems.
Re:I interviewed at six top companies in Silicon Valley in s... by bg24 on Saturday January 19, 2019 @01:01AM (#18945585)
>> "What I do enjoy, however, is building up. I like modeling and being about to think at greater and greater levels of abstraction to solve problems that aren't puzzles, but instead open ended questions."

In my opinion, you will do well if you focus on building your own business sooner or later.

Re:I interviewed at six top companies in Silicon Valley in s... by solipsism on Saturday January 19, 2019 @01:12AM (#18945604)
What an odd thing to suggest. Owning a business isn't for everyone. Not by a long shot.
Re:I interviewed at six top companies in Silicon Valley in s... by krisoft on Saturday January 19, 2019 @02:08AM (#18945755)
No, it is not. But grand parent comment was giving this advice based on the quoted specifics and not for everyone.
Re:I interviewed at six top companies in Silicon Valley in s... by graphenus on Saturday January 19, 2019 @03:47AM (#18946040)
And most importantly, the commenter gave one's suggestion based on representiveness, which are not facts. The rest follows from here.
Re:I interviewed at six top companies in Silicon Valley in s... by GrzegorzWidla on Saturday January 26, 2019 @03:38PM (#19008325)
But building something from scratch, even if non-profit, is the easiest way to get a job you really want. And at the same time you can find out that you like doing actual business and smoothly transition. It's a win-win IMO.
Re:I interviewed at six top companies in Silicon Valley in s... by jsmeaton on Friday January 18, 2019 @07:34PM (#18944436)
Honestly, it sounds like you may be geared more towards software architecture rather than software development. If you like the sound of the bigger picture more than the details, it might be something you could look into.
Re:I interviewed at six top companies in Silicon Valley in s... by opportune on Friday January 18, 2019 @07:58PM (#18944554)
Is it possible to even get into software architecture without pretty significant experience? From my experience in the workplace anybody making purely architectural decisions without having to implement them is a team lead or higher in the organizational architecture.
Re:I interviewed at six top companies in Silicon Valley in s... by phrh8 on Friday January 18, 2019 @10:22PM (#18945122)
Not sure it would happen that way out of choice, but the role can get unexpectedly thrust upon someone, experienced or not (Think startups, desperate to make ends meet with a handful of inexperienced engineers...or even at medium sized companies, remember back when Google had "20% projects"?). At startups especially though: they don't have money to go out of their way to hire an overpriced "experienced software architect"...

It goes something like: "Hey, new Engineer, I need you to work on experimental feature X". - Then the engineer builds system Y to provide feature X, probably poorly architected and not scalable, not expecting it to go anywhere. Some months later, app containing feature X gets distributed to thousands of users, or goes viral and hits millions of users.

Congratulations, like it or not, you have now become the lead architect of the now-widely-deployed "experimental" system Y, and you are going to either crash and burn or become a damn good software architect by maintaining it out of sheer necessity. Later, you find yourself putting "Lead Software Designer" on your resume, having earned that role and title.

A lot of successful software was originally designed "by mistake" and grows far, far greater than its original purpose. And in contrast, you get the well-designed software that was properly architected, but never goes anywhere because it never saw the light of a successful deployment at scale.

Re:I interviewed at six top companies in Silicon Valley in s... by bmiller2 on Saturday January 19, 2019 @01:05AM (#18945596)
I think you’ve accurately described the vast, vast majority of production code that’s hasn’t been through a second wave of engineers/management and rewritten. If it works, and requirements aren’t changing, then your MVP has become the gold standard
Re:I interviewed at six top companies in Silicon Valley in s... by Aeolun on Friday January 18, 2019 @08:48PM (#18944758)
It’s the best way to get into it anyway. Making architectural decisions without experience implementing them sounds like a recipe for disaster to me.
Re:I interviewed at six top companies in Silicon Valley in s... by notyourwork on Friday January 18, 2019 @08:06PM (#18944585)
Which makes sense right? Same reason a military general doesn’t start as a general. Architecture takes experience in the weeds to give a breadth you can leverage as you reason through architecture. Architecture isn’t aslways black and white decision making based on some specs which is where experience can help a ton.
Re:I interviewed at six top companies in Silicon Valley in s... by Aeolun on Friday January 18, 2019 @08:50PM (#18944763)
Generals often start out as lieutenants though (e.g. officer academy drops you in on a higher rank).
Re:I interviewed at six top companies in Silicon Valley in s... by skh on Friday January 18, 2019 @10:57PM (#18945238)
In the U.S. military this is not true. People graduating from OCS, ROTC, or one of the academies start off at O-1 (2nd Lieutenant).
Re:I interviewed at six top companies in Silicon Valley in s... by learc83 on Friday January 18, 2019 @11:52PM (#18945398)
What's your disagreement? 1st Lieutenant vs 2nd Lieutenant? Lieutenant is commonly used to refer to both.

Or are you saying that you start of at O-1 and not a higher paygrade? If that's the case, the OP was pointing out that you start off outranking enlisted service members, not that you start out above O-1.

Re:I interviewed at six top companies in Silicon Valley in s... by skh on Saturday January 19, 2019 @11:52AM (#18947860)
Well, I misread the comment I responded to. I thought they said that academy graduates don’t start off at lieutenant and start off at a higher rate.
Re:I interviewed at six top companies in Silicon Valley in s... by jsmeaton on Friday January 18, 2019 @09:43PM (#18944991)
No I wouldn’t think so. But knowing about a role and angling towards it early if that sounds more interesting is hopefully helpful information.
Re:I interviewed at six top companies in Silicon Valley in s... by sjg007 on Friday January 18, 2019 @09:08PM (#18944845)
Yes it is possible.
Re:I interviewed at six top companies in Silicon Valley in s... by nicoburns on Friday January 18, 2019 @11:00PM (#18945248)
I like roles where I get to do both! I've found that a lot of problems come from these being different roles, and the developers not really understanding or buying into the vision of the architects (who might be able to see the big picture, but can often make decisions that make no sense due to being removed from the details of the existing implementation).

Of course in really large companies I suppose having these as a seperate role is a necessary evil. But I still think there should be much more collaboration and interaction between people in these different roles than I generally see.

[dead]
Re:I interviewed at six top companies in Silicon Valley in s... by sn41 on Friday January 18, 2019 @09:12PM (#18944864)
Not really, not at all. Software architecture is a lot about wisdom - how to anticipate future changes. Often user interfaces need to be carefully and gently designed so that the user has no surprises. Diligence from the user should not be assumed, the user interface must emphasize tricky parts and make choices less onerous, etc. Scalability is preferrably achieved by simple code + hardware/vms rather than overoptimized code which depends on "irreplaceable" programmers - what if they fall sick, or leave the company? etc. I think all of this is experience accrued over many years, and with facing many failures.

I have found that the data structures that you need are often simple trees and hashes. Database design is probably more important. I often shake my head at students doing hours of dynamic programming to crack interviews. In the past year, how many problems in your company have you solved through dynamic programming? I suspect, not many.

Re:I interviewed at six top companies in Silicon Valley in s... by scarface74 on Friday January 18, 2019 @08:09PM (#18944600)
In the real world software architecture is rarely about “data structures”. Software architecture is about teasing out the needs of the customer - whether that be internal or external - and knowing how to design systems that are maintainable, scalable, fault tolerant, etc.
Re:I interviewed at six top companies in Silicon Valley in s... by SamReidHughes on Friday January 18, 2019 @08:18PM (#18944632)
Scalable, fault tolerant systems is a distributed systems problem, which is a harder form of data structures problem.
Re:I interviewed at six top companies in Silicon Valley in s... by scarface74 on Friday January 18, 2019 @08:20PM (#18944640)
Yes but unless you are actually working on creating the system that other people implement, you are just using work made by others. You don’t need to know the ins and outs of various gossip protocols.
Re:I interviewed at six top companies in Silicon Valley in s... by rapind on Friday January 18, 2019 @08:44PM (#18944738)
Potentially two things here:

1) Gathering requirements.

2) Turning those requirements into data structures.

I think a lot of companies will separate those into different roles, but I strongly believe that's a costly mistake in most situations. There's a feedback loop. Requirements inform your data structures, but your data structures help you contextualize (not pollute) your requirements. If you're working with an existing system, you also want to understand current structures in order to guide requirements. By guide, I don't mean to ignore pain, but if you're building a system to support multiple clients / users, then the real trick is to figure out how to do that in a cost-effective and elegant way.

When these roles are separated, and the requirements are gathered without knowledge of the structures, I believe you're setting yourself for failure in the long term (spaghetti code / everyone gets something different).

Getting these to gel is the puzzle I'm personally passionate about. I don't mind what I would call the math side of programming / code puzzles, but it simply doesn't give me the endorphin rush that building a system that elegantly ties things together does. The best is when you're working towards that or have achieved that and inspiration for further possibilities, improvements, efficiencies start popping up.

I'm not sure how you test for this as part of the hiring process, at least not efficiently. I do think we get better at this with experience, but I doubt it's exclusive to seasoned developers.

Re:I interviewed at six top companies in Silicon Valley in s... by scarface74 on Friday January 18, 2019 @09:01PM (#18944819)
But still “data structures” in the context of most businesses are more Domain Driven Design “Domain Contexts”, “Aggregate Roots”, type structures than any type of complicated CS type data structures.
Re:I interviewed at six top companies in Silicon Valley in s... by nailer on Friday January 18, 2019 @09:44PM (#18944998)
Parent was discussing not being interested in algo design, rather than not knowing data structures.
Re:I interviewed at six top companies in Silicon Valley in s... by theoh on Friday January 18, 2019 @08:42PM (#18944726)
That depends on what is meant by software architecture. If you mean the structuring of a system to achieve good or (particularly) consistent worst-case performance, maybe you are right. But if architecture is used to mean the design of a system to satisfy users (and present a clean, extensible, meaningful interface) then it's really a conceptual job that has more to do with design skills than optimized algorithms.
Re:I interviewed at six top companies in Silicon Valley in s... by SamReidHughes on Friday January 18, 2019 @09:08PM (#18944847)
Being able to make a clean interface, as in a clean API, or useful one, is a data structures/algorithms problem and often a distributed systems problem. Many API's are technically impossible to use correctly. For example they might not let you do two things atomically that need to be. Or they might suffer enormously because they don't version their information properly, resulting in client/server disagreements over the nature of reality that are impossible to avoid. Or you get components that are impossible to interrupt cleanly or shut down safely.

It's not the same thing as some piddly twenty minute problem -- it's harder, requires some experience, and it has the same kind of aptitude. Consider it a rule that people that can't handle data structures problems are going to create systems architecture problems.

Re:I interviewed at six top companies in Silicon Valley in s... by pseudalopex on Saturday January 19, 2019 @12:09AM (#18945448)
In my experience, architecture requires broad but not deep knowledge of data structures and algorithms. The best architects have both, but even very good architects struggle to remember algorithmic tricks on the spot and write detailed code without tools or references. People who can do that easily are often the last to think of things like fault tolerance.
Re:I interviewed at six top companies in Silicon Valley in s... by SamReidHughes on Saturday January 19, 2019 @12:51AM (#18945557)
You don't have to be some string algorithms weenie, but the kind of people who "absolutely hated" algorithms problems in my experience, some of it personal and some of it vicarious, are bad at making architectural decisions with far-reaching consequences. It's overlapping subject matter which uses the same kind of aptitude. It's not that to be good at architectural decision-making you need to be prepped for an emergency Google Code Jam.
Re:I interviewed at six top companies in Silicon Valley in s... by pseudalopex on Sunday January 20, 2019 @08:29PM (#18956840)
A more charitable interpretation is that they absolutely hated "constant internship interviews".

In my experience, algorithm interviews aren't even very good at measuring aptitude for algorithms. Recent study and aptitude for the format have too much influence. Asking candidates about architecture has been much better at predicting their aptitude for architecture.

Re:I interviewed at six top companies in Silicon Valley in s... by SamReidHughes on Tuesday January 22, 2019 @01:09AM (#18966320)
I don't necessarily disagree with that -- what kicked off my reply was the statement, "Honestly, it sounds like you may be geared more towards software architecture rather than software development." (And, you know, rereading that sentence removes any doubt I had about the correctness of my initial response.)

If you can rigorously ask architecture questions, and don't let people get away with hand-waving, that sounds fine. I've been asked good architecture questions and I've been badly asked bad architecture questions too, so... it depends on the question, and how you ask.

Re:I interviewed at six top companies in Silicon Valley in s... by theoh on Friday January 18, 2019 @09:50PM (#18945022)
Designing something on an architectural level really isn't always a data structures and algorithms problem. Take the web, for example. REST isn't complicated, but it does the job and it opened up more possibilities than any other invention since timesharing.

As other commenters have noted, choosing an architecture for a system may have more to do with vision, common sense, and even imagination. And the web is such a great example of this, maybe the classic example. As you probably know, it's possible to write a webserver without having a clue about fancy data structures or algorithms. It's the imaginative composition of pre-existing features that creates the architecture.

Another example would be the extensibility of Emacs through elisp. Consider the notion of hooks which essentially allow utility functions to be customized by the user. It's a purely architectural concept.

Or the Unix philosophy: small utilities that read and write text, linked by pipes. Really no algorithmic complexity to it at all.

It feels problematic to me that you are saying to someone that they "need to stay far, far away" from some aspect of computing. It's a kind of gatekeeping. Sure, an outfit like NASA needs to make sure that they don't have amateurs writing their systems software. But in the industry more broadly, people have to be given permission to pursue whatever interests them. It's important, for diversity and the invention of new applications, that "differently able" coders aren't told, by intimidating stereotypical computer science types, that they don't have the aptitude to architect a useful system, or that it's "a rule" that people with their skills will just create problems.

Vision and a perspective that differs from the norm are a lot rarer and potentially more valuable than the ability to apply software engineering principles. Architecture, in the broadest sense, is precisely the area where these "outside the box" contributions are likely to be valuable. Consider the invention of the Wiki. It came out of the pattern language world, it was a hugely beneficial innovation, and it has almost zero data structures/algorithms complexity behind it.

I'd even argue that the examples of pitfalls that you list are more clerical matters of systems programming than cases where architectural design principles are lacking.

(And even the professionals who can reliably grind out working code for large systems can get the architecture spectacularly wrong, as the case of the X window system: http://web.archive.org/web/20170920104011/https://minnie.tuh... )

Re:I interviewed at six top companies in Silicon Valley in s... by minderasure on Saturday January 19, 2019 @11:58AM (#18947881)
>t feels problematic to me that you are saying to someone that they "need to stay far, far away" from some aspect of computing. It's a kind of gatekeeping. Sure, an outfit like NASA needs to make sure that they don't have amateurs writing their systems software. But in the industry more broadly, people have to be given permission to pursue whatever interests them. It's important, for diversity and the invention of new applications, that "differently able" coders aren't told, by intimidating stereotypical computer science types, that they don't have the aptitude to architect a useful system, or that it's "a rule" that people with their skills will just create problems.

I really needed to hear this thanks.

Re:I interviewed at six top companies in Silicon Valley in s... by SamReidHughes on Saturday January 19, 2019 @12:34PM (#18948076)
Calling an idea problematic is a tell that he's not really concerned by matters like whether it's correct or not.

Web servers and clients, for example, are a case where I've seen bad architecting cause months of damage. An Emacs function hook or advice system, likewise, requires care in terms of when the hook is called, and what the rules for their scoping are. It's a bad software architect that thinks they can just slap callbacks on something.

Re:I interviewed at six top companies in Silicon Valley in s... by vpmpaul on Sunday January 20, 2019 @11:59AM (#18953999)
The puzzle solver obsession in SV has always confused me. Seems to me that you would only need a handful of those type of personalities at any software company. The majority of the work is just shoveling so to speak.

I'm no expert but I know a logistics company that has the 30 workers 1 puzzle guy setup. He maybe writes 20 lines of code a week but its on stuff other people cant figure out. However if he was the only type there literally nothing would ever get done.

Re:I interviewed at six top companies in Silicon Valley in s... by calf on Saturday January 19, 2019 @02:43AM (#18945866)
You're better suited for research which is about working long term on open problems.
Re:I interviewed at six top companies in Silicon Valley in s... by nitrogen on Saturday January 19, 2019 @02:55AM (#18945900)
I think the opposite would be true; research might benefit from puzzle solving, and software engineering is precisely the discipline of building up and reasoning about layers of abstraction and components of a system.
Re:I interviewed at six top companies in Silicon Valley in s... by LanceH on Saturday January 19, 2019 @03:35AM (#18946000)
Research is a grind when it's not about writing grant proposals and then it's a different grind.
Re:I interviewed at six top companies in Silicon Valley in s... by cornellwright on Friday January 18, 2019 @06:50PM (#18944229)
Is BFS really that hard, especially if the interviewer is willing to talk it out with you and doesn't care a lot about finding the most efficient solution possible?

I've been out of college more than 10 years now, do a mix of hardware and software (so am not coding all day everyday) and I can hack together algorithms like BFS if I spend a couple of minutes thinking about it.

I get that there are many awful interviewers out there and that hiring is pretty broken, but BFS seems like a pretty reasonable interview question, so long as the interviewer talks through what it actually needs to do and isn't only looking for a memorized answer. The question is well contained, doesn't require the candidate to know any specific API or framework, and can be implemented in pretty much any language. Probably the biggest downside to it is it's such a common question that many candidates study it ahead of time which makes it a worse filter.

Re:I interviewed at six top companies in Silicon Valley in s... by spyspy on Friday January 18, 2019 @07:06PM (#18944306)
You and a lot of other commenters are getting hung up on the BFS example. It's just that - an example. There are dozens of algorithms that are "common" enough to be asked about and diminishing returns to having them all memorized.
Re:I interviewed at six top companies in Silicon Valley in s... by Vel0cityX on Friday January 18, 2019 @09:51PM (#18945025)
Except you don't need to have them _memorized_. You shouldn't. That's not the point.
Re:I interviewed at six top companies in Silicon Valley in s... by ec109685 on Friday January 18, 2019 @11:10PM (#18945275)
But given it is straightforward to memorize, it isn’t a good test.
Re:I interviewed at six top companies in Silicon Valley in s... by Datsundere on Saturday January 19, 2019 @11:13AM (#18947678)
Except all of these questions can be grouped into a category of the same kinds of problem and it is in fact spending time to find out that pattern and which category from sliding window, nested intervals, recursion and dynamic programming it belongs to
Re:I interviewed at six top companies in Silicon Valley in s... by TrinaryWorksToo on Saturday January 19, 2019 @11:27PM (#18951076)
If you memorize them you appear more competent
Re:I interviewed at six top companies in Silicon Valley in s... by cornellwright on Friday January 18, 2019 @08:13PM (#18944615)
Sure, but that's my point. So long as the interviewer is telling you what they'd actually like you to do, you should be able to just derive the algorithm you need to do it. At some point the algorithms become difficult enough (particularly if you add lots of constraints like efficiency) that it's pretty unreasonable to expect that in an interview though, and at that point it's a bad question.

Rather than memorizing a thousand algorithms, I generally focus on being able to solve problems simply, quickly, and elegantly, which will help in actually doing most jobs.

Re:I interviewed at six top companies in Silicon Valley in s... by pishpash on Friday January 18, 2019 @09:33PM (#18944949)
You're still not getting it. Even for BFS, which is not a hard problem, the current state of the market is that enough people have memorized the BFS recipe so that the interview doesn't allocate much of any time to it. You're not going to have/be given time to "just derive the algorithm" or "solve problems simply, quickly, and elegantly." You're competing against rote speed, which, if you don't implement BFS all day or haven't recently done interview prep, you don't have and you're definitely going to fail.

I've heard people actually defend these useless interviews on correlation grounds, like people who are docile, follow the herd, and "prepare" are good hard-working workers who also tend to have done well in school or look polished in other aspects of life. That's what these interviews are really looking for. So, if you're not a well known expert, suck it up, be a servile cog and follow the script.

Re:I interviewed at six top companies in Silicon Valley in s... by skybrian on Friday January 18, 2019 @11:14PM (#18945289)
It seems like there might be a middle ground, like being willing to play the game, that doesn't imply being "a servile cog?"

The trick seems to be knowing when the game is worth playing. There are certainly situations where competition is too fierce and requires too much preparation, so it's not worth doing if you don't really enjoy the game.

I'm not sure getting hired at a large tech firm is quite that competitive, though? They do hire lots of people all the time.

Re:I interviewed at six top companies in Silicon Valley in s... by nicoburns on Friday January 18, 2019 @11:07PM (#18945268)
My first reaction when inplementing anything more than a very simple algorithm is to google the best way to do it.

Of course, I could probably come up with a way to do it by myself. I could probably even come up with an efficient way if I spent an afternoon/day on it.

But why do that when I can google it, and get 3 blog posts and 2 stack overflow answers detailing the different options and the trade offs between them, most likely even with an implementation I can base mine off of?

That's why these interview situations are stupid. They're like school where copying is cheating, whereas in real-world situations copying is a great way of doing something.

Re:I interviewed at six top companies in Silicon Valley in s... by smallnamespace on Saturday January 19, 2019 @02:40AM (#18945856)
> But why do that when I can google it, and get 3 blog posts and 2 stack overflow answers detailing the different options and the trade offs between them, most likely even with an implementation I can base mine off of?

A lot of resources out there are wrong, inaccurate, or not reasonable for your particular context, and it requires a reasonable amount of algorithmic intelligence to be able to sniff out what's appropriate.

If I had a dollar for every high-upvoted SO post that misstates a problem or doesn't offer proper caveats... but I can make that judgment because I've already thought about a related problem in the past.

It's like asking why one should learn how to write properly when Grammarly and spell checkers exist, or why mental arithmetic is useful when we have calculators—at some point those your tools will be inappropriate or unavailable. Search tools are force multipliers, not replacements for personal knowledge and intuition.

Re:I interviewed at six top companies in Silicon Valley in s... by nicoburns on Saturday January 19, 2019 @10:07AM (#18947379)
> A lot of resources out there are wrong, inaccurate, or not reasonable for your particular context, and it requires a reasonable amount of algorithmic intelligence to be able to sniff out what's appropriate.

Right, and having that algorithmic intelligence is key part of me being a good developer. But testing how someone implements an algorithm in time-scarce circumstances is not a good test of that kind of intelligence because it is likely to favour people who have been exposed to that particular algorithm before (even if they only rote-learnt information about it - as many interviewees seem to do in practice) over people who have the capability to think deeply and reason correctly about it, but have not previously been exposed to that problem.

Re:I interviewed at six top companies in Silicon Valley in s... by autokad on Friday January 18, 2019 @07:45PM (#18944499)
I'm a data scientist, and google asked me to sum all values of nodes at each height of a tree. I had to implement the tree, bfs, and the algo (which was easy once you have bfs) in a 25 minutes, minus any talky time.

BFS is not something I thought about much in the last 5 years, and quite frankly could care less about. I got stuck when I knew I needed 'something' to finish implementing BFS, but couldn't remember and the google interviewer offered no help. What I couldn't remember was the queue.

Re:I interviewed at six top companies in Silicon Valley in s... by alasdair_ on Friday January 18, 2019 @09:28PM (#18944935)
>I'm a data scientist, and google asked me to sum all values of nodes at each height of a tree. I had to implement the tree, bfs, and the algo (which was easy once you have bfs) in a 25 minutes, minus any talky time.

THIS is the problem. The (unreasonably) timed nature of the exercise means that the only people that will do well are the people that prep heavily for this specific skill, in much the same way that people about to take the LSAT are likely to do better than it than actual fucking lawyers with proven experience.

Re:I interviewed at six top companies in Silicon Valley in s... by lr4444lr on Friday January 18, 2019 @09:37PM (#18944965)
Now take this analogy one step further: why aren't lawyers asked stupid timed LSAT questions at every job interview? Because they take a really challenging professional exam called the bar, which is a strong base level guarantee of actual knowledge and competence. Software Eng. have been fighting this kind of credentialing because somehow tech is "top innovative" for such standards. Hence the status quo, and why companies like TripleByte see opprtunity.
Re:I interviewed at six top companies in Silicon Valley in s... by barry-cotter on Friday January 18, 2019 @11:02PM (#18945254)
> Now take this analogy one step further: why aren't lawyers asked stupid timed LSAT questions at every job interview?

Because which law school they went to is on their resumé and the average LSAT scores for each school are trivially available, tracking very, very closely with school prestige.

Re:I interviewed at six top companies in Silicon Valley in s... by rossdavidh on Friday January 18, 2019 @09:34PM (#18944954)
Time (and being watched) do make it very unrealistic, but the other thing missing is that programming now is not like in the 1970's, you don't need to memorize much of anything. If you forget something, you look it up, it takes 30 seconds to remind yourself, "oh, yeah, the queue", and then you go. Testing if you can do it without looking it up is not testing the skills you actually need in order to code well.
Re:I interviewed at six top companies in Silicon Valley in s... by grdyhrdy on Saturday January 19, 2019 @12:56AM (#18945572)
They didn't let you "Google" it at Google? Something wrong there.
[dead]
Re:I interviewed at six top companies in Silicon Valley in s... by autokad on Saturday January 19, 2019 @03:31PM (#18948998)
you are right about any tree traversal would have done, but its not a lot of time and if you end up stuck you dont have a lot of time to backtrack.

a lot of great data scientists dont even know how to use python, let alone implement a tree and tree traversal. there is so much more interesting and pertinent stuff I spend my cycles on learning / keeping in my head than undergrad cs bs.

Re:I interviewed at six top companies in Silicon Valley in s... by rossdavidh on Friday January 18, 2019 @07:36PM (#18944450)
If the interviewer is willing to talk it out with you, then it is totally a different situation. But, it came up in a recent other HN discussion on tech interviews, and it is an example of something that, if you memorized it, would have a vanishingly small improvement in your ability to get the job done.

But, if you explain what it is in words, and have them whiteboard how to turn those words into pseudocode or somesuch, then it could be a appropriate, sure.

Re:I interviewed at six top companies in Silicon Valley in s... by LaserToy on Friday January 18, 2019 @08:18PM (#18944633)
Bfs is just one of examples. I can ask you a question you will not be able to answer without knowing the answer. There is a reason it took researchers years to find those optimal solutions
Re:I interviewed at six top companies in Silicon Valley in s... by mrburkins on Friday January 18, 2019 @09:07PM (#18944844)
That always struck me as odd, testing aptitude by memorizing others hard won knowledge.

Who could really solve these problems, error free, on the spot with no prior exposure to underlying concepts?!?

Re:I interviewed at six top companies in Silicon Valley in s... by cornellwright on Friday January 18, 2019 @08:44PM (#18944734)
Sure, you can come up with an algorithm question hard and obscure enough that no one will be able to answer it in the time given and no one will have bothered to memorize it because it's so obscure.

That doesn't mean all "implement X algorithm questions" are categorically bad.

Re:I interviewed at six top companies in Silicon Valley in s... by joshuamorton on Friday January 18, 2019 @08:43PM (#18944732)
This is such a cop out. It took millennia to invent 0. That doesn't mean that 0 is an exceedingly difficult concept to grasp.
Re:I interviewed at six top companies in Silicon Valley in s... by fiblye on Friday January 18, 2019 @10:04PM (#18945065)
Cakes have existed for centuries and I'm sure most people on HN have made cakes at least once in their life.

But put them in a room and say "Make us a 2 layer red velvet cake" with no access to a recipe, and you're not going to get a red velvet cake. It's an easy recipe that most people easily recognize with just a glance, and anyone could make it if they have a recipe on-hand or make red velvet cakes with abnormally high regularity. But most people, even if they're great chefs otherwise, will fail.

Recognizing that a concept exists and implementing a relatively complex concept are different things.

Re:I interviewed at six top companies in Silicon Valley in s... by Godel_unicode on Saturday January 19, 2019 @01:13AM (#18945608)
That's absolutely not the case. Many working pastry chefs (I just asked the two that I know) can do exactly what you're asking.
Re:I interviewed at six top companies in Silicon Valley in s... by solipsism on Saturday January 19, 2019 @01:25AM (#18945638)
This strikes me as an analogy that does not work in your favor.

To know how to make a novel cake (not a recipe you've memorized), you need to have a good understanding of how the different ingredients interact. You probably even have a good sense of why they're there.

Those seem like exactly the qualities you'd want to look for in a cake maker. Sure, they'll probably be going from recipes in their day to day job. But they'll be able to tweak them intelligently too.

Re:I interviewed at six top companies in Silicon Valley in s... by fiblye on Saturday January 19, 2019 @02:13AM (#18945771)
Most tech companies aren't looking for people to reimplement a dozen new variations of quicksort everyday. I mean, some companies really do need people who have countless algorithms ready to go in the back of their mind and the ability to apply them to new and interesting situations all the time, just like some people do need bakers who never need to consult a recipe and can devise new cakes for important events on a whim.

But most restaurants are looking for someone who knows how to cook and use the tools in the kitchen. A chef who doesn't specialize in cakes will still probably be fine if you give them 5 minutes to look up a recipe and make one. In the same way, the overwhelming majority of tech job openings are in need of programmers with some degree of specialization and the ability to know how to look up what they don't know and the experience/knowledge to know how to put that info to use.

The state of programming interviews for the past few decades has been to find people who've memorized all the "recipes" of CS. Most of the jobs, though, are about using some Javascript flavor of the month library and making it work with some other popular library and writing a bunch of interface code. Someone on the team might have to write an implementation of breadth-first search in their toy language, in which case they look up "bfs" on wikipedia and just rewrite the algo given.

Companies are testing employees on how to make cakes when their job will be all about making burgers to order.

Re:I interviewed at six top companies in Silicon Valley in s... by joshuamorton on Saturday January 19, 2019 @03:13AM (#18945945)
But an algorithm or more generally algorithmic thinking is not a collection of rote memories. It's concepts that can be applied broadly. Much in the same way that I'd expect a pastry chef to be able to cook a 2 layer red velvet cake because they know that a red velvet cake is just chocolate, and a 2 later cake is just 2 one layer sheets with icing between. Someone who understands a relatively small set of fundamentals well will be able to perform as well or better than someone who spends weeks memorizing every cake in the dictionary.
Re:I interviewed at six top companies in Silicon Valley in s... by LaserToy on Saturday January 19, 2019 @02:53PM (#18948836)
I disagree. I don’t know based on what you are making claims, but based on my anecdotical experience knowing fundamentals help low level coders to pass interview but has little to do with performing well. Based on my experience (currently responsible for a huge chunk of a major gaming platform, with hundreds millions users), inflexibility, emotional immaturity, inability to think outside of the box, inability to listen and admit failures, lack of emphaty, not understanding basics of sales(to sell own ideas) are major things that contribute to a bad performance reviews. Our strongest engineers will not pass google interview without preparation (me included) and it is telling. Especially given the fact that we have higher profits per employee than google (we know what we are doing)
Re:I interviewed at six top companies in Silicon Valley in s... by joshuamorton on Saturday January 19, 2019 @03:50PM (#18949089)
>Especially given the fact that we have higher profits per employee than google (we know what we are doing)

I'm dubious of this claim. Google/Alphabet has a PPE of ~$150,000. Activision-Blizzard has a PPE of ~$33,000, EA had ~$95,000, and Ubisoft ~$15000. I think the only possible major game studios who could meet your claim are Epic or maybe Valve. Unfortunately, those numbers aren't public. So I'm going to assume you work on Steam, since Epic's new platform is likely too recent to have lots of users, and also I don't think it was competently designed.

(the other thing is that this metric isn't particularly meaningful. Google invests a huge amount in unprofitable things with the goal of profits 5 or 10 years down the line. Google devotes thousands of engineers and billions of dollars to things it knows aren't profitable. That doesn't make Google more or less competent, it just implies different priorities than one that's entirely driven by immediate returns).

>Based on my experience (currently responsible for a huge chunk of a major gaming platform, with hundreds millions users), inflexibility, emotional immaturity, inability to think outside of the box, inability to listen and admit failures, lack of emphaty, not understanding basics of sales(to sell own ideas) are major things that contribute to a bad performance reviews.

All of these are important, but they only become important once you have the baseline level of competence. If you have two equally competent people, then yes indeed the softer skills like flexibility, creativity, humility, and communication skills start to matter, and eventually they matter a lot. But those are only good things if you assume a baseline level of competence.

Consider two options. One is that you screen solely for competence. You get only competent engineers along a wide range of interpersonal/soft skills. Some can grow into leadership roles, some can't (or at least it takes longer). But even the most convincing, best "salesperson" has great engineering talent. Then the alternative: that great salesperson is a bad engineer. The ideas they promote aren't always good ones, sometimes they're bad. That's not just "not good", its actively harmful.

>Our strongest engineers will not pass google interview without preparation (me included) and it is telling.

What does it tell? You seem to be suggesting that Google is optimizing badly, and that's possible. But that is by no means the only conclusion. Here's an alternative: "The most profitable things are not always the most technically challenging". Every once in a while you'll see people on HN commenting about how they wired up a shopify store that provides some significant passive income. That's not challenging. It would take an average engineer a week to do, if that. It's still profitable. But that doesn't make you qualified to work at Google (or Valve).

Re:I interviewed at six top companies in Silicon Valley in s... by Apocryphon on Saturday January 19, 2019 @11:11AM (#18947672)
Maybe there’s a problem with which computer science is being taught if it’s so difficult for so many people to derive those solutions from fundamentals, and instead have to resort to brute force pattern memorization through Cracking the Coding Interview and Leetcoding.
Re:I interviewed at six top companies in Silicon Valley in s... by dlp211 on Saturday January 19, 2019 @12:16AM (#18945476)
There are literally tv shows and contests where they do exactly this.
Re:I interviewed at six top companies in Silicon Valley in s... by mehrdadn on Friday January 18, 2019 @08:59PM (#18944806)
I don't understand your comment. Was the parent suggesting BFS (or the like) is an exceedingly difficult concept to grasp? And if we're going to claim understanding BFS is like understanding zero, then wouldn't that just mean it's just as silly to complain about a question on BFS as it is to complain about a question on zero?
Re:I interviewed at six top companies in Silicon Valley in s... by joshuamorton on Friday January 18, 2019 @09:10PM (#18944858)
Yes, my understanding is that the parent comment is complaining that since it took people with phds years to derive an algorithm for the first time, that we should never expect anyone to implement one in an interview.

But, as with a concept like 0, making the cognitive leap to understanding that there should be a way to represent the lack of something is counterintuitive (indeed, consider Tony Hoare's billion dollar mistake. The "right" way to represent the absence of an object is a hard problem). However, once you've been exposed to it, it's not particularly challenging to rederive the necessary pieces.

So yes, complaining about BFS is, imo, akin to complaining about being asked what the result of the arithmetic operation `35 - 12 - 23` is.

Re:I interviewed at six top companies in Silicon Valley in s... by SamReidHughes on Saturday January 19, 2019 @10:47PM (#18950875)
And it's not like it took people with PhD's years to come up with BFS. You see people make a similar argument about Dijkstra's algorithm, when he picked it as an example of a particularly easy problem to solve.
Re:I interviewed at six top companies in Silicon Valley in s... by LaserToy on Saturday January 19, 2019 @01:59AM (#18945730)
I hope you are not going to be asked to implement consensus alg on the whiteboard. Took less time to invent than 0, but good luck writing it.
Re:I interviewed at six top companies in Silicon Valley in s... by pishpash on Friday January 18, 2019 @09:42PM (#18944988)
I also use 0 every day. Do you use the BFS every day?
Re:I interviewed at six top companies in Silicon Valley in s... by joshuamorton on Friday January 18, 2019 @09:49PM (#18945018)
Absolutely! I don't write the algorithm every day, but I interact graphs, trees, and other such structures on a daily basis in my job, and traversing them is something that I work on. Every time I run `rm -r` for example!

I'm not asked to implement BFS every day, but the concept of a tree traversal is incredibly common.

Even more explicitly, a lot of my recent work has been involving automated refactoring tooling, so there's lots of work with abstract syntax trees and control flow graphs, which are trees or graphs, and therefore need be traversed.

Re:I interviewed at six top companies in Silicon Valley in s... by LaserToy on Saturday January 19, 2019 @01:55AM (#18945720)
Ok, here is the question for you. I’m from gaming company, so it is relevant: given a matrix of 0s and 1s where 0 is a wall and 1 is an empty space, write function that finds path between provided coordinates. It should be suitable for real time game, no gooogling. Go
Re:I interviewed at six top companies in Silicon Valley in s... by joshuamorton on Saturday January 19, 2019 @03:29AM (#18945980)
I'm not clear what your point is. Sure you can come up with questions that are difficult or obscure.

Yes I can probably implement a sufficiently fast maze solving algorithm, depending on exactly the environmental constraints (for ezple, given the problem as stated I'd assume something like a* using a precomputed mat heuristic would be fast for most mazes of reasonable size, I promise either didn't google that).

But I wouldn't expect someone to answer that in an interview. Hell, I don't ask dynamic programming questions because I think they're too obscure and tricky (in the riddle way). My most common interview question involves a problem I've faced multiple times at work, has multiple valid solutions, and which I had to implement myself in various flavors before eventually coming across a relatively obscure standard library implemention.

Although before I was able to identify that implementation, I had to solve the problem 2 or 3 times, see the different flavors, and identify the common themes and the theoretical underpinnings.

I don't expect a candidate to do that without help, and most don't. But it sure sounds like you think that I'm somehow a bad engineer for asking a question that tests on the job skills I've needed, and the ability to break a problem down into component parts and implement them cleanly.

But oh no, it uses an algorithm. It's a terrible question and I should just ask a question about software engineering that doesn't use any algorithms. Because obviously people will always be able to identify the standard library implemention (no candidate I've interviewed ever has, in fact). So colore dubious of this whole argument about whiteboarding questions being a bad test.

Re:I interviewed at six top companies in Silicon Valley in s... by Aeolun on Friday January 18, 2019 @08:53PM (#18944780)
BFS as a name isn’t a difficult concept to grasp either.
Re:I interviewed at six top companies in Silicon Valley in s... by joshuamorton on Friday January 18, 2019 @09:02PM (#18944822)
Neither BFS the concept, nor 0, the concept are particularly hard to understand. That's why I used the word "concept". If you disagree with that, I'd be interested in what you feel is exceedingly difficult about the breadth-first search algorithm to understand, or if you prefer, to explain why the time it takes to discover or first write down a concept is strongly correlated with its age.

Consider that BFS was first published in 1945, while the turing machine was published almost 10 years prior. Is BFS an implicitly more complex concept than a turing machine? That seems like a strange argument to make, but I'm certainly interested.

Re:I interviewed at six top companies in Silicon Valley in s... by ergothus on Friday January 18, 2019 @06:36PM (#18944158)
I share both of your concerns (while I was very lucky in getting initial experience, I know of other beginners that haven't/arent, so I'm very sympathetic.) . Started coding for work in '95.

> was I wrong then? Or am I wrong now? Perhaps both.

Neither, I think. The Algorithm interviews are bad for 90% of the positions out there, and experience matters much more than trivia, so you were right then.

And today, everyone is trying to hire "senior" (and above), so there's no concept of "will learn, lacks experience" - and the algorthm questions do badly at identify THAT, so you're right today too.

It turns out that interviewing is hard, and we don't know what works well. Most of us think "we" are the ones that can obviously see what's wrong and everyone else is interviewing poorly. Most of us are wrong.

But even besides that, we need to focus more on getting newer coders that DON'T have experience. We'll spend years looking for people that have experience...longer than it would take to grow that experience. We want seniors because we want people that will grow without being mentored, because we have far more work than people...but we skip one of the ways to reduce that workload.

I'd much rather have an interview that was teaching something new, and see how the person processed it. That's not a good interview either, but at least it is trying accomplish the correct goal.

And when we do interview for senior and above, experience will count a lot more than building a frickin' linked list.

Re:I interviewed at six top companies in Silicon Valley in s... by bradleyjg on Friday January 18, 2019 @09:10PM (#18944860)
It turns out that interviewing is hard, and we don't know what works well. Most of us think "we" are the ones that can obviously see what's wrong and everyone else is interviewing poorly. Most of us are wrong.

Cowen’s Second Law: There is a literature on everything. Hiring is no different. Why do so many of us that say “of course you shouldn’t reimplement timsort, stand on the shoulder of giants” either make up an interview process based on gut feeling or cargo cult one based on what we heard google does?

Re:I interviewed at six top companies in Silicon Valley in s... by james_s_tayler on Saturday January 19, 2019 @12:28AM (#18945503)
Because of Cowen's First Law: there's something wrong with everything.

So no matter if you've read the literature and implemented a process, there is something wrong with it.

That's why there threads persist. Every process has something wrong with it depending on who you are. Funnily enough everyone eventually manages to sort themselves into the right category.

The system isn't broken any more than armed conflict is broken as a way of settling disputes. It's works, it's just a little terrifying and awful.

Re:I interviewed at six top companies in Silicon Valley in s... by lowdest on Friday January 18, 2019 @06:49PM (#18944224)
As I see it, the difficult algorithm interviews screen for people who are motivated enough to spend 100s of hours studying for an interview, or know this stuff for some other uncommon reason. Both types are acceptable hires.
Re:I interviewed at six top companies in Silicon Valley in s... by jammygit on Friday January 18, 2019 @07:32PM (#18944416)
Wouldn't it be better to hire somebody who thought that was lame and who spent 100s of hours learning performance testing, new libraries, design patterns, or just working on projects?

Personally, I'd rather not work somewhere that hired based on drilling fringe information - what will the job be like? Maybe I'll feel differently in 10 or 20 years

Re:I interviewed at six top companies in Silicon Valley in s... by BossingAround on Saturday January 19, 2019 @05:15AM (#18946288)
It's interesting to me how many people value personal projects. From my personal experience, a confusing Github account with a number of small, questionable projects pushed in one commit half a year ago hurts you more than helps you. Personal projects are fine, but I think many people have the mentality of "getting a TODO app in Angular will help me waay more than implementing algorithms in C, that's useless!" which may not necessarily be true.
Re:I interviewed at six top companies in Silicon Valley in s... by jammygit on Saturday January 19, 2019 @12:33PM (#18948067)
Fair enough, the quality of the projects matters for sure
Re:I interviewed at six top companies in Silicon Valley in s... by brabel on Saturday January 19, 2019 @05:02AM (#18946239)
> Wouldn't it be better to hire somebody who thought that was lame and who spent 100s of hours learning performance testing, new libraries, design patterns, or just working on projects?

I would hope so, because I do all those things and, after over a decade writing software, find the ability to solve puzzles almost completely useless for most coding I've ever done. But reality doesn't need to make sense. So, if you want to work for Google or Facebook, learn puzzles anyway :)

Re:I interviewed at six top companies in Silicon Valley in s... by BossingAround on Saturday January 19, 2019 @05:18AM (#18946293)
I really think it depends on the quality of the project. If I'm looking at a candidate, and see 3 projects, each pushed in one commit, each project has 3 classes in one package, and I see pushed compiled classes as well as source classes, that's a clear sign that this person doesn't know what he or she's doing.

That may not be necessarily a bad thing, depending on the position of course. But projects are not the be all end all, at least not in my company, and where I interviewed.

Re:I interviewed at six top companies in Silicon Valley in s... by pishpash on Friday January 18, 2019 @11:25PM (#18945327)
Yes you get drones and autistic savants. Great!
Re:I interviewed at six top companies in Silicon Valley in s... by scottlocklin on Saturday January 19, 2019 @09:54AM (#18947320)
black pill: that's what they want
Re:I interviewed at six top companies in Silicon Valley in s... by yuchi on Friday January 18, 2019 @06:52PM (#18944246)
I’ll share my process:

1. The first interview must not be a technical assessment — identify shared interests, look for collaboration opportunities. You need to understand if the person in front of you will be someone you would work with for the next 10 years, their current technical skills have little to do with this.

2. At the end of the first interview, right before the logistic questions, assess how they position in the junior-senior axis — either with direct questions or by pushing them to the topic. Once you‘ve done that ask an evil surgically difficult question — the correctness of the answer is not what you‘re looking for: pay attention to how they present their (eventual) missing knowledge, or how the address the answer by giving context. A senior developer doesn’t know everything, but must know enough to manage gaps in their knowledge.

3. Search for young and talented people — search for the fire in their eyes. You want someone which, eventually, will reach goals by their own.

Re:I interviewed at six top companies in Silicon Valley in s... by dacur on Friday January 18, 2019 @07:20PM (#18944358)
Search for young people? So discriminate?
Re:I interviewed at six top companies in Silicon Valley in s... by SturgeonsLaw on Friday January 18, 2019 @07:31PM (#18944412)
I read that charitably as "give newbies a chance"
Re:I interviewed at six top companies in Silicon Valley in s... by Stratoscope on Friday January 18, 2019 @08:41PM (#18944720)
I really try hard to apply the principle of charity, but as a 67 year old developer who is still working, I'm afraid it's hard to read "search for young and talented people" without thinking of it as illegal age discrimination.

That said, I do like the interviewing approach we're replying to, other than that "y" word... :-)

Re:I interviewed at six top companies in Silicon Valley in s... by stale2002 on Friday January 18, 2019 @09:39PM (#18944976)
Hey at least older people have laws that protect them.

Did you know that it is perfectly legal to discriminate against young people?

Yeah sucks to be them, I guess. Apparently nobody cares about discrimination against those people.

Old people are among the richest people in the world. But I guess when things are made fair, and neither young or old people are discriminated against, that appears like "discrimination" against those who are now being treated fairly.

Re:I interviewed at six top companies in Silicon Valley in s... by yuchi on Friday January 18, 2019 @07:36PM (#18944447)
Yeah absolutely, it was in the context of the OP.
Re:I interviewed at six top companies in Silicon Valley in s... by ttiurani on Saturday January 19, 2019 @01:27AM (#18945648)
I think the hidden agenda here might be that big corps also test for the candidate's a) motivation and b) obedience. Are you the sort of person who's willing to learn whiteboard programming on your spare time, and then tolerate abuse from the interviewers? The type of unethical business most of the big corps do works best with subservient, diligent code slingers.
Re:I interviewed at six top companies in Silicon Valley in s... by pikma on Saturday January 19, 2019 @01:31AM (#18945655)
Is your experience that interviewers "abuse" candidates? I interview candidates about once a week, and I always try to make them feel at ease and comfortable, no matter if they are doing well or not. I would be curious to learn about other people's experiences.
Re:I interviewed at six top companies in Silicon Valley in s... by ttiurani on Saturday January 19, 2019 @01:56AM (#18945723)
I personally have only anecdotal evidence, but I've read now many stories where the interviewers of these giants refuse to engage in a two-way, human-to-human conversation with the candidate but instead make the ordeal deliberately prolonged, stressful and unconfortable. I'd call that abuse.

Even though I'm sure there is a lot of variance between interviewers, I can't help but think that the abusive style of whiteboard grilling must "work" in that it results in able workforce, and that might be because of the reason I suggested.

Re:I interviewed at six top companies in Silicon Valley in s... by credit_guy on Friday January 18, 2019 @09:35PM (#18944957)
> What should I choose, pytorch or keras?

I know this is off-topic, but you can't go wrong with Keras. "Deep Learning with Python" by Francois Chollet (the creator of Keras) is a Kernighan-level book. A book like this comes around once a decade (or two). If you decide to go for it though, make sure you don't follow its instructions about the amazon cloud deep learning VM's; you'll end up paying $10 per day, even if you stop the VM.

Re:I interviewed at six top companies in Silicon Valley in s... by rossdavidh on Friday January 18, 2019 @09:38PM (#18944969)
How dare you add real information to our conversation here. :)
Re:I interviewed at six top companies in Silicon Valley in s... by Lyingdutchman on Monday January 28, 2019 @06:30AM (#19016642)
Somewhat late question:

What would you recommend as the alternative for someone without nvidia gpu? Google colab?

Re:I interviewed at six top companies in Silicon Valley in s... by credit_guy on Monday January 28, 2019 @07:27AM (#19016931)
I don't have a good answer to that (i.e. that I personally checked). However, FastAI lists some solutions in their latest version of the "practical deep learning for coders" course [1]. The google cloud version for example [2] was calculated to cost only about $40-$50 for the duration of their course (2 months), which is way, way better than the $10/day on AWS that I tried.

[1] https://www.fast.ai/2019/01/24/course-v3/ [2] https://course.fast.ai/start_gcp.html#budget-compute

Re:I interviewed at six top companies in Silicon Valley in s... by Lyingdutchman on Monday January 28, 2019 @10:51AM (#19018368)
I was aware of the fast.ai course, but not those guides.

Thank you.

Re:I interviewed at six top companies in Silicon Valley in s... by slimshady94 on Friday January 18, 2019 @09:02PM (#18944826)
Reiterating my view, I feel like the interviewing grind has become akin to gymming - you go to your mental gym, build up your 'muscles' by doing pointless repetitive tasks AKA algorithms you'd never use in real life (probably like how bodybuilders would never need to deadlift 125kgs in their daily life). It doesn't directly help you do your job but you know bodybuilders have higher than average fitness levels. So in the same manner, devs grinding leetcode probably have higher 'fitness' levels (mostly a type of muscle memory for programming) than devs who don't.
Re:I interviewed at six top companies in Silicon Valley in s... by rossdavidh on Friday January 18, 2019 @09:32PM (#18944945)
But, if I'm a scout for a football team, I don't want to see you in the gym, I want to see you play football. Maybe, ideally, I'd like to see both, but seeing you play football is by far the more important thing.
Re:I interviewed at six top companies in Silicon Valley in s... by hello_moto on Saturday January 19, 2019 @05:06AM (#18946257)
So tons of open source contribution in relevant areas with quick high-quality, low-bug-count, beautiful code check-in and demonstrated knowledge in breaking down problems into sub-problems and come up with elegant algorithsm? (something you can see in the field?)

Some analogies make sense, some probably don't map well.

Google prefers to hire Devs with strong CS foundations because they assume these Devs can contribute in many areas.

If they were only to hire someone based off something that they've done before and excel only in that area, they'd be like other companies who only hire selectively based on specific skill-set (e.g.: Java Dev, or 3D/game devs).

Re:I interviewed at six top companies in Silicon Valley in s... by halbritt on Saturday January 19, 2019 @11:36AM (#18947783)
Re:I interviewed at six top companies in Silicon Valley in s... by vonmoltke on Saturday January 19, 2019 @12:17PM (#18947966)
No competent team makes decisions based solely on the Combine. It's a data point that gets combined with college game tape, private workouts, and some other special events like the Senior Bowl. Also, a significant number of players who end up getting drafted or signed as Undrafted Free Agents don't go to the Combine.
Re:I interviewed at six top companies in Silicon Valley in s... by halbritt on Saturday January 19, 2019 @12:32PM (#18948059)
I didn't make that assertion. I was simply pointing out that the NFL has a set of skills tests that aren't football. Further, the effectiveness of the combine is as widely debated as the effectiveness of algorithm questions.
Re:I interviewed at six top companies in Silicon Valley in s... by um_ya on Friday January 18, 2019 @09:13PM (#18944871)
Except lifting weight has a DIRECT affect on increasing muscle mass. Doing pointless algorithms don't have any direct affect on your coding skills. I know plenty of college grads that can memorize all sorts of algorithms, but are shit at real world code. If I'm a company hiring to do REAL WORLD CODE, I'm going to ask questions pertaining to the position I'm willing to fill. The problem with these companies, is that they are hiring more than they need, therefore they aren't asking questions pertaining to any REAL job they're looking to fill.
Re:I interviewed at six top companies in Silicon Valley in s... by alextheparrot on Friday January 18, 2019 @09:15PM (#18944878)
It is also a form of “proof of work”. If you are willing to go to the lengths of learning these things, maybe you’ll be able to learn other things that are harder to assess during an interview.
Re:I interviewed at six top companies in Silicon Valley in s... by lawnchair_larry on Friday January 18, 2019 @09:47PM (#18945009)
In that case, we should just get candidates to weave wicker baskets.
Re:I interviewed at six top companies in Silicon Valley in s... by mancerayder on Friday January 18, 2019 @06:51PM (#18944244)
Honestly, there are so many posts like yours on HN, it's a surprise companies don't change this ridiculous algorithms thing. Hiring managers here complain that candidates all lie and they need to weed them out. However, algorithms bias towards younger people, recently out of college, math hobbyists and people with a lot of free time.

Me, I tell them in the first phone screen, "I'm a Systems/DevOps guy, I don't do algorithms and whatnot so I'm just letting you know in advance in case you ask me to whiteboard something like that." So far I was only spurned once out of half a dozen screens employing this statement.

If you want to screen liars, there are a million ways to do it. Truth is, folks, most interviewers don't read resumes in depth, and they're not clever enough to interview for honesty.

Re:I interviewed at six top companies in Silicon Valley in s... by scarface74 on Friday January 18, 2019 @08:17PM (#18944631)
I’m a software developer first and foremost, I am a software architect second these days specializing in building stuff on top of AWS.

But I might try to do some algorithm type interview, but wouldn’t feel bad if I bombed it. In fact, the only algorithm type interview I have done in the last 10 years, they made me an offer but I declined it for another job that asked more architectural questions.

The way I see it, if I could write 65C02 and x86 assembly language programs in the 80s, I think I can handle the needs of your software as a service CRUD app.

Re:I interviewed at six top companies in Silicon Valley in s... by mancerayder on Friday January 18, 2019 @09:36PM (#18944962)
As a hiring manager I would be impressed by your background. Unfortunately most will never read that far back. Or worse, not have enough experience to understand someone who can do that can handle the needs of their software as a service CRUD app.
Re:I interviewed at six top companies in Silicon Valley in s... by halbritt on Saturday January 19, 2019 @11:34AM (#18947771)
There's really no need to screen for liars. Generally speaking, I'll try to ascertain how the candidate represents the skills on their resume. Some represent their skills well and can describe in detail their approach to solving a problem or some such. From there, it's not hard to assess things like passion, determination, etc.

Usually, I'm just looking for one thing the candidate does well. There's really not much room for lying and if they claim to have some crucial skill and then I discover after the fact that they don't, that's grounds for dismissal.

Re:I interviewed at six top companies in Silicon Valley in s... by rock_hard on Friday January 18, 2019 @07:29PM (#18944403)
This all comes down to what the company is optimizing for.

Everybody here seems to assume they are trying to filter for the good candidates...but what they are actually trying to do with these kind of interviews is filter out the bad ones!

Because the damage when hiring a bad candidate is much higher than the damage from missing out on a good one!

Re:I interviewed at six top companies in Silicon Valley in s... by vonmoltke on Friday January 18, 2019 @09:09PM (#18944856)
> Because the damage when hiring a bad candidate is much higher than the damage from missing out on a good one!

I get that this is the conventional wisdom in a subset of this industry, but in my experience this "truth" does not have as much objective support as the people who keep repeating it think it does.

Re:I interviewed at six top companies in Silicon Valley in s... by pishpash on Saturday January 19, 2019 @03:50AM (#18946051)
In at least one aspect, the adage becomes facially untrue -- you can fire bad employees, but you cannot get back good candidates rejected by means of a degrading exercise. You probably lose them forever.

In companies where opportunity cost and hidden losses are nobody's responsibility, this sort of mediocrity is well accepted.

Re:I interviewed at six top companies in Silicon Valley in s... by sethammons on Saturday January 19, 2019 @09:28AM (#18947198)
You can fire the bad ones, sure. After you document everything and cross i's and dot t's. Even if you don't CYA, you still lost team productivity while they onboarded the new person, and that time is lost. Plus the hit to team moral, and possible negative affects to team culture of dealing with an under performer or toxic individual.
Re:I interviewed at six top companies in Silicon Valley in s... by vonmoltke on Saturday January 19, 2019 @12:25PM (#18948013)
What's the cost to team morale when the team members have to put in extra time to meet deadlines because the team is shorthanded? What's the cost to the company when the team doesn't have the bandwidth to take on work and projects start slipping? How does team culture fare when someone on the team always finds some reason to reject every candidate they see, and this continues for weeks or months on end? What is the loss of productivity from having to conduct all these extra interviews until just the right person walks through the door?

The answers to both sets of questions are very situational, yet some people treat them as if they have universal answers.

Re:I interviewed at six top companies in Silicon Valley in s... by stale2002 on Saturday January 19, 2019 @08:07PM (#18950309)
> What's the cost to team morale when the team members have to put in extra time to

Less than the cost of being perpetually afraid of being fired.

If an engineer on my team got fired, no matter how much they deserved it, I'd probably start looking for a new job or team immediately.

The fear of being let go isnt something I'd ever want to deal with.

Re:I interviewed at six top companies in Silicon Valley in s... by rock_hard on Sunday January 20, 2019 @09:58AM (#18953307)
Just to be clear the kind of strategy we discuss here only works at FANG like companies that have enough candidates applying so that missing a good one doesn’t hurt their hiring goals.

Of course it sucks for the individual...but such is life

Re:I interviewed at six top companies in Silicon Valley in s... by rock_hard on Saturday January 19, 2019 @09:27AM (#18947193)
At FANG good candidates tend to apply again a year or so later
Re:I interviewed at six top companies in Silicon Valley in s... by rossdavidh on Friday January 18, 2019 @07:39PM (#18944466)
Truth, and also especially so for a company like FB or Google where they probably have an abundance of qualified applicants, for a variety of reasons. For most companies, copying what FB or Google (or Microsoft or whoever) is doing, is probably a bad idea, in tech interviewing or many other things.
Re:I interviewed at six top companies in Silicon Valley in s... by pishpash on Friday January 18, 2019 @09:46PM (#18945001)
Nope. They're neither filtering in good ones or filtering out bad ones. They're filtering for people who find a way to hit whatever arbitrary metric the Company sets up as "success", and these people will have many more chances to practice this "skill" in subsequent self reviews and metrics hacking. They also end up running the Company and hiring more like themselves.
Re:I interviewed at six top companies in Silicon Valley in s... by hellllllllooo on Friday January 18, 2019 @09:56PM (#18945043)
As someone recently interviewing I targeted roles where I didn't have to jump through these hoops and it worked out fine. Contacting people I had worked with before who could vouch for me made it much easier to land a job.

The top companies with these leetcode tests probably don't care that good people being rejected or avoiding them because of the amount of preparation required. Middle sized companies and startups doing leetcode tests are missing good people and probably can't afford the same number of false negatives as someone like Google with an endless supply of candidates.

I would much rather spend a weekend doing a take home test and showing how I actually work than being asked to write irrelevant code on a whiteboard. I think leetcode style interviewing is driven by time constraints of the interviewer and some more effort and thought needs to be put in on how to choose people based on the specifics of the actual role they are hiring for.

Re:I interviewed at six top companies in Silicon Valley in s... by BurningFrog on Friday January 18, 2019 @09:13PM (#18944872)
I'm in a similar situation.

I think the counterargument might be that at our age, you should have a network of people who will hire you just based on your stellar performance on previous jobs, if you're that experienced and sophisticated.

If you somehow don't, well, maybe you need to brush up on your tree balancing skills...

Re:I interviewed at six top companies in Silicon Valley in s... by shashasha on Friday January 18, 2019 @09:34PM (#18944955)
I believe for older engineers who regularly read these threads, this is the comment. Wish it weren’t true, but it is.
Re:I interviewed at six top companies in Silicon Valley in s... by molodec on Friday January 18, 2019 @09:42PM (#18944989)
I wrote a custom HashMap for Java, used BFS and DBS on graphs, wrote a top down custom parser, custom string searching algorithms to solve real business problems. I would rather work with someone who knows how neural networks really work rather than who knows pytorch or keras, because they can be learned rather easily. In some industries knowledge of algorithms can be more valuable than knowing a myriad of frameworks that change every few years any way.
Re:I interviewed at six top companies in Silicon Valley in s... by brabel on Saturday January 19, 2019 @05:14AM (#18946285)
> In some industries knowledge of algorithms can be more valuable than knowing a myriad of frameworks that change every few years any way.

This is exceedingly rare... so you wrote a HashMap implementation in Java?? None of the custom maps discussed [here](http://java-performance.info/hashmap-overview-jdk-fastutil-g...) were enough? It must be a really rare problem you're working on if there's no library that provides an acceptable solution for it in Java.

> I would rather work with someone who knows how neural networks really work rather than who knows pytorch or keras

I would rather work with someone who knows general programming (which is not the same as algorithms - there's so much more to it!) and software design... but if working on a product that uses a framework heavily, good knowledge of that framework can be the difference between getting things done in minutes VS weeks (of painful and time-consuming battling with the framework to do thing the way you think they should be done, rather than how it's done within the framework).

Re:I interviewed at six top companies in Silicon Valley in s... by molodec on Saturday January 19, 2019 @10:10AM (#18947398)
I agree that these problems are rare, but they do come up, at least they did in my experience. As you alluded general programming and software design is not the same as knowing how a particular framework works. The former is much more valuable, but at the same time if someone is able to understand in depth a complex technology/framework he/she is most likely great at general programming and software design.
Re:I interviewed at six top companies in Silicon Valley in s... by rimliu on Saturday January 19, 2019 @04:29AM (#18946154)
There are people who really know how NN work? I thought there were only people who know how to implement them ;)
Re:I interviewed at six top companies in Silicon Valley in s... by molodec on Saturday January 19, 2019 @10:15AM (#18947422)
You right, but I would say we do know how artificial NN work, because we are able to construct them, but we don't actually know why they work ;)
Re:I interviewed at six top companies in Silicon Valley in s... by abecedarius on Friday January 18, 2019 @07:26PM (#18944390)
You're not wrong, but that one time you see a place for a new algorithm for a specialized problem can make a big enough difference to be worth it. If nobody in your group has the range, it's not likely you'll know when it'll pay to call in the research department with the PhDs exactly when they're needed, either. There's no bright line between coding and invention.

More mundanely, when I was starting out at a small shop (I'm around your age) my coworkers hadn't mastered undergrad algorithms, and it made a significant difference in what we could do.

It's unfortunate that attempting to test for this seems to have encouraged too much memorizing of known tricks relative to better mastery of principles.

Re:I interviewed at six top companies in Silicon Valley in s... by nnd on Saturday January 19, 2019 @11:54AM (#18947869)
How would you go about mastering the principles rather than practicing random algorithmic challenges?
Re:I interviewed at six top companies in Silicon Valley in s... by abecedarius on Saturday January 19, 2019 @06:56PM (#18950042)
Udi Manber's Algorithms: A Creative Approach looks like a promising book to work through. There are lots of great resources that didn't exist when I was an undergrad.

But how do you approach them? What prompted my comment was all the times people comment online about "memorizing algorithms" to prepare for interviews -- learning about algorithms will include a lot of them sticking in memory, yes, but approaching it as cramming a textbook into memory the way students cram for a final exam seems... disappointing.

Re:I interviewed at six top companies in Silicon Valley in s... by kbenson on Friday January 18, 2019 @07:41PM (#18944477)
> Much more important is to have the experience of how code complexity accumulates, and how to mitigate that.

That's so right. But that is experience, so I think when you know most the candidates don't have it, you end up looking for other stuff to test, and then your interview process gets infected, and eventually when you are interviewing for positions that should have experience, you get a lot of the same bullshit questions.

There are plenty of stories here of novice programmers doing some passion project, and 6-12 months after learning to program they are busting out some fairly complex algorithms that to someone that took the long route of getting a CS degree can look somewhat amazing, and frankly, humbling. But I think what's going on is that's the easy stuff to get a hold of, because all it takes is some judicious googling, or more likely, asking some professionals from help, and you're pointed in the right direction for the tool that solves your need, so you use it. Getting amazing progress on a new project isn't really hard.

Getting sustained progress, or being able to fix your problem a year or two in once you realize a major architectural change is required, and not being bogged down for months and losing interest, those are amazing, and those take experience or constant mentoring to achieve usually.

Or maybe I'm just projecting what I currently value.

Re:I interviewed at six top companies in Silicon Valley in s... by jacquesm on Friday January 18, 2019 @06:43PM (#18944188)
Algorithm interviews are good for people that will be writing algorithms. Most of us are just plumbers, even so a solid knowledge about what algorithms are available and what their strengths and weaknesses are is as important as good knowledge about the tools is to plumbers.
Re:I interviewed at six top companies in Silicon Valley in s... by ljm on Saturday January 19, 2019 @07:27AM (#18946686)
This is my main beef with tech interviews: you get given a test, or an algorithm, or put under the spotlight in a pairing session to solve a problem in essentially the least efficient way possible. It's usually under the guise of seeing how you think, but it's pretty damn hard to do that without also judging how the code looks and how much you were able to write.

This then becomes representative of your experience in spite of that fact that you are never likely to be confronted with that kind of problem with that kind of timeframe. Whatever's on your CV, and whatever you can say about what you've learned over the years, becomes totally irrelevant in the face of that.

I think it's offensive and I don't like how the industry has standardised on basically assuming everyone's a bullshitter. What's worse is that you'll have to repeat this over and over again for any company you interview with.

To that extent I'd much rather see the formation of a professional body that offers a trustworthy credential, potentially one that you need to renew every couple of years to ensure you're still current. That comes with challenges of its own but I'd rather have something that is both verifiable and can be reused.

Re:I interviewed at six top companies in Silicon Valley in s... by Vadoff on Saturday January 19, 2019 @11:32AM (#18947759)
>This then becomes representative of your experience... Whatever's on your CV, and whatever you can say about what you've learned over the years, becomes totally irrelevant in the face of that.

Don't think this is true. At most tech interviews, the algorithms portion is more of a technical bar. It's usually the CV, years of relevant experience, and performance on the architecture/system design interview that determines what leveling you are.

>To that extent I'd much rather see the formation of a professional body that offers a trustworthy credential

Every company values different things from their candidates, so I don't think a formal interview process will ever go away. That said, there are companies like Triplebyte that try and standardize the interview process - they usually don't ask algorithm questions either. It's not quite a certification, but they'll fast-forward you through the interview process at companies that use them.

Re:I interviewed at six top companies in Silicon Valley in s... by austincheney on Saturday January 19, 2019 @01:57AM (#18945726)
> I feel annoyed that all of these stories of interviews involve asking questions about algorithms that rarely come up in real coding, and if they do you should NOT be rolling your own code

I completely disagree with you, because how do you define rare. In my case as a JavaScript developer many cases commonly considered rare are in fact exceedingly common and important, but considered rare due to tooling and people hiding from them. When the reality is invented here syndrome every problem is either a configuration or rare. I make it an important point to attempt to discover this distinction when I am interviewing for a new position or interviewing new candidates.

I have often seen weak developers promoted to senior because they are good with tools, trends, and configurations only to struggle in the face of an original problem. You can't simply hope to download your way out of every development problem and hope to be taken seriously as a senior. That reality is something many people are unwilling to accept at great emotional peril.

https://en.wikipedia.org/wiki/Invented_here

Re:I interviewed at six top companies in Silicon Valley in s... by option on Friday January 18, 2019 @06:37PM (#18944164)
There are career stages. For candidates just out of school or with little experience asking algorithmic questions totally makes sense. For more senior candidates (who actually progressed to the next stage, not just spent a lot of years), the questions become more real-life, more open ended and with more than one (or sometimes none) “correct” answer
Re:I interviewed at six top companies in Silicon Valley in s... by world32 on Saturday January 19, 2019 @05:18AM (#18946295)
Are algorithm puzzles really that ubiquitous in the US?

In the UK I've interviewed at dozens of companies and never once been asked to code a breadth first search or something like that. Nor have I ever heard of a developer being asked to solve such things in interviews over here.

Re:I interviewed at six top companies in Silicon Valley in s... by Vadoff on Saturday January 19, 2019 @11:40AM (#18947794)
Usually larger tech companies that are flooded with applicants tend to ask these more.
Re:I interviewed at six top companies in Silicon Valley in s... by world32 on Saturday January 19, 2019 @02:17PM (#18948652)
I might be wrong but I don't think that larger tech companies get that many more applicants for jobs than smaller companies do. Beyond FAANG I don't think there is really much more "status" around working for a large company vs working for small company. Most people understand that just because the company you work for is large one doesn't mean your job is any more challenging or technically advanced than it as at a small company.

Also a company hiring a mid-level developer (say around 3 years experience) doesn't really have that much of a pool to chose from. Most good developers are already in jobs and pickings are slim, its a buyers market.

Re:I interviewed at six top companies in Silicon Valley in s... by Vadoff on Saturday January 19, 2019 @02:36PM (#18948747)
Larger companies usually have more brand recognition == more applicants. Many smaller companies are essentially unknown to the public and need to rely much more on talent agencies to bring in applicants.
Re:I interviewed at six top companies in Silicon Valley in s... by gdy on Saturday January 19, 2019 @06:41AM (#18946504)
What do they ask in the UK?
Re:I interviewed at six top companies in Silicon Valley in s... by world32 on Saturday January 19, 2019 @12:17PM (#18947968)
In my experience they typically ask you questions about the experience you've listed on your CV. If you say you have experience working with AWS, then they might ask you something like "explain what a VPC is and why is it useful?". Other more general questions are usually along the lines of "tell me about a solution to a problem you solved and how you designed the solution to that problem".

The few times that I've been asked very specific technical questions they have always been related to the job I was applying for. Example: a ruby on rails job interview I was shown a few ActiveRecord models and asked what is wrong with them and how I would improve them - the answer was that they were all really polymorphic models but that was not how they were implemented in the code. Or for a frontend role, they might ask you "explain the javascript prototype chain to me".

Again, in my experience, its always seemed like the interview was more of a personal test rather than a technical one. Will the person be easy to work with? Will they be communicative or will they bottle up their issues and resent the team for it. Are they willing to learn? Will they be able to hande occasional pressure and stress? I think its generally accepted that its extremely difficult to accurately gauge a person's technical abilities in an interview. Also employees always start on a probationary contract in which they can be fired with 1-2 weeks notice, this usually lasts between 3-6 months, so if it turns out the employee was blagging it in the interview then it will become apparent pretty quickly and they will likely not make it past the probation period.

Re:I interviewed at six top companies in Silicon Valley in s... by gdy on Sunday January 20, 2019 @03:30AM (#18951922)
This sounds similar to Russia, at least to me with my limited experience as an interviewer and even more limited as an interviewee.
Re:I interviewed at six top companies in Silicon Valley in s... by AsyncAwait on Saturday January 19, 2019 @09:22AM (#18947172)
I have interviewed in the UK and did algorithm whiteboarding, so I'd say it's company-specific, rather than country-specific.
Re:I interviewed at six top companies in Silicon Valley in s... by nvarsj on Saturday January 19, 2019 @08:11AM (#18946869)
It's not much different in the UK if you apply to FAANG, hedge fund, or a cargo culting startup.
Re:I interviewed at six top companies in Silicon Valley in s... by LearnerHerzog on Friday January 18, 2019 @08:22PM (#18944645)
> I cannot spend hours and hours studying up on these algorithms, there are much more important things (real coding-related things) which I need to learn about, to the extent I have time to do that.

Are "real code-related things" really much more important if it only takes hours and hours to learn something that might get you an offer at one of these companies?

Perhaps those hours and hours are actually far more valuable 'financially' speaking than a lifetime of studying code that is valuable 'technically' speaking. I don't doubt that some of the big name companies use rarely-used algorithms with battle-tested solutions on purpose JUST to see if you prepared for battle. They look for non-technical smarts because they have no shortage of technically prodigious applicants.

At Google, with over 400 applicants for every position, they have no shortage of technically-competent engineers. They look for people who think way outside the box and try new things, sometimes resulting in industry defining inventiveness. It's ~10 times harder to get hired at Google than get into Harvard.

https://www.forbes.com/sites/stanphelps/2014/08/05/cracking-...

Re:I interviewed at six top companies in Silicon Valley in s... by aswanson on Friday January 18, 2019 @08:30PM (#18944680)
Reminds me of the old phrase, re: academia: "The competition is so high because the stakes are so low." There is something really weird, at least to me, in working so extraordinarily hard to prove yourself worthy of serving someone/some company. But that's just me.
Re:I interviewed at six top companies in Silicon Valley in s... by BigFish12 on Friday January 18, 2019 @10:00PM (#18945053)
Money and prestige my friend.
Re:I interviewed at six top companies in Silicon Valley in s... by aswanson on Saturday January 19, 2019 @04:24PM (#18949273)
Money, I can understand. Under bayesian analysis, your better off going into medical studies, though. Prestige...well... In my dads day, working at IBM would've earned great prestige. On graduation day for me, working at Microsoft would have earned prestige the same year Google incorporated. So...fuck prestige.
Re:I interviewed at six top companies in Silicon Valley in s... by opportune on Friday January 18, 2019 @08:24PM (#18944660)
The easiest way to get hired at Google is to let them come to you, not to directly apply
Re:I interviewed at six top companies in Silicon Valley in s... by LearnerHerzog on Friday January 18, 2019 @08:27PM (#18944666)
The Field of Dreams approach. "If you build it, they will come"
Re:I interviewed at six top companies in Silicon Valley in s... by opportune on Friday January 18, 2019 @08:34PM (#18944696)
Really, that's not far from the truth. If you've worked at other well known "good" companies and worked on hot/important stuff, and that info is on linkedin, you will probably get approached by a google recruiter at some point. And unless you fuck up your call with them to make sure you're interested and a real person, that basically guarantees you a first round technical phone screen, which is the hardest part of getting hired at Google. You can study as much as you want and be the best engineer possible, but that won't matter if you don't get to the first round interview.

You basically "build" a linkedin profile that comes up when recruiters search for technically hot things, and then they will come knocking

Re:I interviewed at six top companies in Silicon Valley in s... by QML on Friday January 18, 2019 @09:08PM (#18944849)
Does this method still bypass the algorithms interview? It seems like it only gets your foot in the door, which is probably the harder part for most.
Re:I interviewed at six top companies in Silicon Valley in s... by hello_moto on Saturday January 19, 2019 @02:24AM (#18945804)
Unless someone inside Google wants you that _bad_, you can't by-pass the interview session.
Re:I interviewed at six top companies in Silicon Valley in s... by opportune on Saturday January 19, 2019 @05:25AM (#18946312)
yes, bypasssing the int4erview is hard, what I'm saying is that you can go directly to the first round of technicals without hazards if you play it well
Re:I interviewed at six top companies in Silicon Valley in s... by namelosw on Saturday January 19, 2019 @04:29AM (#18946153)
I found essentially most 'algorithms' code is just terrible code. A lot of people spent a lot of time learning algorithms other than more broad techniques write terrible code every day.

An alias for so-called 'algorithms' is 'imperative style' for 'functional programming style', or 'procedural programming' for 'object-oriented programming'.

They are too arcane to read, hard to modify and error-prone. Most of them require mutable data structures, intermediate snapshot for a special optimization purpose, make everything much harder to reuse.

It mostly requires you to instruct every piece of code, every step of execution. Instead of just describing what you need, and let the code find a way to fulfill it autonomously, in a declarative manner like Haskell or Prolog.

And 99% of software companies do not really have the need of requiring their employees having a deep grasp of algorithms, while most of them need their code somehow more maintainable. Those of the Leetcode oriented interviews are just really bad.

Personally, I believe business sense and culture stuff are very important. As for skill part, a lot of concepts could be more useful than algorithms like understanding of domain and relation modeling, immutable data structures, lazy evaluation, reactive design etc.

Re:I interviewed at six top companies in Silicon Valley in s... by LaserToy on Friday January 18, 2019 @08:16PM (#18944625)
You are absolute right. I’m telling recruiters upfront that I will spend 0 time preparing and if it is a deal breaker - it is what it is.
Re:I interviewed at six top companies in Silicon Valley in s... by zoom6628 on Saturday January 19, 2019 @04:24AM (#18946145)
You are so right. Im 55 now and have developed on tools, a lot of ERP/Manufacturing stuff, compliance, integration tools. Have never had the need to reach for Knuth so that shows either I am pig-ignorant, arrogant, or there is no real need in general. It is good to know algorithms but these are not the main stuff of the real world. Learn about design patterns, user experience, product philosophy, and invest time in learning about your company (who, how and why started, markets, competition) and you will go further and faster than being able to ace a whiteboard interview on the foibles of event processing in Vue. And yes i still cant write good javascript - because IT IS NOT IMPORTANT so i have avoided until this year and Im now learning it as a hobby, not a need.
Re:I interviewed at six top companies in Silicon Valley in s... by temp231239 on Friday January 18, 2019 @09:58PM (#18945049)
While I agree with you on the non-algorithmic coding skill being more important in most of the scenarios that an coder deals with at work, I feel having basic understanding of algorithmic skill is important as well for coder success. Interview should test basic algo skills along with other important skills, but when I put myself in interviewers shoe I realize how difficult its is to test on real coding challenges as every company has its own sets of tools and techniques that they use and prefer. Testing it would require first detailing coder on companies present tech culture which is a difficult for a code to get in short duration.
Re:I interviewed at six top companies in Silicon Valley in s... by QML on Friday January 18, 2019 @09:12PM (#18944865)
As someone who is interviewing for internships, I view all of these algorithms interviews as a necessary evil. While they may not reflect the day to day job demands of programming, they are certainly easier to measure and serve as a benchmark for candidates.

Not all of them are bad though; I had an interview that had me implement a basic data structure in accordance to the specifications given. It didn’t require memorization, practice, or any “Leetcode grinding” — only fundamentals in communication and programming. The time I had was about an hour so this is definitely a plausible substitute.

Re:I interviewed at six top companies in Silicon Valley in s... by ex_amazon_sde on Saturday January 19, 2019 @06:09AM (#18946425)
Ex Amazon here. We never asked silly puzzle questions, but asking questions about algorithmic complexity paid off when hiring strong, senior engineers.

> Much more important is to have the experience of how code complexity accumulates, and how to mitigate that

That's part of the reason. The average developer knows how to pick a popular library and throw code at it until it works. When entire teams do that you end up with endless complexity.

That's why Google and Amazon are known for [re]inventing their own solutions.

Re:I interviewed at six top companies in Silicon Valley in s... by GuB-42 on Saturday January 19, 2019 @04:51AM (#18946215)
Even if if you don't roll your own code, knowing how it works is still important. I see cargos cult code far too often.

Granted that you only need a vague idea about the algorithm. But going from a vague idea to working code is also a valuable skill.

Re:I interviewed at six top companies in Silicon Valley in s... by rudolph9 on Saturday January 19, 2019 @12:01AM (#18945423)
Have you considered that they aren’t necessarily looking for a particular answer or even a correct answer but rather your thought process while working through problems and how you engage with a peer?
Re:I interviewed at six top companies in Silicon Valley in s... by hello_moto on Saturday January 19, 2019 @02:23AM (#18945799)
Sadly they are looking for the most precise and optimum answer (at least at FB they do)
Re:I interviewed at six top companies in Silicon Valley in s... by collyw on Saturday January 19, 2019 @04:31AM (#18946160)
I feel exactly the same.