Live data from Hacker News

Google Tech Dev Guide

techdevguide.withgoogle.com

241–250 of 250 posts

Re: Google Tech Dev Guide

#241

Earlier quoted context omitted.

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 prob…

Yeah the statistics and machine learning applications are a bit hard to get away from. But I would still replace the calculus sequence with discrete math, assuming the number of math credits had to stay the same. At my school (University of Maryland, College Park) most CS majors just took calculus 1-3, statistics, and one basic discrete math course from the computer science department. The size of calculus seems massive (3/5 of the total math load) compared to the benefit. That precious time could be spent digging deep into linear algebra or combinatorics or graph theory etc, and that's useful for all developers who write algorithms, not just in specific applications' niches.

Re: Google Tech Dev Guide

#242

Earlier quoted context omitted.

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 prob…

Yeah the statistics and machine learning applications are a bit hard to get away from. But I would still replace the calculus sequence with discrete math, assuming the number of math credits had to stay the same. At my school (University of Maryland, College Park) most CS majors just took calculus 1-3, statistics, and one basic discrete math course from the computer science department. The size of calculus seems mass…

Why do you think they are mutually exclusive? Generating functions, geometric series, difference equations, integrals over discrete probability distributions, elliptic curve cryptography, general linear programming and optimization, eigenvalue analysis in graph theory, stochastic optimization, all these things involve calculus to solve discrete algorithmic questions.

In fact I’d argue it makes calculus more important than what is typically understood as “discrete math” because in order to have the mathematical maturity to really understand the meaning of major discrete math results and theorems, it requires understanding calculus first.

If you “just” study discrete math mistakenly believing “that’s where the value is” then you’d end up with a shallow understanding of discrete math, lacking ability to extract value from it except in some narrow sense from rote discrete math application-specific coursework.

Re: Google Tech Dev Guide

#243

Earlier quoted context omitted.

Seems like a pretty normal algorithms problem to me. Anyone that's taken a CS curriculum has done plenty of them.

Yes, and that's just about the only time they'll do them. That's the problem.

The point is that simple exercises like that develop your algorithmic and computational thinking. You can't start out building an ecommerce site, you have to learn to program first. It's like... Karate Kid "paint the fence", it wasn't because Daniel's martial arts career was going to involve fence painting, heh. But because it developed certain skills.

It would be a problem, I guess, if people found it so boring that it deterred them from learning (I don't know what the Karate Kid analogy here is; I think miyagi MEANT to make Daniel do something boring to prove himself, which is probably not appropriate for learning to program), then more interesting exercises might be beneficial. Everyone learns differently, but when I was learning, I found exercises like that fun myself. Because I enjoyed programming, the same way some people enjoy crossword puzzles (I don't). Of course it was a long time ago, perhaps "kids these days" require more flashier puzzles, I don't know.

I'm a better programmer for having taken a 'compilers' course, but I've never written a compiler since and probably never will again (but who knows).

There's a reason "foundations of programming" are foundations. It's not because you will do those tasks again in your career. But because they will teach you concepts and methods and skills you will use forever.

Re: Google Tech Dev Guide

#244

Earlier quoted context omitted.

(Disclaimer: I work at Google). This is going to sound like a humble-brag, but it isn't, I'm trying to give some life advice based on my experience: I have used "CS" algorithmic thinking on multiple projects, I've even used facets of abstract algebra and number theory from my Math degree to further my career and it lifted me out of poverty. Here's an example. A few years ago, I was researching ways to crunch down the…

>There's nothing wrong with straightforwardly engineered apps, screens, forms, databases. Most of the world subsists on this. Most of Google subsists on this. Interviewing everyone for skills that only come up when you are pushing the boundaries of CS is pointless. 99% of engineers at Google fling protos and do menial translations on them. Have a separate "CS" group if you want and apply the CS questions to them. For…

This is a "Google Tech Dev Guide: Grow Your Technical Skills…", not a "how to interview" guide. Particularly a "foundations of programming" section, in this case.

I don't know if it's a good interview question or not, but that doesn't mean it's not part of learning programming.

There's more to learning to program than learning to do well in interviews, just like there's more to learning in general than doing well on standardized tests.

I think it's odd that so many immediately jumped to discussing the _interview process_. Google's, or anyone's, interview process may or may not be effective at finding talent or being fair. (I have no particular opinion on Google's, but there's LOTS written on the difficulty of creating a successful interview process for programmers, and various different opinions and approaches).

But why do we in this discussion seem to assume the only point of this Google site is helping people _pass interviews_? It doesn't say that's what it's for at all.

I think it's actually a pretty marvelous free site for learning CS and programming of various sorts, for people of various levels and domains.

Re: Google Tech Dev Guide

#245

Earlier quoted context omitted.

(Disclaimer: I work at Google). This is going to sound like a humble-brag, but it isn't, I'm trying to give some life advice based on my experience: I have used "CS" algorithmic thinking on multiple projects, I've even used facets of abstract algebra and number theory from my Math degree to further my career and it lifted me out of poverty. Here's an example. A few years ago, I was researching ways to crunch down the…

I agree with most of your post, except for: >But IMHO there's no harm in being challenged like this anymore than being asked to complete basic training to be in the military, even though you might just be a tech-support soldier. I would agree if the big companies making the demands on these candidates assumed the burden of training. You don't have to spend $60k for a degree, spend hundreds of hours grinding leetcode,…

It's just another example of how CS (Read: Silicon Valley) culture is geared entirely towards the 20 - 30 year old male with no family or time commitments. Willing and able to spend hundreds of hours grinding leetcode and a portfolio of side projects.

Their culture problems that have become publicized of late are a knock on effect of this. It definitely establishes the fundamentals and makes you "better" than the rest (to a point), but at a terrible cost.

Re: Google Tech Dev Guide

#246

I checked out the "cloud infrastructure" section and there's no challenge questions or code snippets. It's less of a "Tech Dev Guide" and more of a "Here Are Some Bookmarks I Found, Check Off The Ones You Read" . It's not a terrible idea, but more of a suggested reading list than a "guide". There's at least 10 years of such articles and videos piled up on the internet. Going through them all will take a long time, an…

This sounds like a community Wikipedia – keep me updated though!

Re: Google Tech Dev Guide

#247

Earlier quoted context omitted.

> Family obligations do not help. You've put your finger on it right there. These type of interview questions are biased toward candidates with plenty of free time and few obligations. This effectively has ageist, sexist, and classist[0] consequences. [0] Racist as well, to the extent (which is considerable) that class is entagled with race.

yes anything that requires competence has those consequences. you could say the same for not learning anything.

> anything that requires competence has those consequences.

Not true. Are you in the "prioritizing diversity means lowering our hiring standards" camp?

Re: Google Tech Dev Guide

#248

Earlier quoted context omitted.

yes anything that requires competence has those consequences. you could say the same for not learning anything.

> anything that requires competence has those consequences. Not true. Are you in the "prioritizing diversity means lowering our hiring standards" camp?

[deleted]

Re: Google Tech Dev Guide

#249

Earlier quoted context omitted.

> Family obligations do not help. You've put your finger on it right there. These type of interview questions are biased toward candidates with plenty of free time and few obligations. This effectively has ageist, sexist, and classist[0] consequences. [0] Racist as well, to the extent (which is considerable) that class is entagled with race.

yes anything that requires competence has those consequences. you could say the same for not learning anything.

That inevitably seems somehow biased (I'm trying not to use a worse word) at its root. Hiring non-white non-men does not lead, inevitably, to worse hires. To imagine so is to paint entire demographics as inferior?

Re: Google Tech Dev Guide

#250
post #231

Earlier quoted context omitted.

> 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.

Of course knowledge of algorithms is useful.

I was pointing out that a specific correlation you mentioned wasn't particularly robust, and certainly didn't amount to the causation you were implying.

Perhaps I should have made my point more explicit by noting the existence of counterexamples - engineers that design and implement good APIs without any particular knowledge of CS or the implementation of sorting algorithms.

You actually are conceding my point when you admit that knowledge of algorithms isn't even necessary.

Post reply on HN