So you heard about Coderetreat and have the opportunity to attend one. Or maybe you read 5 Reasons Why You Should Attend a Coderetreat, heard about it from a friend or worker, or saw it listed in a community events calendar. In any case, you are intrigued but you have questions or concerns. Are you ready to participate in one?
First of all, I would recommend that all attendees (whether you have never attended or been to many of them) do some familiarization and preparation. We will go over this the morning of the retreat, but it can help to have prepared beforehand.
- Familiarize yourself with the problem we will be working on together–Conway’s Game of Life. There are a number of great resources out there if you look, including:
- Read up on the following. While we will be learning and exploring areas of the following during the Coderetreat, it will help to have some familiarity before the day of the event:
- Get your development environment ready (If you are able to bring a computer)
- Be ready to create new projects throughout the day in whatever languages you would like to use.
- Make sure you can quickly add and run unit tests to a new project. If you don’t typically use this kind of test in the language(s) you want to use, research and find one you are comfortable with and practice writing some tests
- Remember that you will be pairing with others, so try to make sure your computer isn’t too customized so that it will be comfortable for another person to use with you.
Here are some typical questions and tips to help you prepare for a Coderetreat.
I’m a beginning programmer. Can I really participate?
In most cases, yes. However, if you have no prior experience and have not written more than a “Hello World” program in any language you might have trouble keeping up. Coderetreat is probably not the best place to learn the basic fundamentals of programming, but you don’t need to be an expert (or even intermediate). We try to help those with less experience pair up with those who have more as best we can.
In this situation, here are some suggestions:
- Try to work through a beginner book in your language of choice as far as you can.
- Work through some online Code Kata. Some sites make these easy to work on and get feedback, such as CodeWars and cyber-dojo
- Consider coming and just observing at the beginning. You will learn a lot and probably find out that you know more than you think!
I haven’t used automated tests, Test-driven Development, or Pair Programming before. Will I be lost? It is common for many participants to not have experience with some or all of these. That is one of the great things to learn and practice during the event. However, trying or practicing it out on your own before certainly helps! Here are some suggestions for practicing:
Try working through code Kata and focusing on using tests and following Test-driven development. There are some great Katas listed in places like http://codekata.com/ and sites that make it easy to work on problems applying tests such as CodeWars and cyber-dojo. I recommend starting with writing tests if you aren’t familiar with using them and then try applying TDD after you are comfortable.
Pairing is difficult to practice unless you can find friends or coworkers that are willing. You can, though, mentally prepare for sitting and working with others or try an online community that is oriented around giving feedback to others such as Exercism.io. You can also practice reading over public code on Github or other sites and think about how you would ask questions about the code or provide feedback in a constructive way (and in real time). Just find something that interests you in a language you know or are learning. Code reading is a helpful learning activity even on your own!
Don’t Worry Too Much or Overprepare
While it is helpful to prepare in advance, don’t worry too much. These events are intended to be an experience of learning and practice. Most Coderetreat facilitators will do their best to pair the right people together and adapt the activities and pace of the overall event to the participants in attendance. If you have further concerns that you don’t see mentioned here, contact the host/facilitator of an event you are considering attending and ask.