|
|
@@ -0,0 +1,52 @@ |
|
|
**Learn a variety of [programming paradigms](http://en.wikipedia.org/wiki/Programming_paradigm "Programming paradigm - Wikipedia"):** |
|
|
|
|
|
* 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 |
|
|
|
|
|
**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:** |
|
|
|
|
|
* Complete five [code katas](http://en.wikipedia.org/wiki/Kata_\(programming\) "Kata (programming) - Wikipedia") |
|
|
* Complete the [programming koans](http://sett.ociweb.com/sett/settJan2011.html "Learning Programming Languages with Koans - Object Computing, Inc.") for a language that you want to learn |
|
|
* Attend a [code retreat](http://coderetreat.com/ "Code Retreat with Corey Haines") |
|
|
* Read [SICP](http://mitpress.mit.edu/sicp/ "SICP web site") and complete all the exercises |
|
|
|
|
|
**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](http://thinkrelevance.com/blog/2007/04/03/twir.html "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 |