I look for the following things when looking at any platform like AlgoExpert
- Curation and Quality of questions: The only reason I would purchase something like AlgoExpert is for the curation of questions which allows me to focus on doing the questions and not worry about what to work on next.
- Quality of Solutions: Solutions should include code and explanations, the code should be easy to read and the explanation should be simple and easy to understand.
- Coding Environment: I am going to spend a lot of time working on the questions on the platform, so to me it is important that I enjoy looking at and working in the environment the platform provides.
Curation and Quality of Questions
AlgoExpert covers a wide variety of topics and have a good number of questions on important topics like dynamic programming, trees, and graphs.
I have done most of the easy and mediums and some of the hards. I would say the easy questions were not as trivial as I thought they would be(which is good), for example I had to look at the hints for the question
Non-Constructible Change. Rest of the difficulties are as you would expect them to be. Almost half of the questions fall in the medium difficulty, which is where most of the people would want to spend most of their time because once you get confident in solving mediums you have enough knowledge to start tackling hard questions.
Overall I think they they have a good curation and a good total number of questions, 155 at the time of writing and I think they will keep adding more since they have new hires to help them with this.
Quality of Solutions
I found the solutions to be clean and easy to understand. They use descriptive variable names and logical helper functions which makes their solution code easy to read and understand.
Solution videos are also good although I prefer to consume coding content in text since its easier for me to go back and re-read or pause on something I might not understand. More often than not I prefer reading the solutions over watching video solutions(which are also good by the way).
Which brings me to the next point, they provide multiple solutions to most of the questions, which is quite helpful because you can see the different approaches with different time and space complexities in a single place.
They have all the things you would expect, an editor with 3 or 4 sections depending on the layout you choose. You can also change the theme of the editor and resize the windows in it.
You can save 3 different solutions for the same problem in the website interface, which is really handy and you don’t have to worry about commenting code to try new approaches.
Overall I would say its pretty good, although sometimes the amount of stuff on the screen feels too much and I end up resizing the windows for more space.
My experience using AlgoExpert
I did benefit from the purchase. I don’t have to think about what I have to do next since they have 155 questions that cover a wide variety of topics.
This might not be specific to AlgoExpert but I learned to focus on the bigger picture by using helper functions and work the details later. This takes a lot of mental load off of me because as obvious as it may seem I used to not build helper thinking that it is too small to warrant a helper function. For example, if I am doing a question that is solved using a trie, I now use a function
createTrie(some, parameters) and keep working on the question assuming the function exists and works and create it later.
Overall I enjoyed using AlgoExpert.
Is AlgoExpert for you?
It really depends on what you are looking for. If you are someone who is comfortable solving LC hards this is not for you. If you want to build a habit of solving questions and need a huge quantity of questions available this is not for you, you are probably looking for Leetcode or TopCoder.
On the other hand, it is really useful if you are new to solving algorithmic questions since they also have a course on data structures. I think it is also useful for people who are out of touch and want to go through a set of questions to touch all the important topics.
They have a feature in beta called recruiting profile where you could possibly get in touch with recruiters from top tech companies. It requires you to have solved a 100 questions or pass an assessment. Not sure if how well this feature works since I haven’t tried it out yet, but it definitely sounds interesting.
I prefer to consume technical content in text (codelabs, articles, documentation, educative courses) and if you are like me, some really good alternatives are Grokking the Coding Interview: Patterns for Coding Questions and Interview Cake. Grokking the Coding Interview is really good they focus on patterns which is a really good approach since solving algorithmic questions comes down to pattern recognition and they have a huge collection of questions.
AlgoExpert is a good product, with the discounts I think it is fairly priced. If you want text-based content check out Grokking the Coding Interview: Patterns for Coding Questions.