My Competitive Programming Journey
From writing C# apps in Class 6 to becoming a multiple-time intra-university programming champion and reaching Codeforces Blue rank, this is my competitive programming story, the lessons I learned, and why I still believe problem-solving is the foundation every software engineer needs, even in the age of AI.
I started coding when I was in Class 6, building small applications in C#. That early spark was what led me to pursue Computer Science and Engineering for my undergraduate degree.
At the start of university, I had no idea competitive programming even existed. A few days into my first semester, seniors introduced me to it, though I didn't take it seriously until the end of that semester.
Throughout my competitive programming journey, my strongest ground was the Intra-University Programming Contest at Ahsanullah University of Science and Technology (AUST). In semesters 1 and 2, I was the champion in the Junior category. In semester 3, I placed 3rd overall. From that point on, I was the champion in every subsequent semester, often without any real competition. Worth noting: it was a team contest requiring 3 members, but I frequently competed alongside teammates who weren't strong problem solvers. That was just the reality.
One of my stronger suits was Dynamic Programming (DP). I remember one particular intra-AUST contest where I started solving DP problems at a noticeably fast pace early on. The other contestants assumed those must be the easy or giveaway problems, so they all rushed to attempt them too. It turned out to be a costly mistake for most of them.
That moment also taught me something about myself. Back then, my instinct was to dive in fast and figure out a solution on the fly. Looking back, I should have slowed down, thought more carefully before attempting, and spent that saved mental energy on the harder problems. If I had developed that habit earlier, I think I could have solved significantly more difficult problems in contests.
Inter-university contests like ICPC and IUPC were a different story. The core problem at AUST was that very few students were willing to dedicate serious time and energy to competitive programming. As a result, I could never assemble a genuinely strong team, and that lack of strong partners became one of the reasons my motivation gradually faded in the later years of my degree. Our best result in an IUPC was 11th place, at BUP, and I'm proud of that, given the circumstances.
One of my biggest individual achievements was reaching Blue rank on Codeforces within just one year of starting my journey. Across my problem-solving journey, I solved more than 5,000 problems on various online judges, including 1,000+ problems on the UVA Online Judge alone.
Looking back, it was one of the most meaningful chapters of my life. I genuinely loved every part of it: the problem-solving, the travel to contests across the country, meeting incredibly smart people from different universities, and the bonds I built with seniors, juniors, and batchmates at AUST.
Beyond the contests themselves, competitive programming gave me something that has stayed with me ever since: a deeply ingrained problem-solving mindset. Today, I can build software with proper optimization almost intuitively. I can design database architectures with query optimization and edge cases accounted for from the start. In interviews, I can clear the problem-solving rounds without any dedicated prep. Alhamdulillah.
There's a common opinion going around today that in the age of AI, problem-solving skills are no longer necessary. I completely disagree.
From my experience, competitive programming and problem-solving build the core foundation of a software engineer. AI can write code, but it cannot replace the engineering judgment that tells you why a solution works, where it will break, and how to optimize it properly. That judgment comes from years of thinking through hard problems. Without that foundation, you're just prompting a tool you don't fully understand.
Even after all these years, I still miss it. I solve problems occasionally when I get the time, but participating in actual contests has become difficult at this stage of my career. One day, perhaps.