Learning software development through playing and contributing to a MUD: https://tashian.com/articles/how-i-learned-to-program/