Live data from Hacker News

A Competitive Programmer's Handbook

cses.fi

91–100 of 171 posts

Re: A Competitive Programmer's Handbook

#91

Positive correlation between Competitive Programmer’s Handbook and software engineer interviews? Yes. Positive correlation between being a strong competitive programmer and a strong software engineer? Doubtful.

Not doubtful at all. You can expect a positive correlation between being an good driver and a good software engineer. Definitely some random person with the CS fundamentals, coding fluency, and creative problem solving ability to be good at competitive programming is more likely to be good at software engineering than some random developer. You're basically saying, high intelligence isn't correlated with being a strong software engineer. Or maybe you think people doing competitive programming are damaged. This is nuts.

Re: A Competitive Programmer's Handbook

#93
post #87
post #86

Earlier quoted context omitted.

Agreed. These kinds of competitions or coding interviews may cause over-fitting.

Is there really risk in being particularly adept at algorithm design?

The risk is that you might be less useful than someone who is particularly adept at system design.

It seems most problems are actually not sorting, searching, or finding the optimal whatever. Maybe it's just the bubble I work in, but from my perspective it seems that most programmers aren't addressing a problem of the form, "the obvious solution to this well-defined problem is too slow, please have a clever insight that leads to a faster one."

The problems we work on are instead of the form, "please model this sprawling and subtle domain with reasonable fidelity and in a way that'll handle future changes to the domain."

"Please satisfy these five dozen individually trivial requirements in a way that gets every corner-case interaction exactly right, and won't turn into a nightmare when there are a dozen more next quarter."

"Please decompose this problem in such a way that 10 different people can work on it in separate parts of the codebase in parallel."

"Please take this problem that's solved for one machine and make it work over an arbitrary number of machines, and make it reliable under all the weird and abusive scenarios that a few years of usage in production can manage to throw at you."

"Please design a monitoring and dashboarding strategy that will identify all outages immediately while not overwhelming the oncall with false alarms, and provide first-class instrumentation, debugging, and remediation tools so that someone new to the codebase can find out exactly what went wrong and fix it in the middle of the night.

It's not at all uncommon to deliberately ignore the optimal algorithm in favor of the readable algorithm. We usually try to keep cleverness behind the curtain of abstraction (RDBMS, standard library, etc). Of course, someone has to build them, but then they are widely reusable.

Of course, people who can do all of the above while interacting fluently with the code for the optimal algorithm are so incredibly highly paid in the Bay Area that they can buy houses.

Re: A Competitive Programmer's Handbook

#94

Positive correlation between Competitive Programmer’s Handbook and software engineer interviews? Yes. Positive correlation between being a strong competitive programmer and a strong software engineer? Doubtful.

Not doubtful at all. You can expect a positive correlation between being an good driver and a good software engineer. Definitely some random person with the CS fundamentals, coding fluency, and creative problem solving ability to be good at competitive programming is more likely to be good at software engineering than some random developer. You're basically saying, high intelligence isn't correlated with being a stro…

>> Or maybe you think people doing competitive programming are damaged. This is nuts.

I don't see how that is implied by GP's comment. It is one thing to read between the lines, but now you are reading between the characters.

Re: A Competitive Programmer's Handbook

#95

Positive correlation between Competitive Programmer’s Handbook and software engineer interviews? Yes. Positive correlation between being a strong competitive programmer and a strong software engineer? Doubtful.

Maybe not, but just skimming through the topics looks like there is a lot of overlap between competitive programming and popular job interview questions.

Re: A Competitive Programmer's Handbook

#96
post #6

There is also https://e-maxx-eng.appspot.com/ (translated from russian, original: https://e-maxx.ru/algo/ )

This is a great 'advanced' resource! I've been reading the google translate version of the Russian page. Really nice to have a real translation!

Re: A Competitive Programmer's Handbook

#97

Positive correlation between Competitive Programmer’s Handbook and software engineer interviews? Yes. Positive correlation between being a strong competitive programmer and a strong software engineer? Doubtful.

You have a very weak understanding of what the word 'correlation' means.

Re: A Competitive Programmer's Handbook

#98

Positive correlation between Competitive Programmer’s Handbook and software engineer interviews? Yes. Positive correlation between being a strong competitive programmer and a strong software engineer? Doubtful.

Being good at programming competitions correlates negatively with being good on the job - Peter Norvig

http://www.catonmat.net/blog/programming-competitions-work-p...

Re: A Competitive Programmer's Handbook

#99
post #90

Positive correlation between Competitive Programmer’s Handbook and software engineer interviews? Yes. Positive correlation between being a strong competitive programmer and a strong software engineer? Doubtful.

I'm pretty sure there is a positive correlation, just because people who tend to be good at competitions usually do them because they like computer science in general, so they learn other stuff too (and they are likely smart). And this is also a reason why this side is tested so much in interviews - it is easy to test and the result is somewhat significant. Now, most good software engineers would probably not be very…

It sounds like it may have been awhile since you've interviewed. The modern "good" interview is all data structure and algorithm white boarding nonsense. For me, who is not a competitive programmer, the standard interview prep is spending a couple of hours on Hacker Rank every day and making sure I can delete a node in a binary tree on a white board without so much a missing semicolon. For some reason that signals "good developer" more than a catalog of work on github, big name companies, or experience in general.

Re: A Competitive Programmer's Handbook

#100
post #90

Earlier quoted context omitted.

I'm pretty sure there is a positive correlation, just because people who tend to be good at competitions usually do them because they like computer science in general, so they learn other stuff too (and they are likely smart). And this is also a reason why this side is tested so much in interviews - it is easy to test and the result is somewhat significant. Now, most good software engineers would probably not be very…

It sounds like it may have been awhile since you've interviewed. The modern "good" interview is all data structure and algorithm white boarding nonsense. For me, who is not a competitive programmer, the standard interview prep is spending a couple of hours on Hacker Rank every day and making sure I can delete a node in a binary tree on a white board without so much a missing semicolon. For some reason that signals "g…

From my experience i'd rather work with programmers with strong CS skills. They put out better code
Post reply on HN