https://levelup.gitconnected.com/why-every-developer-should-learn-data-structures-and-algorithms-bf5cc7d9089f