What I do when I want to learn a language is I find something that I'm currently using that badly needs a re-write, then I start looking at various languages that might suit the purpose.
I'm currently learning Nim, which has some good validation when working with multiple threads, it *should* (I haven't actually tried it yet myself) ensure that there won't be any locking issues, at compile time. additionally when writing modules you can also write the test into the same file, which in my opinion can be handy, at least for my project.