Skip to content

Instantly share code, notes, and snippets.

@SaurabhGoyal SaurabhGoyal/about.md forked from catwell/about.md
Last active Jun 17, 2019

Embed
What would you like to do?
Programming Achievements: How to Level Up as a Developer

Programming Achievements: How to Level Up as a Developer

This gist is part of a blog post. Check it out at:

http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer

Steps

  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.

Conventions for this fork:

  • done
  • todo
  • In Bold - currently doing
  • [-] probably never

Note:- Check out this blog post series I have started to track all the achievements and capture the learning from each of them.

Learn a variety of programming paradigms:

  • Write a program in assembly language - Blog post
  • Write a program in an imperative 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 a concatenative language
  • Write a data definition and data access layer for a complex domain
  • Write an application in a strict design-by-contract language (e.g. Eiffel)

Learn a variety of not commonly-used programming languages:

  • Write a non-trivial program in Brainfuck
  • Write a program in Lua

Learn a variety of editors/IDEs/tools:

  • Use vim exclusively for a month
  • Use tmux extensively for a month

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 a nontrivial game (fifa, chess, mmog(cs, dota) etc.)
  • 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 | Write a compiler for an existing 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
  • 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

Learn by building things:

  • Create and publish Alexa skill
  • Create and publish an Android app.
  • Create a collaborative platform (Based on Operational transform).
@SaurabhGoyal

This comment has been minimized.

Copy link
Owner Author

commented Jun 4, 2019

Check out below given blog post series I have started to track all the achievements and capture the learning from each of them.
http://saurabhgoyal.github.io/tech-blog/2019/05/30/levelling-up-as-developer.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.