I recently read a blog post by Jason Rudolph about leveling up as a software developer. To paraphrase him, the idea is to:

  1. Identify the experiences that advance a person as a developer.
  2. Select a particular experience to pursue.
  3. Pursue that experience to completion. (Achievement unlocked!)
  4. Reflect on that experience. Really soak it in.
  5. Return to Step 2, this time selecting a new experience.

This was along a common vein with some things I had been doing, and generally seemed like a good fit for me, since I'm fairly new to programming, so I forked his list and modified it to suit my circumstances:

Program in a variety of different programming paradigms

  • Write an application in a functional language
  • Write an application in an object-oriented language
  • Write an application in a prototype-based language
  • Write an application in a logic programming language
  • Write an application using the Actor model
  • Write an application in Forth

Program for different platforms:

  • Write a nontrivial web app
  • Write a nontrivial desktop app
  • Write a nontrivial mobile app

Enhance my understanding of the building blocks:

  • Use machine learning to solve a problem
  • Write a networking client (e.g., HTTP, FTP)
  • Write a B-tree database
  • Wrap an existing library to provide a better user experience
  • Write an application or framework that provides a plugin model
  • Write a testing framework
  • Write a lexer & parser

Enlighten myself:

Program in the open:

  • Contribute to an open source project (Added three words of documentation. Ha!)
  • Have a patch accepted at an open source project
  • Earn commit rights on a significant open source project
  • Publish an open source project
  • Perform a Refactotum of an open source project

Learn by teaching others:

  • Present a lightning talk
  • Present at a local user group
  • Present at a conference
  • Publish a tutorial
  • Publish a constructive code review of an open source project

EDIT: I have since updated this list.