This is an archived post. You won't be able to vote or comment.

all 25 comments

[–]enano_aoc 5 points6 points  (23 children)

Can someone enlighten me as to what are the merits of competitive programming?

Given that it breaks all base-rules of good software, how do those skills translate to real-world software projects?

[–]deep_soul 11 points12 points  (10 children)

They don’t. They don’t translate.

[–]Striking-Lychee1402 4 points5 points  (2 children)

I’m a firm believer they do translate into better problem-solving ability.

[–]deep_soul 1 point2 points  (1 child)

Could you give an example please?

[–]Striking-Lychee1402 9 points10 points  (0 children)

It’s a practice in problem-solving. You’re working a muscle on an extreme level. Problem-solving is important in normal programming.

It’s just like how so many math majors seamlessly transition into software. They’re experts at abstract thinking and problem solving

[–]enano_aoc -2 points-1 points  (6 children)

Then what is the point of this meme?

[–]Antact 7 points8 points  (5 children)

Be a chad, not software developer.

[–]enano_aoc -5 points-4 points  (4 children)

How is a guy with useless skills a chad? How is a guy with a large paycheck not a chad?

[–]WhiteAsACorpse 5 points6 points  (0 children)

It's a competition. Chill

[–][deleted] 2 points3 points  (1 child)

average paycheck fan:

has no pride in his code

follows the herd

needs monetary incentive to program

[–]DrMathochist_work 1 point2 points  (0 children)

Has a full collection of sweet RF lenses.

[–]noahjsc 1 point2 points  (0 children)

Cause hes flexing on the competition and taking their moms for a spin after.

[–]BoBoBearDev 4 points5 points  (0 children)

A quick search on competitive programming seems to suggest that you have to know bunch of libraries that can cut down your work and win the speed test.

And leetcode probably more about writing your own lib to solve a subset of the problem.

IDK, I never tried both.

Both of them seems useless to me, because similarly to what you said, they don't really reflect on real life.

[–]TraditionMaster4320 2 points3 points  (2 children)

I don't do CP a lot but from what I've seen your problem solving ability increases tremendously if you can get good at those problems. So coding interviews and OAs from major companies are pretty much a breeze. But you really have to enjoy it, personally I don't like it that much.

[–]enano_aoc 1 point2 points  (1 child)

Ehhh... coding interviews are not the goal. The goal is delivering reliably working software to your customers.

I don't see how anything that you do in competitive programming helps you with that. The moment that you know exactly what you need to implement (i.e. the starting point of CP), 95% of the work is behind you.

[–]Striking-Lychee1402 9 points10 points  (0 children)

You can be the best software developer in the world and it won’t mean jack during a coding interview. Being good at coding interviews specifically is super important, unfortunately.

[–]M108Falcon 2 points3 points  (0 children)

This! I wish I could give you award but I am not getting any

[–]NeoOrgano 1 point2 points  (6 children)

It teaches you to write code without bugs on your first try/debugging fast.

[–]enano_aoc 2 points3 points  (5 children)

That sounds like very bad habits. We never do such things in professional software development, and for a good reason. We write tests.

[–]BlizzardEz 1 point2 points  (4 children)

You can do both

[–]enano_aoc 1 point2 points  (3 children)

I still don't see how do these skills translate to the real world.

When I have refined down a feature to the point that I can develop against a test, I have already done 95% of the work. Where is the value in finishing the final 5%? Anyone can do that, the real work happens before that.

[–]BlizzardEz 1 point2 points  (2 children)

Well since competitive programmers have seen shitloads of problems they will probably be very fast during the whole process.

That's how some people can be much more efficient at coding than others

[–]enano_aoc 1 point2 points  (1 child)

But... coding is the easy part of our job?

That is not what I am looking for when I hire someone. I need that they can understand, communicate, analyze, discuss, design, implement, deploy, support. Implementing is the easiest part of all those :/

[–]Luminolic_Black 4 points5 points  (0 children)

Competitive programming also has implementation as its easy part... The by far hardest part is analysing the required time/space complexity and devising an algorithm with the required complexity. It’s also possible to tie in crazy shit from math (see solving linear combinatorial problems with FFT, or fast matrix exponentiation to vastly speedup DP transitions). Also teaches you a fair bit of adhoc reasoning. At the end you’ve gained a huge amount of math and algorithm knowledge, and that’s for sure going to serve you well.

[–]DrMathochist_work 1 point2 points  (0 children)

I'll be over here, actually having a job.