Skip to content

Instantly share code, notes, and snippets.

@tylerwalters
Forked from jasonrudolph/about.md
Last active December 9, 2016 20:25
Show Gist options
  • Save tylerwalters/c31f8cd6ac5b8878ad2924e3efe05242 to your computer and use it in GitHub Desktop.
Save tylerwalters/c31f8cd6ac5b8878ad2924e3efe05242 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
  • Write an application in a functional language
  • Write an application in an object-oriented language (PHP)
  • Write an application in a prototype-based language (JavaScript)
  • Write an application in a logic programming language
  • Write an application in a concatenative language
  • Write an application using the Actor model

Experience the ins and outs of programming for different platforms:

  • Write a nontrivial web app (various)
  • Write a nontrivial desktop app
  • Write a nontrivial mobile app
  • Write a nontrivial game
  • Write an embedded app
  • Write a realtime system

Learn a variety of programming languages:

  • Write an application in JavaScript (various)
  • Write an application in PHP (client applications at Cyberitas)
  • Write an application in Go
  • Write an application in Rust
  • Write an application in Clojure
  • Write an application in Elixir
  • Write an application in C#

Learn significant frontend frameworks:

  • Write an application with Angular 2
  • Write an application with React/Redux
  • Write an application with Vue.js

Learn significant backend frameworks:

  • Write an application with .NET (C#)
  • Write an application with Phoenix (Elixir)

Get comfortable in a variety of IDEs/text editors:

  • Use vim exclusively for a month
  • Use emacs exclusively for a month
  • Use IntelliJ exclusively for a month
  • Use VS Code exclusively for a month
  • Use Visual Studio exclusively for a month

Get comfortable in the major operating systems:

  • Use OSX exclusively for development for a month
  • Use Linux exclusively for development for a month
  • Use Windows exclusively for development for a month

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
  • Write an application or framework that provides a plugin model
  • Write a testing framework
  • Write a programming language
  • Write an operating system
  • Write a game engine

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

Gain a formal computer science education:

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
  • Contribute to a standard

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

Get your hands dirty with hardware:

  • Write some code for a single-board computing system
  • Write a hardware emulator
  • Build that same CPU from discrete parts
  • Build a small machine around your CPU
  • Write a program for your machine
  • Build a robot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment