https://levelup.gitconnected.com/19-things-you-should-learn-to-become-a-complete-professional-developer-2a999400c105