1. Foreword

../../_images/screenshot.png

This book aims to teach programming through creating 2D video games. We cover all the standard topics in a normal first-semester class, and video games provide great visual feedback for your code. Furthermore, programming can be fun.

Programming is consistently one of the top paid skills that you can learn. It is also one of the most flexible majors you can get. You can take your programming skills to almost any industry, and any location.

Even if programming isn't going to be your main job, as a skill it can still enhance your career. Need an interactive website? Need to crunch sales numbers? What about automatically saving experiment data and graphing results? Maybe you want your home to automatically e-mail you if the garage door is left open? Learning programming, be able to do this and more.

1.1. Programming Is For Everyone

../../_images/steve_jobs.webp

With programming you get to create. Making beautiful graphics and designing programs is an art. Good design requires people from all walks of life, and that's one of the reasons Apple was able to gain a foothold in the computing industry:

Picasso had a saying. He said, "Good artists copy, great artists steal." And we have always been shameless about stealing great ideas and I think part of what made the Macintosh great was that the people working on it were musicians and poets and artists and zoologists and historians who also happened to be the best computer scientists in the world.

Steve Jobs in PBS's "Triumph of the Nerds: The Rise of Accidental Empires" (1996)

The artistry behind a program isn't just how it looks, but how it is designed. How the interface between the human and the computer functions:

Design is a funny word. Some people think design means how it looks. But of course, if you dig deeper, it's really how it works. The design of the Mac wasn't what it looked like, although that was part of it. Primarily, it was how it worked.

Steve Jobs in Wired's "The Next Insanely Great Thing" (1996)

Programming requires all kinds of people. Successful programs require idea people, business people, project people, artists, subject-matter experts, testers, writers, and more. You may not have ever thought of yourself as a programmer, but you can be.

1.2. Programming Pays Well

../../_images/money.svg

Search up "top paid majors" and you'll see computer science is usually one of the best paying degrees you can get.

In 2019 the National Association of Colleges and Employers (NACE) says that software developers have the second highest entry-level salaries, with only some engineers getting paid more. Payscale agrees, says computer science is second only to petroleum engineering. Learning to program is worth your time.

1.3. What Can You Create By The End Of The Course?

Here are some videos of games students have created in prior semesters. Students who didn't know any programming were able to create these games by the time they finished the semester.

Video: Spring 2018 Game Projects
Video: Spring 2017 Game Projects
Video: Summer 2015 Game Projects
Video: Spring 2015 Game Projects
Video: Fall 2014 Game Projects
Video: Spring 2014 Game Projects
Video: Fall 2013 Game Projects
Video: Fall 2012 Game Projects
Video: Spring 2012 Game Projects