Current in bold. Completed in strikethrough.
Learn a variety of commonly-used programming languages:
Write a program in Ruby
- Write a program in Python
Write a program in C
Write a program in C++
Write a program in Java
Write a program in Groovy
- Write a program in Objective-C
- Write a program in C#
- Write a program in PHP 5
- Write a program in Perl
Write a program in Javascript
- Write a program in Shell Script
Learn a variety of not commonly-used programming languages:
- Write a non-trivial program in Brainfuck
- Write a program in Lua
- Write a program in Scala
- Write a program in Clojure
- Write a program in Groovy++
Learn a variety of frameworks:
Write a web application with EJB/JSF
Write a web application with Rails
Write a web application with Grails
- Write a web application with Django
- Write a program with .Net
Write a program with OpenGL
- Write a program with DirectX
- Write a program with Cocoa
Learn the principles
Learn a variety of editors/IDEs:
- Use vim extensively for a month
- Use TextMate extensively for a month
- Use emacs extensively for a month
Use NetBeans extensively for a month
- Use Visual Studio extensively for a month
Use IntellijIDEA extensively for a month
Use Eclipse extensively for a month
Learn a variety of programming paradigms:
Write a program in assembly language
- 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
- Write an application in a concatenative language (e.g. Joy)
- Write an application in a strict design-by-contract language (e.g. Eiffel)
Learn more math and statistics
Learn more about AI/ML
- Read "Clever Algoriths"
- Read "Collective Intelligence"
- Read "Genetic Algorithms"
- Read "Paradigms of AI Programming"
- Read "AI: A Modern Approach"
- Write a simple game AI
- Write an NLP app
Get comfortable in multiple operating systems:
- Use OSX exclusively for development for a month
Use Linux exclusively for development for a month
Use Windows exclusively for development for a month
Experience the ins and outs of programming in multiple fields:
Write a nontrivial web app
- Write a nontrivial desktop app
- Write a nontrivial mobile app
- Write a nontrivial game
- Write an embedded app
- Write a realtime system
Enhance my understanding of the building blocks that we use as developers:
- Write a networking client (e.g., HTTP, FTP)
- Write a device driver
- Write a B-tree database
- Wrap an existing library to provide a better (more pleasant) user experience
- Write an application or framework that provides a plugin model
- Write a testing framework
- Write a programming language
- Write an operating system
Enlighten myself with koans, katas, and the wisdom of ages:
Program in the open:
- Contribute to an open source project
- Have a patch accepted
- Earn commit rights on a significant open source project
- Publish an open source project
- Perform a Refactotum of on open source project
Learn by teaching others:
Present a lightning talk
Present at a local user group
Present at a conference
Deliver a training course
Publish a tutorial
- Publish a constructive code review of an open source project
- Write a programming book
Read!