Hi everyone, Ashish here!
Today’s article features a special guest Alberto Gonzalez, a competitive programmer and a 2-Time ICPC Finalist.
In this article, Alberto will share his insights on improving your problem-solving skills and preparing for coding interviews.
Ever felt like coding interviews are designed to make you question your entire career?
You’re not alone.
As someone who’s been under the spotlight at the ICPC World Finals—not once but twice—I know what it’s like to face impossible-seeming challenges.
Competitive programming taught me how to tackle problems systematically, handle pressure, and, most importantly, keep going when things felt impossible.
But here’s the thing: you don’t need an ICPC title to crush your coding interviews.
You just need a focused plan, a bit of grit, and the right mindset.
Let me show you how.
1. You Need to Lay the Right Foundation
Coding interviews aren’t just about algorithms—they’re about confidence.
Yet one of the biggest fears is walking in and realizing you’re not prepared for the basics.
The solution? Master these core areas:
Arrays and Strings
Linked Lists
Hash Tables
Trees and Graphs
Dynamic Programming
💡 Action Tip: Focus on one topic at a time. Consistency over cramming—it works.
I remember spending hours on my first binary tree problem, convinced I’d never get it.
But once I learned to break the problem down step by step, the complexity melted away.
The key is patience.
2. Then, You Need to Start Recognizing Patterns
Ever feel like you’ve solved hundreds of problems but still get stuck?
It’s not about solving more—it’s about solving smarter.
Coding problems often follow predictable patterns.
When you recognize the underlying structure, the solution becomes much simpler.
Here are a few patterns worth mastering:
Two Pointers: Ideal for sorted arrays.
Sliding Window: For substring or interval problems.
Binary Search: For efficiently finding an element in a sorted list.
Prefix Sum: To answer range sum queries in constant time.
Monotonic Stack: For finding the next/previous greater or smaller element.
Backtracking: For exploring all possible configurations.
💡 Action Tip: Pick a pattern and dive deep. Solve 5–10 problems for each, focusing on understanding why the pattern works.
Think of patterns like shortcuts on a map—they get you to the solution faster, with fewer dead ends.
3. At Some Point, You Need to Simulate the Real Deal
Here’s the fear no one talks about: freezing during an interview.
You know the material, but when it’s time to perform, your brain says, “Nope.”
I’ve been there.
My first ICPC regional?
Sweaty palms, a simple BFS problem, and 20 minutes of staring at the screen like it was written in ancient Greek.
The fix?
Practice under pressure.
Recreate interview conditions so the real thing feels like just another session.
Set a timer and work on a problem without syntax hints.
Use a whiteboard or plain text editor—no IDE crutches.
Practice explaining your thought process out loud.
💡 Action Tip: Schedule a mock interview with a peer or use an online platform.
It’s awkward at first, but it’s the fastest way to build confidence.
4. If You Don’t Have Much Time, You Need to Focus on High-Impact Topics
Not all topics are prioritized equally.
Spending hours on niche problems might feel productive, but it won’t help when interviewers hit you with the classics.
Here’s where to focus:
Arrays and Strings: Search and Sorting algorithms, two pointers.
Linked Lists: Reversal, cycle detection, and partitioning.
Trees: Binary trees, binary search trees, and traversals.
Graphs: DFS, BFS, topological sorting, and shortest path algorithms.
Backtracking: Permutations, combinations, Sudoku solver, and N-Queens problem.
Heaps/Priority Queues: Top-K elements, and merging K sorted lists.
Tries: Word search, autocomplete, and prefix matching.
Dynamic Programming: Problems like Knapsack or Longest Common Subsequence.
💡 Action Tip: Track your progress on high-yield topics using tools like Notion or Trello.
Seeing your wins pile up is a great motivator.
The goal isn’t to know everything—it’s to be a pro at what matters most.
5. If You Want to be an Engineer, You Need to Communicate Like an Engineer
Coding interviews aren’t just about solving problems—they’re about showing how you solve problems.
Clear communication sets you apart.
Here’s a simple process:
Clarify the problem: Restate it to show you understand.
Plan your approach: Share your strategy before you start coding.
Narrate as you code: Explain your logic, handle edge cases, and think aloud.
💡 Action Tip: Record yourself solving a problem.
Play it back to catch moments where you over-complicate or skip explanations.
Interviewers don’t expect perfection—they expect clarity and problem-solving skills.
6. And Finally, You Need to Build Resilience
Let’s talk about failure.
It’s not if—it’s when. But every mistake is a step closer to mastery.
During my ICPC journey, I submitted hundreds of wrong answers.
Some were silly oversights; others were genuinely tough problems.
But every “wrong answer” was a chance to learn something new.
💡 Action Tip: Keep a failure journal.
Write down problems you struggled with, what you learned, and how you’ll tackle similar issues in the future.
Failure isn’t the end; it’s the beginning of better solutions.
Make Your Move Today
Here are a few resources I personally used to improve at problem-solving:
Weekly contests.
Thousands of problems.
Section for training as a team.
Educational section to learn new topics.
Highly engaged community and blogs where people go beyond the basics.
Weekly contests.
Slightly advanced topics.
The most beautiful algorithmic problems you will ever see.
Tech interview-specific.
Curated problem lists like Top Interview 150.
If you’ve ever doubted your ability to land that dream job, let me be the proof: persistence, focus, and the right system can transform everything.
And leveraging your competitive advantage will change your life—more on that in this post:
Your dream job isn’t just about a bigger paycheck. It’s about proving to yourself that you belong.
Let’s turn those hidden fears into unstoppable momentum.
You’ve got this.
Thank you for reading!
If you found it valuable, hit a like ❤️ and consider subscribing for more such content every week.
If you have any questions or suggestions, leave a comment.
If you want to get more value out of this newsletter or just want to support my work, consider becoming a paid subscriber.
As a paid subscriber, you get an exclusive deep dive every week along with other premium benefits.
There are group discounts, gift options, and referral bonuses available.
Checkout my Youtube channel for more in-depth content.
Follow me on LinkedIn, X and Medium to stay updated.
Checkout my GitHub repositories for free interview preparation resources.
I hope you have a lovely day!
See you soon,
Ashish
Let’s turn those hidden fears into unstoppable momentum!! Amazing stuff!
“Your dream job isn’t just about a bigger paycheck. It’s about proving to yourself that you belong.”
A perfect end to a wonderful piece.