It is not too far from the truth. There are several systematic methods, but they are difficult, and even then they usually get a "shortcut" at some point.
Big-O gives an upper bound. If someone asks you about an algorithm and you donβt know, you can say O (n ^ n) and probably be correct (although there are even slower algorithms there). Of course, this is not tight.
A shortcut is basically a source of inspiration when you see a template that proves a certain upper bound.
In 99% of cases, most people simply use their intuition to find a good way to look at the algorithm, and then do enough to prove this attachment. For example, instead of looking at the actual thread of execution, it is customary to say that "each element is processed no more than x times, each time, taking a constant time" (for the O (n) algorithm). You may have missed the fact that, for example, in most cases log n is always processed, but if you are really trying to understand what the algorithm does, this is hardly possible.
Of course, this probably will not help you take a course in algorithms.
For systematic methods - well, of course, there are videos of the course "MIT 6.046J / 18.410J Introduction to Algorithms", which can be viewed on YouTube. The lecturer is one of the authors of a very respected algorithm .
Steve314
source share