why I am a big Leetcode challenges and code katas fan?

Friday February 17th 2023 by SocraticDev

Leetcode is a web platform that prepares programmers for big tech companies technical interview process. It schools programmers about computer science fundamentals: data structures, algorithms, system design, etc.

Every challenge comports an educational goal, a difficulty degree, and sometimes a performance requirement.

In my opinion, discussion threads about challenges are gold. Everyone completing a challenge has the opportunity to compare their solutions with peers from all corners of the planet.

because it's quick and fun

I consume these challenges as a fun activity to do within a bounded time frame. Instead of staring at my phone for 20 minutes straight or stuffing my face with lime pie, I pick a challenge up and go thru it.

There is something satisfying to me in solving challenges; giving my brain something to exert itself over.

because it's NOT something linked to day-to-day work

Practicing developers may underline that these challenges are nothing like their day-to-day work requirements.

Most of my workdays are about designing and building systems. Squashing bugs and making those systems more reliable and easier to work with.

At the end of some days, I feel like not having been challenged enough. Adopting a routine of solving Leetcode or code katas challenges not only soothes this unpleasant feeling but also makes me a better professional. By being professional I mean that my first goal is adding value to the business and customers I'm serving. Not all work related activites are directly rewarding to me. Because it's not supposed to be about me!

At the end of the day, whenever I feel like I could use a brain teasing challenge I haven't gotten during work hours, I fire up Leetcode or another coding platform and have a go at it.

keeping me creative and putting forward my shortcomings

At some point in a career one finds their comfort zone. An area of expertise where they are insanely good at.

At some point, I was like fish in water building and improving web apps. At another, I could not have been happier writing Terraform code (infrastructure-as-code domain-specific language) provisionning and configuring cloud resources.

Feeling competent at work is a great feeling!

What about feeling incompetent?

Learning platforms are a safe space for this. Putting you to your place; harshly showing you that you suck at solving problems; that you are not the best person at leveraging data structures and algorithms.

We all know folks that are great at their job. However, they sometimes suffer from this nasty shortcoming: being great at one thing can easily swerve into being overconfident in other topics that they actually don't master at all.

Growing as a human requires a fair amount of self-knowledge, humility, and stamina.

sweet coding resources

https://leetcode.com/ - "LeetCode is one of the most well-known online judge platforms that you can use to practice your programming skills by solving coding questions"

https://blog.avenuecode.com/object-calisthenics-principles-for-better-object-oriented-code- "Object Calisthenics were first introduced by Jeff Bay in The ThoughtWorks Anthology, a compilation of essays on software engineering"

http://codekata.com/ - "A code kata is a software development exercise in which the focus is not on solving a task or problem, but on learning new skills and developing successful routines."