This gist descended from a blog post and made specific to my interests and accomplishments. Original Blog post
-
-
Save Nzen/2584199 to your computer and use it in GitHub Desktop.
Programming Achievements: How to Level Up as a Developer
Learn a variety of programming paradigms:
Write an application in an imperative language: C++, Oberon'7, DWrite an application in an object-oriented language: Java, SmalltalkWrite an application in a dynamic language: Python, RubyWrite an application with a query language: SQL, Tutorial D- Write an application in a functional language: Clojure, Sml, Haskell
- Write an application with aspect oriented components: AspectJ
- Write a program in assembly language: Pep8, MIPS, Dcpu10
- Write an application in a prototype-based language: Javascript, Io
- Write an application in a logic programming language: Prolog
- Write an application in a concatenative language: Forth
- Write an application using a language supporting the Actor model: Erlang, Scala
- Write an application in a design-by-contract language: Eiffel
Enhance your understanding of the building blocks that we use as developers:
- Write a simple compiler: Basic
- Write a B-tree database: SimpleDB or MicroBase
- Write a networking client
- Write a toy operating system
- Write a device driver
- Write a baysean spam filter
- Write an application that provides a plugin model
Learn a variety of editors/IDEs:
Use Visual Studio exclusively for a monthUse Eclipse exclusively for a month- Use emacs exclusively for a month
- Use IDLE exclusively for a month
- Use XCode exclusively for a month
Enlighten yourself with koans, katas, and the wisdom of ages:
- Complete five code katas
- Complete the programming koans for a language that you want to learn
- Contribute a literate program
- Read SICP and complete all the exercises
- Attend a code retreat
Program in the open:
- Contribute to an open source project
- Have a patch accepted
- Earn commit rights on a significant open source project
- Gather a following on my own open source project
Learn by teaching others:
- Present a lightning talk
- Present at a local user group
- Publish a tutorial
- Publish a constructive code review of an open source project
Experience the ins and outs of programming for different platforms:
- Write a nontrivial desktop app
- Write a nontrivial web app
- Write a nontrivial mobile app
- Write a nontrivial game
- Write an embedded app
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment