Skip to content

Instantly share code, notes, and snippets.

@nhashmi
Forked from jasonrudolph/about.md
Last active January 27, 2017 00:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nhashmi/f433b8d61dcd8a2d6651 to your computer and use it in GitHub Desktop.
Save nhashmi/f433b8d61dcd8a2d6651 to your computer and use it in GitHub Desktop.
Programming Achievements: How to Level Up as a Developer

Programming Achievements: How to Level Up as a Developer

This gist is a fork of Jason Rudolph's blog post on leveling up as a developer.

Quoting Jason Rudolph:

So it took a while, but I'm becoming more comfortable with the immeasurability of my pending goal: earning the rank of "really good > developer." If such a developer earns this distinction because of his experiences, then maybe we can still have a well-defined path marching in the general direction of "really good developer" and beyond. I suspect that path looks something like this:

  1. Identify the experiences that advance a person as a developer.
  2. Select a particular experience to pursue.
  3. Pursue that experience to completion. (Achievement unlocked!)
  4. Reflect on that experience. Really soak it in.
  5. Return to Step 2, this time selecting a new experience.
  • Current project(s)
  • completed projects

Learn a variety of programming paradigms:

  • Write a program in assembly language
  • Write an application in a functional language (Elixir)
  • Write an application in an object-oriented language (Ruby/Rails apps)
  • Write an application in a prototype-based language (JS apps)
  • 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:

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 Presentation on scraping data
  • 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment