The Beginner's Guide to Advent of Code 2022

Hello Coders! I am a believer that the Advent of Code is for EVERYONE! It is an excellent way to practice your problem solving skills, collaborate with others, and LEARN.

tl;dr

I created video guides to help beginner programmers develop an approach to Part 1 of each puzzle. The videos can be found at the end of this writeup!

The Long Version

As I was attempting to encourage young programmers to check it out, I received quite a bit of criticism saying that “Only a few of the puzzles can be solved by new programmers.”. This is NOT true at all!

In fact, I believe that many of the puzzles can be completed using the concepts taught in my Intro to Coding course:

  • Variables
  • String Manipulation
  • Functions
  • Boolean Logic
  • Arrays / Lists
  • Multidimensional Arrays
  • Loops
  • Composite Data Structures (Classes / Structs / Algebraic Data Types)

The most challenging part of these puzzles is often just figuring out what the heck you are supposed to do. If you can figure this out, you have a chance!

To help encourage and help my own students to tackle these puzzles, I decided to create the Beginner’s Guide. Thus far, I have completed a guide for days 1-14. I intend to create guides for the remaining days. That said, a few of the days (16 and 17 as of writing) will not be Beginner Guides and instead will likely have their own little “series” to break down more advanced algorithmic concepts.

Each video is designed to break down the “computational thinking” part of the puzzle without giving away the implementation. In essence, help them develop an approach to the problem. The guide then proceeds step by step through this approach and encourages uses to pause, write tests, and implement each step before continuing.

The Guides

In the guides, I happen to use C# as my implementation language BUT provide a high level approach that SHOULD be approachable in just about any language. The goal here isn’t to show a solution in C# but instead guide a beginner through the process in their own language.

Happy Coding!


Discussion Powered by giscus!