When starting my career as a software engineer, I felt overwhelmed by the algorithms, I didn't even know what is Big O. Knowing it will take lots of time to learn it, I try to avoid it.
But after spending a year to get myself familiar with Javascript, I know it's unavoidable to learn algorithms since it's the foundation of computer science, not specific to any programming language, which means once I learned the concept, I don't have to start over again when switching to a programming language in the future, which is very likely since I decide to code for my entire life.
Another good reason to learn algorithms is it helps me to identify the pattern of the problem, so I can choose the correct method to translate my pseudocode to actual algorithms that the computer can understand.
It's what a good software engineer should know and be familiar with. so slowly, when I have time, I practice the problems found on Leetcode, starting from the easy ones, after trying for about the first ten problems, the frustration that I accumulated is almost unbearable, an easy problem can take more than one hour, or even two hours to get a working solution.
It must have a better way to approach it, I told myself at that time, then, the next day, I start taking the algorithm class found on Udemy. It's compact, contain the essential knowledge to get myself familiar with data structures and common sorting algorithms, with that knowledge in my head, once again, I try to approach problems found on Leetcode, although it still takes lots of time to go through the first 130 questions on Leetcode, the frustration is not that high as before, it's a big step to me.
Then, another year passed, I think it's time to prepare myself for a senior role, so again, I revisit Leetcode, looking for problems I haven't seen before, or unable to write a solution on the first try.
When facing those new ones, I notice there are more patterns that I haven't encountered before. There must be some strategy for approaching these algorithms problems, I told myself.
When I post my frustration on these hard leetcode problems, a friend whispers to me, that he has been on the same road too, and sharing a very thorough curriculum focus on algorithms, super expensive, super extensive. After around two weeks into this class, I believe this is what I'm looking for, a great material for those who want to go deeper and in a systematic way, this is my fast-track into a strong foundation of algorithms.
Thanks, Hank!