Foreword
========
.. image:: screen1.png
:width: 27%
.. image:: screen2.png
:width: 35%
.. image:: screen3.png
:width: 35%
This book teaches programming through creating 2D video games.
It covers all the standard topics in a normal first-semester college class,
but the projects are games. Video
games provide great visual feedback for your
code. Furthermore, programming can be *fun*.
.. image:: top_majors.png
:width: 35%
:class: right-image
:target: https://www.glassdoor.com/blog/50-highest-paying-college-majors/
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.
Programming Is For Everyone
---------------------------
.. image:: steve_jobs.webp
:width: 35%
:class: right-image
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:
.. epigraph::
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:
.. epigraph::
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.
Programming Pays Well
---------------------
.. image:: money.svg
:width: 35%
:class: right-image
Search up "top paid majors" and you'll see computer science is usually one
of the best paying degrees you can get.
In 2020 the National Association of Colleges and Employers (NACE) says that
`computer science majors are projected to have the highest starting salary `_.
Payscale agrees, says
`computer science is second only to petroleum engineering `_.
Learning to program is worth your time.
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.
.. raw:: html
Video: Spring 2018 Game ProjectsVideo: Spring 2017 Game ProjectsVideo: Summer 2015 Game ProjectsVideo: Spring 2015 Game ProjectsVideo: Fall 2014 Game ProjectsVideo: Spring 2014 Game ProjectsVideo: Fall 2013 Game ProjectsVideo: Fall 2012 Game ProjectsVideo: Spring 2012 Game Projects