Code challenges in learning new languages, frameworks, engineering tools, architectures, software design patterns, etc.