https://tipsnguts.medium.com/how-to-master-algorithms-and-data-structures-without-burning-your-brain-e3d21a64ff56