placeholder-1440x250

Guildhall Preparation: Programming

The video game industry is heavily dependent upon C++ (for performance, power, and portability), so the single most valuable preparation for success at the Guildhall is solid C++ experience. Our curriculum provides a great deal of intermediate and advanced C++ guidance and practice, but doesn't teach the language from scratch. You will have a much easier time absorbing all of this if you are already comfortable with C++ to begin with.

If you have yet to choose your college, find one whose computer science curriculum includes plenty of C++ based classes. If you've already started college or don't have the luxury of choice, try to do as many classes and/or independent projects where you can use C++. In the end, it doesn't matter which course, book, or project you embark on, as long as it provides ample exposure to learn the language and gain experience in constructing larger programs, and wrestling with the issues that brings. The larger the project, and the more complex data structures it involves, the better.

If you come to C++ from Java, make sure you embrace its more low-level nature and get intimate with memory allocation, memory layout, pointers etc. Failure to do so can make life very hard when progressing through the more complicated topics of the Guildhall program later on. Conversely, if you come to C++ from C, try to embrace the power of thinking and coding at a higher level while remaining mindful of what’s actually happening “under the hood”.

In addition to writing your own code, we also highly recommend reading others’ code. With Open Source, plenty of C++ code is out there for your reading pleasure. Pick a project, get its source to compile, and make an effort to see how it works internally. Place breakpoints, step through it in the debugger, and see what it does. Tinker around to modify or extend its behavior.

Resources:

  • The C++ Programming Language: Special Edition (3rd Edition) — The most thorough reference, written by the designer of the language. It's not exactly an easy book to use in learning the language from scratch, so you may want to accompany it with a more tutorial-style book.
  • Memory as a Programming Concept in C and C++ — For those who feel they have weak experience with C++'s low-level nature.
  • The C++ FAQ — Provides an excellent coverage of the topics and tensions within C++. You may or may not agree with everything in the FAQ, but you will become a far stronger C++ programmer by reading and considering its contents.