Katas, coding dojos, and coding contests can help programmers improve their skills through repetition and experimentation. Katas involve practicing individual coding exercises based on martial arts training techniques, and can help programmers learn new languages, tools, and ingrain good habits like test-driven development and refactoring. Coding dojos are events where programmers work on katas together in teams, while being observed to ensure good practices like test-first development are followed. Contests involve programmers solving problems or "sparring" to further improve their skills through competition.