Learn a variety of 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 ✓
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 an 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