My Thoughts

Why am I doing this?

Computer Science is vast and it's growing fast. Well the fundamental are not changing much and they are the keys. I'd like to spend some time to review all those fundamental topics which I've forgotten or I've never learnt.

The plan

I am making myself a plan for all those topics needed to be a good programmer as well as to pass the interviews. There are many github repos out there doing the similar things which are good resources. I'd like to make my own with my own ideas.

Algorithms

Data Structures and Algorithms are the very basics. Algorithm Visualization is a very useful tool to learn them faster. There are many very good resources out there too for this topic. It's not so hard to build a basic version of the Algorithm Visualizer.

Making notes and review those notes are another key for efficient learning. Jupyter is a great tool for make programming notes.

I like Golang, efficient and fun to use. I will use Go in this journey.

Learning by teaching is another key for effective learning.

Combine these four elements, my plan is using Jupyter and Golang to build a Algorithm Visualization notes for myself and share the whole building process. In the end I will be ramp up again with Algorithms and hopeful get something useful for others as well.

After doing some research, it seems the Jupyter + Go visualizer approach is a bit harder to accomplish. Will make it simple by using Gopherjs to display in browser. Think to extend Go Play Space for the algorithm visualization part.