Skip to content

Instantly share code, notes, and snippets.

@kyokpae
Forked from jasonrudolph/about.md
Last active October 30, 2017 20:11
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kyokpae/3814843 to your computer and use it in GitHub Desktop.
Save kyokpae/3814843 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

  1. Select a particular experience to pursue.
  2. Pursue that experience to completion. (Achievement unlocked!)
  3. Reflect on that experience. Really soak it in. Maybe a blog post would be in order?
  4. Return to Step 1, this time selecting a new experience.

This gist is a fork of this other gist which is itself a fork of a gist from this blog post. And the introductions come from yet another gist.

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 using template metaprogramming
  • Write an application in a strict design-by-contract language (e.g. D or Eiffel)

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
  • Write an application for massively parallel architecture (e.g. CUDA)

Learn a variety of frameworks:

  • Write a program with .Net
  • Write a program with OpenGL
  • Write a program with DirectX
  • Write a program with Cocoa

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 file-system
  • Write a B-tree database
  • Wrap an existing library to provide a better (more pleasant) user experience
  • Write a library
  • Write an application or framework that provides a plugin model
  • Write a testing framework
  • Write a programming language
  • Write a distributed system
  • Write an operating system
  • Learn Java in and out JLS7 notes

Enlighten yourself with koans, katas, and the wisdom of ages:

Go through: By going through I mean reading, completing all the examples and exercises at minimum as well as at least attempting to provide proof of the presented theorems.

Read and review great papers from the field of Computer Science:

Read and review papers about Google technologies:

Read and review articles:

Read and reflect on:

Program in the open:

  • Contribute to an open source project
  • ✔ Have a patch accepted guava, node-covershot, socketstream
  • 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment