
Hi everybody.
This article is a continuation of my previous article, 1000 problems in less than 6 months. Another six months have passed, and I am ready to tell you that I have now solved 1500 tasks.
About my experience
I have been working as an Android Developer for more than 4 years and have now been in Canada for one year. After high school, I decided to become a programmer and have been writing code for more than 10 years. I have a Master's degree in Information Technology.
What has changed in the approach
The difference between the first thousand and the next 500 tasks is that there are no easy tasks left at the moment. Previously, many tasks could be read and understood in 1-3 minutes. Now the primary analysis of individual tasks sometimes takes 15 minutes, or even more.
If in the first thousand I solved almost all problems on algorithms, now I have solved all problems on Shell and Concurrency, as well as more than 100 on Database.
I think it's fair to say that as before
80% - tasks, I solved myself, at optimal speed and memory consumption.
18% - I solved the tasks myself, but not optimally. For example, for O(n*log(n)) instead of O(n). After finding a more optimal solution in the comments, I would sometimes rewrite my solution.
2% - I solved problems only after I read the solutions in the comments. For example, if it was an algorithm for graphs or strings, then as a result of solving the problem, I would study a new algorithm. If I found a solution in this way, I would always rewrite the solution the day after.
Challenges
The main challenge is the amount of time required to solve problems. It takes about an hour to solve one problem. This is taking into account both easy tasks of 10-15 minutes and complex / unfamiliar tasks that can easily take more than 5 hours. There were several tasks that took more than ten hours to solve and rewrite to an optimal solution.
What next?
My next goal is 2000 tasks. I can’t predict when it will be reached, but I am going to continue to solve leetcode tasks. Algorithmic problems are part of my long-term goal of self-development in programming. In the previous article, I got some great tips on what to study next. Much of what I read I have used. If you have any tips for improving programming skills, what to study for self-development in 2022, or recommend any book, please write it in the comments.