( click image to enlarge )
Project: Competitive Programming
Having written tens of thousands of lines of codes over my lifetime, I’m slightly embarrassed to admit that circumstance has allowed me to “get the job done” without needing to focus on writing highly performant code. I also haven't been forced to develop a deep understanding of complex data structures and algorithms. I’m sure this is largely due to the fact that, in my day job, I typically only find myself writing code for automating IT operations-related processes, such as zero-touch accounts and hardware provisioning scripts, reports generation scripts, and other miscellaneous batch processes. Much of this work boils down to doing a single full pass of a CSV file that contains usually no more than 20,000 rows. It's an incredibly forgiving environment to write code in.
That said, a few months ago, I decided that I needed to make a conscious effort to get better at programming. I quickly discovered that one popular route to improve was to grind competitive programming problems on the website “Leetcode”. So far, I’ve managed to complete close to 100 easy problems and a handful of medium problems. Finding that I was taking longer than I would like to solve the medium problems (I’m very stubborn, I’ll stare at the screen for hours until I get it), I decided to look for better options.
A few Google searches later, I found a website called “Structy”, an online data structures and
algorithms programming course designed to help programmers get better at the hard stuff. So far, I’m
half way through the course. This is an amazing resource! I would highly recommend it to anyone else
who is interested in getting better at programming. I look forward to continuing to use it as a tool
to improve. My goal is to finish the course in the next month or two and then switch back to grinding
medium and hard problems on Leetcode. By then, I should be equipped with the tools needed to crack
the harder problems faster.
- James