Global Day of Code Retreat Comes To Philly!
What is code retreat
Global Day of Code Retreat is an annual event held around the world. It's a day set aside to practice your craft, to hone your skills, all free from the constant pressure to ship that we feel in our day jobs.
Code retreat is for you if:
- You'd like to learn about testing
- You'd like to learn about TDD
- You'd like to learn about code design
- You'd like to learn about pair programming
- You'd like to teach any of those skills to others outside of a shipping culture
- You'd like to experiment with others in a relaxed setting
What are we doing today?
Simply put we will be solving the same problem over and over whilst applying different constraints to how we solve it.
Ideally, a pair will consist of someone that is able to teach a skill and someone that is interested in learning that skill. We will be working in 30 minute rounds with a short retrospective at the end of each round to share what we did and learned.
The problem is IMPOSSIBLE to finish in 30 minutes, and that's by design. It allows us to choose on area to approach, and one activity to practice for the round without worrying about completing the problem and shipping a rushed solution. Take your time; talk and learn together!
How do I get started?
Setup your environment
Get started on the problem
With each round, there will be a surprise challenge. We'll choose a group challenge from the list below, and you will and work together to solve it. You're not required to do what everyone else is, though. Feel free to coordinate with your pair on something that seems fun and valuable to do together.
In the first round, we will be exploring the problem. If you're unsure where to begin, the branch challenge 0 will give you a foundation to begin working on the problem. If you're unsure of where to approach the problem, but don't want to use the template, start by defining a rules engine for the game.
- 10:00: Hello World
- 10:30: Session One
- 11:30: Session Two
- 12:30: Lunch
- 13:30: Session Three
- 14:30: Session Four
- 15:00: Recap
- 15:30: Done
Where can I continue learning?
There are many more activities than the ones we'll be doing on this day. If you want to do some of them in your own time take a look at a longer activity list.
A kata is a small digestible fun exercise that lets you practice things. You can focus on stuff like tdd, or breaking the problem up better, or single responsibility. It’s a simple enough problem that you can do real practice without getting bogged down in the domain, deadlines, or delivery.
"There are no limits. There are only plateaus, and you must not stay there, you must go beyond them."
Focus on form and mastery here!
What is TDD?
TDD stands for Test Driven Design. It is a tool to help design understandable, maintainable, and easy to use components in a system. Although not the immediate goal, after the test has been written, it has the side effect of regression safety.
The Three Dogmatic Laws of TDD
- You can't write any production code until you have first written a failing unit test.
- You can't write more of a unit test than is sufficient to fail, and not compiling is failing.
- You can't write more production code than is sufficient to pass the currently failing unit test.
More TDD Resources
- Discovery Testing
- My favorite way to TDD
- Happier TDD with testdouble.js
- 5 Common Misconceptions About TDD & Unit Tests
- Arrange Act Assert - C2 Wiki
- Arrange Act Assert - Test Double Wiki
- Test Organization with Contexts
Exercism is an online platform designed to help you improve your coding skills through practice and mentorship.
Exercism provides you with thousands of exercises spread across numerous language tracks. Once you start a language track you are presented with a core set of exercises to complete. Each one is a fun and interesting challenge designed to teach you a little more about the features of a language.