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 Commodore 64 asm
Experience the ins and outs of programming for different platforms:
Write a nontrivial web app
Write a nontrivial desktop app
- Write a nontrivial mobile app
- Write an embedded app
Write a realtime system
Enhance your 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
Enlighten yourself 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