Formidable FAQ - IncrediCoders/Python1 GitHub Wiki

paul_ch1_avatar

Paul Python added this page on July 29, 2025


We're compiling all our questions about the book here, so don't be surprised if this page grows over time!

We divided the questions into categories on this page:

Technologies

Why did we pick Python and the other technologies?

This answers why we picked Python, Pygame, Visual Studio Code, and GitHub. Each answer is explained in detail in the Meet the Technologies article.

Why didn't you use Replit or GitHub Codespaces?

We actually did use Replit. It's more stable for Python, but for Pygame, it's newer, there were issues, and Replit seemed to change the interface regularly, which kept breaking our code. So, so we had to move on!

For GitHub Codespaces, we found that it requires a Docker container for us to use.

So, we'd love to use an online code editor, but it's got to work with Python and Pygame, to the point where we wouldn't have to rewrite code or do anything else to it.

Why are there Known Issues?

We capture the Known Issues on the instructions page. Many of these known issues exist because the Pygame library and our init.py code files don't cover every scenario. The goal is instead to simplify the code and focus on the learning experience over the polished gameplay. (In other words, if we made the code a lot more complicated, then that would defeat the purpose of learning how to code.)

TO DO: Link to the Known Issues/instructions. To do this after breaking up the Download page and the Instructions page into two pages.

The Code

Who wrote the code?

The code for our IncrediCoders games and programs was written by many different developers working together!

TODO: List out the developers?

Why do we use code templates?

I've been involved in writing coding books and templates for various other coding curriculum. We've found that providing templates is a great way to focus on learning one part of code from a larger program or game.

If you require the reader to complete all the code, then we've found that either:

  • You end up with way too much instructions explanations, and text (the book becomes too long to publish).
  • You end up having the reader build a lot of small applications, which aren't fun, interesting, or sometimes even helpful, when they need to learn how to build a complete program.
  • You end up writing out all the code for the reader to copy, and then the result is that the reader is just copying code and not learning enough.

By providing code templates, we can help the reader learn some important lessons while completing full programs and games.

Why do we use init.py files, and what's in them?

We use initialization files to help load important settings and files, and to set up functions and other code. To learn more in detail about initialization files, see Level 2: Initialization Files. Also, see our Init.py Guide for detailed information about the code we include in each init.py file.

Why is each game written the way it is?

This kind of question applies to every program created, but it's still a great question. Let's look at the basic game logic for each game, to explain why each game was written a specific way:

TBD

Why did we use a specific code structure?

A code structure is how we choose to lay out the code in our files. For IncrediCoders files, we tried to follow the standard expectations around code structure.

TBD

What case style do we use and why?

There are many different case styles that coders use, to capitalize variables and other elements of code. We use snake casing (with underlines) for functions (such as this_is_a_function()), Pascal/camel casing (with the first letter capped) for variables and lists, and all-caps casing for environment variables, global variables, and ENUMS. For more information, see Code Conventions > Case Styles.

Why are some lines of code longer than others?

In the book, you will find some short lines of code and also some longer ones. A few of the long lines are shown across two printed lines so they can fit on the page. We do this on purpose to give you practice with both simple and more complex code, and to help you get comfortable reading, using, and fixing longer lines of code when you need to. For more information, see Code Conventions > Line Length.

Why don't we teach the print() function in the book?

Because we’re displaying text in game windows, we draw the text to the screen. We don’t use the print() function, which prints to a text console.

Why don't you teach more advanced coding topics in the book, and what are they?

Advanced coding techniques help experienced developers become more efficient. We chose not to include some of these techniques in the book, as our readers are learning the basics of Python programming. For more information about these advanced techniques, see Code Conventions > Advanced Coding.

The Book

These questions (and answers) are specific about the "IncrediCoders: Python Adventures" book.

Why is it a tutorial and not a reference textbook?

We discussed this a little bit in the book's introduction. Some people are very passionate about this topic and think that all books should be textbooks and referential in nature.

However, we found that students, especially young kids, learn better from a tutorial style of method. It's a slow and gradual onramp to learning. They learn by doing the tasks, and we explain them along the way. They repeat the tasks, and we slowly challenge them a little. By the time they're done, they learn a lot about coding!

Also, we want this book to go down to age 8, so the slow onramp is valuable for that reason.

Also, not everyone can learn from a referential style. Also, a referential style typically teaches a concept and then gives you a lot of little assignments to get you to learn that lesson, sort of like a math book. We wanted to take students on a journey where they can help us build full games that they could play and enjoy. And then we wanted those games to tie into a story.

That said (or written, actually), we believe there are some great referential textbooks that teach kids Python programming. We recommend the DK series from Craig Steel, which includes Coding Projects in Python and Computer Coding Python Games for Kids. We're big fans of this series, and Craig also wrote a testimonial for our book (thanks, Craig!).

What's up with the art style?

Thanks for asking! We were inspired by DuckTales (the 80s version) and Looney Tunes. Our lead illustrator, Brenna, helped us refine the art style and ensure a consistent level of the style (and quality) throughout the book!

For shading and lighting, I wanted to put the stake in the ground that we weren't going to do gradients. Gradients can be inconsistent and can seem unrealistic (or too shiny) at times. So, all our shading and effects (with a few very slight exceptions) have solid colors for the main colors and for each layer of light and shadows on the character (and being cast on the objects). Does that sound intense? It is! So, special thanks to Brenna, Grace, Trinity, and all our artists for making this vision come to life!

Why are there so many snakes and reptiles?

TBD - Answer coming soon!

What are your influences as a writer?

TBD - Answer coming soon!

Who are the illustrators who worked on this book?

TBD

How many characters did y'all create for this book?

Great question! You might have noticed, that instead of simply drawing a bunch of random characters in the backgrounds, we actually designed all our background characters, including their names, personalities, backstories, and more!

So, to answer this question, with way too much detail, we decided to make a "hidden" page that shows how many characters we created (in this one book), and how that stacks up to other comic and graphic novel creators.

To directly answer the question: We created 53 characters in this book. All characters are owned by PriceTech Press.

Breaking down the information by creator:

  1. Ed (the author) co-created all 53 characters.
  2. Trinity (our lead character designer) co-created 27 characters, including Paul Python, Grafika Turtle, Annie Conda, SideWinder, Bayo Wolf, Queen Cobra, and many more.
  3. Brenna Johnson (our lead illustrator) co-created 15 characters, including Grafika Turtle, Captain Javo, Ellie Fantasy, David Hisselhoff, ViralMuto, and more.
  4. Grace Howard co-created 7 characters, including Mecha Pig, Amphib Ian, Lady Baa-Baa, Woodchuck Norris, Quackintosh, Nine-Inch Snails, and Justin Timbersnake.
  5. Richard Gonzalez (our first character designer) co-created 5 characters, including Paul Python, Bayo Wolf, Cryptic Creeper, and more.
  6. Sophia Abouzeid co-created 4 characters, including Annie Conda, Java-Lynn, Mrs. Codala, and Principal Coda.
  7. Maria Becerra (our lead game artist) co-created 2 characters (Quackintosh and SB Turtle).
  8. Taylor Barron co-created 1 character (Grafika Turtle).

TBD - More answers coming soon!

Next Steps

We hope you took all that to heart, and you're ready to learn (or to continue learning)! Let's get back to the book! And you should probably also check out the rest of our resources, at IncrediCoders: Python Adventures - All Online Resources.

And you can take a gander at all the rest of our Big Book Buddies, which are pages we have on the Wiki that help out as buddies of the book!

⚠️ **GitHub.com Fallback** ⚠️