Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ahmdrefat/1551693 to your computer and use it in GitHub Desktop.
Save ahmdrefat/1551693 to your computer and use it in GitHub Desktop.
Programming Achievements: Suggestions from the GitHub Community

Programming Achievements: Suggestions from the GitHub Community

Last week, I published some ideas for leveling up as a developer. I put it on GitHub as a gist, and I encouraged people to modify the list to their liking:

Feel free to fork it and add more achievements. (Make sure they're measurable.)

Or, fork it and mark off the achievements you've already conquered. You might even flag the one that you're currently working on.

So far, more than 270 developers have forked this gist. Many devs have customized their forks as personal to-do lists (e.g., crossing off past achievements and highlighting the goal they're currently pursuing). A number of people have also added new achievements to their forks, indicating additional experiences that they believe will allow you to take your programming skills to the next level. I've included the new contributions below.

Note that the list below is not curated in any way. I wrote a quick script to fetch all the forks and identify any new content. As such, this list is raw and unfiltered.


  • @yogsototh Read TAOCP (the Art of Computer Programming) and complete most of exercises
  • @burcsade Write a public-private key encryption system
  • @burcsade Write a library to consume web services {e.g. SOAP, JSON}
  • @Ookami Bubblesort, Heapsort, Quicksort... Understand their tradeoffs
  • @Ookami Teach programming to your kids
  • @Ookami Use a different SCM for a Project (Git/Mercurial)
  • @Ookami Set up a project with a Build Tool (Make, Rake, SBT, Ant, Maven)
  • @Ookami Publish an open source project - done
  • @Ookami Use a different IDE for a Project
  • @Ookami Determine the asymptotic running time of an algorithm
  • @Ookami Understand the halting problem
  • @Ookami Implement basic Sorting Algorithms
  • @Ookami Create and implement a dynamic program
  • @Ookami Learn about algorithms
  • @Ookami Set up a CI server
  • @Ookami Implement basic Graph algorithms: Prim, Kruskal, Dijkstra, A
  • @Ookami Proof a problem NP Complete
  • @Ookami Learn tools
  • @gavingmiller Publish a tutorial series
  • @gavingmiller Read the dragon book & write a compiler
  • @catwell Write an application in a concatenative language
  • @catwell Write a nontrivial game
  • @catwell Write a program in an imperative language
  • @catwell Write a data definition and data access layer for a complex domain
  • @blaix Use TextMate exclusively for a month
  • @blaix Write an operating system
  • @blaix Use XCode exclusively for a month
  • @blaix Write a program in Java
  • @blaix Use Windows exclusively for development for a month
  • @blaix Learn a variety of not commonly-used programming languages
  • @blaix Experience the ins and outs of programming in multiple fields
  • @blaix Write a web application with Rails
  • @blaix Write a program in C
  • @blaix Write a non-trivial program in Brainfuck
  • @blaix Use emacs exclusively for a month
  • @blaix Learn a variety of editors/IDEs
  • @blaix Write a program with Cocoa
  • @blaix Learn a variety of frameworks
  • @blaix Learn a variety of programming paradigms
  • @blaix Get comfortable in multiple operating systems
  • @blaix Write a program with OpenGL
  • @blaix Write a program with .Net
  • @blaix Write a program in PHP 5
  • @blaix Write a program in Perl
  • @blaix Learn a variety of commonly-used programming languages
  • @blaix Write a stand-alone program in Javascript
  • @blaix Write a program in Objective-C
  • @blaix Write a program with DirectX
  • @blaix Use Visual Studio exclusively for a month
  • @blaix Write an application in a strict design-by-contract language (e.g. Eiffel)
  • @blaix Write an application in a concatenative language (e.g. Joy)
  • @blaix Use netbeans exclusively for a month
  • @blaix Use OSX exclusively for development for a month
  • @blaix Use Linux exclusively for development for a month
  • @blaix Use vim exclusively for a month
  • @blaix Write a nontrivial game
  • @blaix Write a web application with Django
  • @blaix Write a program in Ruby
  • @blaix Write a program in Lua
  • @blaix Write a program in Python
  • @xconstruct Set up a program with a build tool (Make, Rake, SBT, Ant, Maven)
  • @xconstruct Learn to use a SQL database system
  • @xconstruct Try different widget toolkits (e.g. Qt, GTK, .Net)
  • @xconstruct Learn multiple multimedia APIs (OpenGL/OpenAL, SDL, DirectX)
  • @xconstruct Learn to use a NoSQL database system (e.g. MongoDB)
  • @xconstruct Implement basic Sorting Algorithms: Bubblesort, Heapsort, Quicksort... Understand their tradeoffs
  • @xconstruct Solve 20, 50, 100, ... problems of Project Euler
  • @xconstruct Determine the asymptotic running time of an algorithm
  • @xconstruct Understand the halting problem
  • @xconstruct Learn multiple version control systems (SVN, git, Bazaar, Mercurial)
  • @xconstruct Write an application in a concurrent programming language
  • @xconstruct Familiarize yourself with often used developer tools/libraries
  • @xconstruct Write a MVC app (e.g. Ruby on Rails, CakePHP
  • @xconstruct Create and implement a dynamic program
  • @xconstruct Learn about algorithms
  • @xconstruct Embed a scripting language in your app
  • @xconstruct Implement basic Graph algorithms: Prim, Kruskal, Dijkstra, A
  • @xconstruct Write a nontrivial game app
  • @xconstruct Write a MVC framework
  • @xconstruct Write an application using component-based design
  • @xconstruct Proof a problem NP Complete
  • @hexgnu Write a program in Cosmac assembly language
  • @dideler Write a program in Lisp (or CLisp)
  • @dideler Write a program in Java
  • @dideler Write a program in C
  • @dideler Write a program in Go
  • @dideler Build a website
  • @dideler Learn a variety of programming paradigms
  • @dideler Write a nontrivial script
  • @dideler Organize a speaker series
  • @dideler Write a program in Prolog
  • @dideler Write a program in Ruby
  • @dideler Write an application in UML
  • @dideler Write a program in Python
  • @dideler Learn a variety of programming languages
  • @fogus Write an application in a concatenative language
  • @fogus Write an application using a language supporting the Actor model
  • @fogus Write a nontrivial game
  • @fogus Write a program in an imperative language
  • @fogus Write a data definition and data access layer for a complex domain
  • @halyph Write a program in Clojure
  • @halyph Write a program in Scala
  • @halyph Write a program in JavaScript
  • @halyph Write a program in Groovy
  • @halyph Write an application in an imperative language
  • @darthsabbath Write an operating system
  • @darthsabbath Use a different SCM for a Project (Git/Mercurial)
  • @darthsabbath Set up a project with a Build Tool (Make, Rake, SBT, Ant, Maven)
  • @darthsabbath Use a different IDE for a Project
  • @darthsabbath Set up a CI server
  • @darthsabbath Read and understand "The art of computer programming"
  • @darthsabbath Write a compiler
  • @darthsabbath Learn tools
  • @alexmoore Write an application in Oz
  • @e3matheus Create a Blog
  • @e3matheus Be ambitious
  • @e3matheus Don't think a lot of yourself. Be humble.
  • @e3matheus Help others in StackOverflow
  • @e3matheus Create a ScreenCast
  • @e3matheus Do a lot of Pair Programming
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment