Hacker News new | ask | show | jobs
by iainmerrick 3159 days ago
they care about your fluency with maths and algorithms

"Maths" is a red herring -- a physics PhD who's still active in academia will definitely be very fluent in maths.

It's all about "algorithms", but I think a lot of software people have tunnel vision about that. There's a lot of fancy terminology you pick up in a CS degree; requiring people to know that filters out a lot of potentially good candidates, unless they've studied CS in their own time.

That's fine if the special CS terminology is absolutely essential for all programmers. But is it really? Realistically, 90% or more of your time as a programmer is spent working on other stuff (automation, testing, designing friendly APIs, catching sneaky bugs, scripting, just generally plumbing stuff together). If you're on a team, does every single team member need to have a great understanding of data structures? Or is it just nice-to-have, specialized knowledge?

1 comments

> That's fine if the special CS terminology is absolutely essential for all programmers. But is it really?

I'd argue that it matters more for Google more than most employers. The combo of their scale, combined with their large amount of custom infrastructure, combined with their desire to be able to retask engineers on a whim, means that individual engineers will have pretty good chance of touching code where the choice of Big O could make or break a product.

Mayyybe, I'm not so sure but you could be right. [Edit to add: even at Google, most programmers are not doing that kind of stuff most of the time.]

On the flip side, though, I think many programmers (even programmers who are up to date on their CS) are fairly weak at mathematics. We think we're good because we can, you know, invert a binary tree, but how about figuring out an appropriate filter to smooth some data, or verifying that some randomized process is unbiased?

For something like digital filters, if you have basic knowledge you can just look up wikipedia for the details. But the same applies to data structures and big-O!

A lot of companies (including Google) can benefit strongly from people with good maths or stats skills. Do those people also need to be strong in CS? Or if not, do they need to be siloed into a separate hiring process, and placed in separate departments?

I reckon CS, maths, stats and other specialized academic training should all be treated as nice-to-have skills, of varying importance depending on the team balance and project requirements.