Creative code merges the technical skill of computer programming with the freedom of artistic expression. With Codevember being in full swing, software developers of all skill levels are hard at work during their hour of code to show off what computer wizardry they can conjure on the screen. The annual 30-day challenge is a great opportunity for programmers with little or no coding experience to tackle a variety of creative code projects.

The thought of starting on your first project as a learning developer can be daunting, but it doesn’t have to be. You don’t have to dive into building a mobile app or 3D video game right away. Even if that’s what you eventually want to do, starting out on complex and more advanced projects before mastering the basics will only stunt your growth. Fortunately, there is a wide array of unique ideas to help you quickly learn new concepts and apply them to exciting projects.

Not sure where to start? Here are some project ideas to put your skills to the test.

Flashcard Maker

To-do lists and notetaking apps are classic “starter” examples when learning a new coding language, but once you’re done, they’re quickly forgotten. Try a similar text-based program where you’re simultaneously recording what you learn, such as a flashcard generator. They’re simple, can be made in a handful of steps, and while you build it you can add entries for the syntax and concepts you’ve learned. Once you’re done, you can revisit it as a supplemental study tool. Depending on how you build it, this is also a nice way to get comfortable using your terminal/command line. If you’re not sure where to start, there’s a great, simple example at Learn Ruby the Hard Way.

Languages: Any!

Text Adventure

Are you more of a literary type? Play with your creative writing skills by creating a fun text adventure, or interactive fiction. Though the concept is primitive, it’s a straightforward introduction to programming language concepts such as object models, loops, and control flow. Have players “choose their adventure” by giving them a series of choices that propel them along a specific storyline.

If you’re looking for inspiration, try out Zork. It’s one of the earliest text adventures out there, and has aged really well. Writing a text-based game forces special attention to detail and constructing a user-friendly program, and the story can be as long or complex as you want it to be.

Languages: Python, Ruby, Java, C++

Maze Generator

This project is a versatile introductory exercise in goal-setting and problem solving. It’s also open-ended enough that there are lots of ways to go about it. Find a way to randomly generate a maze, and then create an algorithm that will navigate through the maze and successfully reach the maze’s exit. A popular method to accomplish both is the genetic algorithm, a not-quite-brute-force way of training your program to solve problems (which means you’re making AI!). Bob Nystrom has a particularly great guide on generating mazes and dungeons.

Languages: Java, Dart, HTML/CSS, Python, C

Virtual Pet Simulator

For those who are missing the cute factor in their work, a virtual pet simulator is a fun standard project. First pick a type of creature like an animal or some type of monster to design, but beginners can start with a basic circle to represent the pet. Once you’ve chosen your concept, give your pet a name, age, and other properties like health and happiness. You might also want to keep in mind physics concepts like movement, gravity, and inertia. Depending on your experience and whether you’re opting for a 2D or 3D model, your pet and its background can come many different ways. You can also customize features on your pet, like programming specific responses to stimuli. This is a great project because you can continuously revisit and improve as you develop your skills.

Languages: Python, HTML/CSS, JavaScript

Build a Natural Environment

If you want to create something more organic and sophisticated, you can render a two-dimensional environment featuring a landscape and “living” things, such as plants or animals. Choose a scenic background, such as a sky or underwater scene, and create a system of moving objects that can respond to one another. Simulate different animals or plants, such as swaying trees or a school of fish reacting to a predator, adding action in the scene. By implementing concepts like recursion, physics engines, and steering forces, the objects can better mimic the natural behavior of wildlife.

Languages: Processing/p5.js, HTML/CSS

Generative Art

Rather than follow a task, make what inspires you! Generative art lets you create without depending on a steady hand. Inspired by disciplines like biology and chemistry, combine a variety of algorithms into an autonomous system, with your own particular style. Whether you want something more abstract or natural, generative art lets you play with different colors, forms, and compositions. Employing fractal design and mathematical methods in this type of creative code can result in beautiful visuals, like flowers, spirals, and waves.

Languages: p5.js, Processing, HTML/CSS, Max/MSP, TensorFlow

We teach the tools, free and online, that can enable you to make all of these and more. The following courses will get you where you need to go:

Generative Art and Computational Creativity

Simon Fraser University



Introduction to p5.js

University of California, Los Angeles



Python Programming With the RhinoScript Library

Rhode Island School of Design



Creative Applications of Deep Learning With TensorFlow

Kadenze Academy