The obvious - Why?

Competitive programming is probably the most important skill you can learn as a software engineer. Here in Australia, being able to “Leetcode” fluently approximately doubles your pay. It might not be that important during a good job market or if you’re lucky, but realistically that’s a small group of people that run into those. For most people, it’s the difference between affording to live on your own and building up for a house deposit in a reasonable timeline compared to feeling stuck in a seemingly fraudulent company or being doomed to manual testing.

Sadly for us in 2024, if you’re a graduate student or got unlucky, and ask people in target companies for advice, they’ll hit you with a bit of, “What’s even hard about it? I didn’t even know Leetcode existed when I applied”. Which then feels awful, because you’ll apply to anything and be slammed with a big bat with barbed wire wrapped around it and the label “imposter syndrome” written across it.

There are a handful of more student groups popping up in Australia now that getting a software engineering job is more competitive - RSP, Ravi’s Study Program, which is mostly in Adelaide is huge in Australia now. Before them, almost all of these leetcode-ish jobs were being ripped away by UNSW graduates or lucky people from other universities. Now we have some people from Adelaide that get into places as well.

I’m personally quite tired of doing leetcode. I’ve done so much leetcode with so little reward that I really started questioning what’s the point. I got interview invites, did the technical, then didn’t get a call back. I usually suspected this to be due to:

A) I made a blunder

B) the job isn’t even real

C) they already hired someone

D) there’s someone with more relevant experience than me

E) the interviewer just disliked me

Which I suspect it was usually case D. I talked to people that had big-tech roles on their resume already, and they would describe stories of them doing worse than me, but they get through and accepted. When they described their interview experiences, it would seem like >90% of cases they get an offer. Which was quite depressing. Nowadays, I’m at a big-tech company, not really for the pay but to remedy my resume so that isn’t possible anymore.

What to do if you’re new

If you’re brand new to leetcoding and heard it makes big money, don’t bother reading my posts. I’ll give you all you need to do. Do NOT wait until you’ve done your data structures and algorithms courses at university. Just start now.

If you genuinely want to get good at leetcode or competitive programming, to the point of applying to the US or trading firms, do grind75 (strictly only 75), then do cses, be sure to read their book pdf, and then do 20 mock interviews. If you want to get into big tech companies in the Oceanic region, go do grind169, and then do 20 mock interviews. If you’re still in university, I highly recommend trying to get into Ravi’s Study Program.

Goals here

I’m already used to the playground. I could keep on maintaining this skill by doing it for 15mins a day and do a contest on the weekend, but that’s sort of boring to me. I also don’t know how I feel about investing a serious amount of time at the moment into this, but I still want to improve.

I’m actually not that good. As a matter of fact, my ELO should be significantly better.

Just doing contests is useful, but not really a way to learn. There’s a lot of content from cp-algos that I haven’t learned yet. Following this is my writings whenever I encounter a problem while doing CSES with a topic that I haven’t fully learned.