Hello! I am a 17 year old student and I am trying to upgrade my programming knowledge. I currently know quite a bit about C++ (but probably not enough to call myself intermediate). I know the basics, quite a bit of OOP and I know some STL. I recently noticed that my algorithms are quite slow (like for ex. in one of my projects here: https://zablas.itch.io/ss-203x) so I started doing some research and found out about the Big-O, graphs, binary trees, sorting and so on. I would love to learn about these things in MOOCs, but all I found was paid courses on Coursera (and one for free there but in Java) and some not really good ones on EDx. I need a course which would visualise these algorithms for me in code and in a graphical way and would guide me through from A to B since I really don’t know where to start learning these topics. I find that the best way to learn since I can keep physical notes about everything more easily. What would you recommend? Thanks in advance! :)
I recommend a book on algorithms instead. Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein is one that I've seen recommended in a few places. Otherwise googling "book on algorithms" yields many results. The particular language that the book uses is not important, as the concepts are universally applicable.
you will notice that 85% of a classic ds/alg class is found in the STL already, and those have been optimized pretty well (balanced against re-use, safety, and general purpose vs pure speed, but even so they are very good).
So what you want to do is re-create the stl data structures and algorithms for them by hand. String (optional), vector (include here stack and queue), list, and trees.
you want to insert, delete, sort, search those. When sorting a vector, consider bubble sort, merge sort, quick sort, shell sort, and bucket sort. Those cover a wide range of how to think about a simple problem.
once you have done all this the classic way, consider that all these data structures can be put into a vector, which tends to run faster for most applications.
all these are online, or in a book, or a course. Budget governs if you try to do it free off the web or more formally.