https://medium.com/@siddeshwarblog/when-can-i-say-i-have-mastered-a-programming-language-a41df637681d