CN

The Programmer's Apprenticeship - 07: Games and Programming

Word count: 1.2kReading time: 7 min
2018/09/30
loading

This is the seventh post in the reading notes series for How to Stop Sucking and Be Awesome Instead, published in Chinese as 《程序员的修炼——从优秀到卓越》 (the series title here is The Programmer’s Apprenticeship). The author, Jeff Atwood, is one of the founders of Stack Overflow. His articles cover a wide range of topics. He is a seasoned programmer, manager, and entrepreneur. This book discusses many things beyond programming. Whether you are a junior engineer or a senior engineer, this book is worth reading. As your experience grows, every time you re-read this book, you will gain new insights. Just as the Chinese subtitle “From Good to Great” suggests, the author points out the path for you, but whether you can succeed depends on your own cultivation.

I will excerpt some wonderful remarks from the book and sometimes add my own insights or experiences. The outline of the reading notes is consistent with the outline of the book itself. This is also a method I learned from another source and have been using: “How to Read a Book”. I record it for my own frequent review and for readers’ reference. Below is the The Programmer’s Apprenticeship reading note series:

  1. The Programmer’s Apprenticeship - 01: The Art of Fighting Back
  2. The Programmer’s Apprenticeship - 02: The Way of Programming
  3. The Programmer’s Apprenticeship - 03: Web Design Principles
  4. The Programmer’s Apprenticeship - 04: Reflections on Testing
  5. The Programmer’s Apprenticeship - 05: Know Your Users
  6. The Programmer’s Apprenticeship - 06: All About the Internet
  7. The Programmer’s Apprenticeship - 07: Games and Programming
  8. The Programmer’s Apprenticeship - 08: The Beauty of Reading

Reading note (reviewed October 2026): This is primarily a reflection on games and learning to program. Hardware details and source links have been checked; the text distinguishes the author’s account from my own takeaways. Later projects are dated separately.

My Programming Career Started with BASIC

(Based on Jeff Atwood’s About Me and Please Don’t Learn to Code)

In About Me, Jeff says he started programming with BASIC and names the Texas Instruments TI-99/4A as his first microcomputer. It did not boot straight into the interpreter: the manufacturer’s guide, page II-4 shows a title screen, a keypress to open the menu, then 1 to select TI BASIC. Being able to type a few lines and see a result made for immediate feedback.

These accounts make me think of the invitation early computers seemed to offer: the machine was waiting for you to tell it what to do. Complex tooling can make a first step daunting, but that does not describe every learning environment today.

His 2012 essay Please Don’t Learn to Code argues against treating coding itself as the goal: understand the problem and seek a solution first. It is not a rejection of everyone learning to program. For those drawn to it, that initial creative spark still matters—the joy of building.

If You Want to Play a Game, Write It Yourself

(The previously listed Coding Horror: The Game link is unavailable. A related source is Programming Games, Analyzing Games (August 22, 2007); the learning reflections below are my takeaways.)

There is no better way to understand how software works than to try to build a game. Games are complex systems that require mastering loops, logic, graphics, and user interaction.

My takeaway is that interested beginners can try making a small game, even without aiming for a game-development career. It offers a way to explore engagement, user experience, and performance, though those lessons do not automatically cover every software domain.

For me, the appeal of learning by doing is that the learning itself can be enjoyable.

Metamorphosis from Gamer to Programmer

(The previously listed The Gamer / Programmer and The PC Weenies links are unavailable. Compare the early experiences in Programming Games, Analyzing Games; the points below are reflections, not a list of findings from that essay.)

There is a huge overlap between gamers and programmers. Many of us got into this field because we wanted to understand how our favorite games worked—or because we wanted to mod them.

I see several habits that this background might encourage:

  1. Problem Solving: Every game is a series of puzzles to be solved.
  2. Perseverance: We are used to failing (dying) and trying again until we succeed.
  3. Optimization: We are always looking for the “min-max” strategy to get the best result with the least effort.

Transformation comes when we stop just consuming the content and start creating it. We peek behind the curtain. We realize that the “magic” is just code, and that we can wield that magic ourselves. The passion that drives a gamer to master a level is the same passion that drives a programmer to master a new language or framework.


Later material: In a December 31, 2021 essay, Jeff introduced a project to rewrite classic BASIC games in modern languages. The repository keeps original BASIC code alongside language-specific ports; its README also links to JavaScript versions in a browser. Check the requirements and completeness of each port before using it.

The following is the historical Douban description; its traffic figure is not current.

How to Stop Sucking and Be Awesome Instead is a compilation of the best articles from the Coding Horror blog. The book is divided into 8 chapters, covering topics such as time management, programming methods, web design, testing, user needs, the Internet, game programming, and technical reading. The topics selected by the author are all pain points in a programmer’s career. Many articles have high click-through rates and reply rates on blogs and the Internet. —— from Douban

Jeff Atwood founded the Coding Horror blog (codinghorror.com) in 2004 to record his thoughts and bits and pieces of his software development experience. Today, the blog has nearly 100,000 visits per day. Readers participate in comments, and various views and wisdom collide passionately there. —— from Douban

The writing style of How to Stop Sucking and Be Awesome Instead is humorous, understanding, and caring; it is suitable for programmers at all stages from novice to veteran, and also suitable for students of computer science and related majors who are about to become programmers. How to Stop Sucking and Be Awesome Instead can help readers pay more attention to the human nature and humanistic factors of technical work, thereby achieving a successful turning point in their programmer career. —— from Douban

About Me && Blog

Below is my personal introduction and related links. I look forward to exchanging ideas with fellow professionals. “When three walk together, one can always be my teacher!”

  1. Blogger Intro: Includes personal WeChat and WeChat group links.
  2. Blog Content Navigation: A guide for my blog content.
  3. Curated Excellent Blog Articles - Android Performance Optimization Must-Knows: Welcome to recommend projects/articles.
  4. Android Performance Optimization Knowledge Planet: Historical project; paid operations ended in 2026 and new paid members are no longer accepted.

One person can walk faster, a group can walk further

Scan WeChat QR Code

CATALOG
  1. 1. My Programming Career Started with BASIC
  2. 2. If You Want to Play a Game, Write It Yourself
  3. 3. Metamorphosis from Gamer to Programmer
  • About Me && Blog