Live data from Hacker News

Google Tech Dev Guide

techdevguide.withgoogle.com

231–240 of 250 posts

Re: Google Tech Dev Guide

#231
post #52

Earlier quoted context omitted.

> Having never needed to build my own sorting algorithm in 14 years of coding, Neither have I. What I have had to do is recognize when I could do what I needed to do without sorting the array, understand various requirements when I'm writing comparison functions, understand why std::list::sort exists when std::sort is right there, debug a stalling mapreduce job, recognize when a library I'm using has done a stupid an…

> The engineer that cannot write a sorting algorithm is the one that designs an API that fundamentally requires server-side session state that grinds to a halt at ten QPS I've come cross more than a few "can write a sorting algorithm" engineers that nevertheless design APIs requiring server-side session state, or that have gone ahead and implemented a sorting algorithm embedded in the server-side HTML template. Knowl…

Of course it's not sufficient. I don't even think it's necessary. But, generally speaking and in my experience, formal algorithms knowledge is incredibly useful, and you are at a significant disadvantage if you do not have it in your toolbox.

Re: Google Tech Dev Guide

#232

Earlier quoted context omitted.

Have you studied cracking the coding interview before? If so, then I think you’ve probably seen similar problems. I find these problems very annoying and I code a lot of clever algorithms in my research. But none of it is have the strong scanning variety, I mean, except lexing in a compiler. And that’s how I would solve this problem in any case: I would just construct a scanner for D that would simply add to the stat…

I've never specifically studied for programming interview questions, or read that book. Of course, when somebody asks a fun problem, online or something, such as here, I'll try to figure it out. And I also find "string problems" to be the worst, I think they're a particularly bad genre of algorithms question. My claim was a very weak one, too. It was that somebody who never heard the problem before can get better tha…

>> I've never specifically studied for programming interview questions, or read that book

You've also never been through a FANG interview, according to your LinkedIn profile. I've been through several (successfully), and conducted well over a hundred. It is very unlikely anyone can pass them without extra work to prepare.

Re: Google Tech Dev Guide

#233

I have been putting off a Google interview for a whole year now. I have real experience building Cluster Filesystems, Distributed Caches, TCP/IP Control plane software and low latency Ad platform for more than a decade. Sounds good on paper, but I can guarantee I cannot solve most of these puzzles without actually solving them beforehand. Why? Because I do not have cycles or time to solve these on my own. I have a sy…

I'm in a similar situation. In addition, I participated in many programming competitions (ACM qualification rounds, TopCoder, 2 or 3 CodeJams, tons of local ones), I even won some. But every time I look at Google interview questions, I'm like - NOPE. It's all about luck. You can get a simple question that you know the answer to, or not. In that case there's rarely enough time to solve a problem, and they usually want the best solution. And the odds of you coming up with a good solution to a hard problem are very close to zero.

Re: Google Tech Dev Guide

#234
post #232

Earlier quoted context omitted.

I've never specifically studied for programming interview questions, or read that book. Of course, when somebody asks a fun problem, online or something, such as here, I'll try to figure it out. And I also find "string problems" to be the worst, I think they're a particularly bad genre of algorithms question. My claim was a very weak one, too. It was that somebody who never heard the problem before can get better tha…

>> I've never specifically studied for programming interview questions, or read that book You've also never been through a FANG interview, according to your LinkedIn profile. I've been through several (successfully), and conducted well over a hundred. It is very unlikely anyone can pass them without extra work to prepare.

I didn't know my LinkedIn profile lists where I've interviewed.

Re: Google Tech Dev Guide

#235
post #196

Earlier quoted context omitted.

If you couldn't solve that question, maybe you shouldn't work at Google... def valid(S:str, word:str) -> bool: s = S for l in word: pos = s.find(l) if pos == -1: return False s = s[pos+1:] if not s: return False return True if __name__ == '__main__': D = ["able", "ale", "apple", "bale", "kangaroo"] S = "abppplee" in_s = {len(w): w for w in D if valid(S, w)} keys = list(in_s.keys()) sorted(keys) print(f"longest is {in…

Yeah, whenever I see a question like that one, I think it's pretty straightforward but then I wonder if my straightforward solution isn't the "brute force" solution and the interviewer isn't looking for some tricky "elegant" solution. Still, if I were asked that in an interview, I'm sure I'd put together something like your solution; I can't think of a "better" way to solve it.

I was trained by fb for interviewing, the phone screen, sw part. You start with a simple enough problem. See how fast the candidate can come up with a solution. Then complicate the problem to find more stuff. Like, what if you have unlimited memory? What if you have very little memory? etc. You are supposed to look for signals. Can the candidate improve the solution based on some random constraints/hints? Is the candidate good enough with the language they picked (eg, append vs extend in python, or why i copied S into s). We were not looking for tricks and the entire idea that big companies are looking for tricks in their interviews was spread by either people that never been in such an interview or were bad enough to be rejected.

Re: Google Tech Dev Guide

#236

Earlier quoted context omitted.

This is the CS equivalent of "maths are useless since I'll never use them in real life". Even if you are a software engineer who works exclusively on Javascript you need to understand the basic of how things work.

Most math is useless to 95% of the population. I can't remember the last time I used any of the teachings of my calculus heavy undergrad.

Remembering the chain rule is useless sure, but concepts like how integration works, Newton's method, Bayes rule, and a comfort with calculus-y concepts help me in my job all the time, when reasoning about problems and understanding systems.

Re: Google Tech Dev Guide

#237

Earlier quoted context omitted.

I have worked on similar kinds of problems where obscure details about sparse matrix algorithms were required. My team ended up writing a large in-house search engine and ranking framework that combined image and text search, all in Cython, using various types of bit packed indices for fast filtering and our own implementation of a series of sparse matrix algorithms sort of ripping out CSC and CSR internals for a han…

I don’t think it’s hazing, Google internal culture frowns on that kind of alpha male coder oneupsmanship. its mostly likely a residual of the fact that people fresh out of school actually don’t have a lot of projects or experience to talk about. If you ask me what the perfect interview is? I’d say, send me a bunch of github repos you participate in and let me review your code, bugs, and discussions with collaborators…

Calculus probably isn't the best example, because you really don't need it. Real engineers need it, but if software engineers got a different sequence in discrete math I think they'd be better prepared for the job market. I ended up doing a math concentration so I got both Calc 1-3 and some nice discrete courses like number theory, combinatorics, and abstract algebra that were super useful, and in my opinion we could definitely stand to replace memorizing integration techniques with studying some of those topics.

Re: Google Tech Dev Guide

#238

Earlier quoted context omitted.

I don’t think it’s hazing, Google internal culture frowns on that kind of alpha male coder oneupsmanship. its mostly likely a residual of the fact that people fresh out of school actually don’t have a lot of projects or experience to talk about. If you ask me what the perfect interview is? I’d say, send me a bunch of github repos you participate in and let me review your code, bugs, and discussions with collaborators…

Calculus probably isn't the best example, because you really don't need it. Real engineers need it, but if software engineers got a different sequence in discrete math I think they'd be better prepared for the job market. I ended up doing a math concentration so I got both Calc 1-3 and some nice discrete courses like number theory, combinatorics, and abstract algebra that were super useful, and in my opinion we could…

This really is not true. Using a little calculus to derive a closed form solution to a problem can reduce computational burden. A team where I work just had to do exactly this for a geographic distance optimization problem. At first glance it seemed like you needed dynamic programming and it was expensive, but drawing it out and modeking it with equations, we actually set up a Lagrange multiplier formula for the problem and found it had an exact solution. This was not a team of mathematicians or anything, just database engineers working on a specialized in-house search optimization problem.

If you do work in statistics, then calculus matters quite a bit, especially for transformations of variables and deriving the formulas for the probability distributions you’re working with. In Bayesian methods, even if you use autodifferentiation tools to automatically sample from your model, you still often need to do a bit of calculus here or there.

Likewise, if you ever find that you need to implement your own model training algorithms, you’ll probably need to calculate gradients (for example, the gradient of custom log-likelihood functions) analytically before writing them as software functions.

Calculus is pretty pervasive in professional software engineering. You don’t need to be an expert, but should have working knowledge and ability to dig into references and work through it.

Re: Google Tech Dev Guide

#239

"Given a string S and a set of words D, find the longest word in D that is a subsequence of S." Found under "Foundations of programming" -- this is exactly the type of problem I'd expect as question one under this section. When it's made by Googlers, that is. I make a lot of cool stuff day to day, and usually that requires a lot of code and knowledge about programming and topics that are rather advanced (currently I'…

You sound like the kid in school that always asked "are we ever going to use any of this in real life?" in math class. Truth is I never needed to derive a function outside of school or college. Was learning about derivatives in high school a waste of time? I can't explain why, but I want to say no, it wasn't.

Also, many times this puzzles are useful in tech interviews to see if the candidate has good analytical skills, which is what is needed.

Re: Google Tech Dev Guide

#240
post #131

I have been putting off a Google interview for a whole year now. I have real experience building Cluster Filesystems, Distributed Caches, TCP/IP Control plane software and low latency Ad platform for more than a decade. Sounds good on paper, but I can guarantee I cannot solve most of these puzzles without actually solving them beforehand. Why? Because I do not have cycles or time to solve these on my own. I have a sy…

There are no “puzzles”, but problems to solve. I expect that things like this string search are entry level / new grad kind of question. Someone more senior with more experience should have different kind of problems to solve. I certainly didn’t have a bad experience when interviewing at Google and Facebook. One question were not very concrete, but it was interesting to walk through and solve. I didn’t just “know” th…

You give me hope.
Post reply on HN