esigners wanting to become better programmers and vice versa. As you go through the text, you will notice that it starts with the very basics. The code will be simple and the exercises will be very constrained. If this feels simplistic, keep reading. We will soon enough touch upon more challenging themes, but these basic concepts lay the foundation for some of the more complex ideas. At the end of the book, it is my hope that you have learned two new skills: How to use code to create new and interesting gra