As for language design I am mostly self taught through a lot of trial and error. For me it’s all about functions and variable scope. After that everything else is just a statement, expression or a data structure. With that I can write just about anything, make it scale, and keep it super simple to read.