#ocaml is a versatile language (learning computer science, system programming, etc.). The course from @ocamlmooc was fun! You'll learn the basics and you'll be ready to understand more advanced concepts.
Favorite exercises:
1. Klotski
2. Trie
3. File system