Learner-directed creative programming is challenging for students, but collaboration can help reduce frustration and foster a sense of belonging. However, organizing this collaborative learning, in ways such as pair programming, is challenging and can reinforce inequities. To explore how students collaborate in learner-directed projects, we designed a collaborative programming Scratch curriculum, tested in a week-long workshop with six students. Through participant observation, interviews, and analysis of student work and survey data, we found that students were able to self-organize into different collaborative structures, each of which had various affordances and challenges. Student success and satisfaction with collaboration depended on their goals and experiences. Regardless of approach, students benefited from opportunities to learn from one another and share their work.