Skip to content

Instantly share code, notes, and snippets.

@davit-khaburdzania
Forked from blaix/about.md
Last active December 11, 2015 00:29
Show Gist options
  • Save davit-khaburdzania/4516833 to your computer and use it in GitHub Desktop.
Save davit-khaburdzania/4516833 to your computer and use it in GitHub Desktop.

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. To get the most out of each achievement, you owe it to yourself to pause and reflect on the experience before you move on to the next one. Introspect. Ask yourself what you learned. Take the time to write down those thoughts. And even better still, share them with someone else and see how your learnings compare to other people who've also earned this achievement.
  4. Return to Step 1, this time selecting a new experience.

Programming languages

  • Write a program in Ruby
  • Write a program in Python
  • Write a program in C
  • Write a program in C++
  • Write a program in Rust
  • Write a program in Go
  • Write a program in Erlang
  • Write a program in Java
  • Write a program in Swift
  • Write a program in Objective-C
  • Write a program in Shell
  • Write a program in Perl
  • Write a program in Lua
  • Write a program in smalltalk
  • Write a program in Lisp

Frameworks

  • Write a web application with Rails
  • Write a program with Sinatra
  • Write a web application with Revel(GO)
  • Write a web application with Django
  • Write a single page application in Angular.js
  • Write a single page application in Backbone.js
  • Write a program with OpenGL
  • Write a Game in WebGL
  • Write a program with Cocoa

editors/IDEs

  • Use vim exclusively for a month
  • write package for sublime-text
  • Use Textmate exclusively for a month
  • Use XCode exclusively for a month

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 in Forth
  • Write an application in a concatenative language (e.g. Joy)
  • Write an application in a strict design-by-contract language (e.g. Eiffel)

Projects

  • 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 simple git clone [link] (http://git-scm.com/book/en/v2)
  • Write simple web browser link
  • Write a text editor
  • Write a programming language
  • Write an operating system
  • Write a nontrivial web app
  • Write a nontrivial desktop app
  • Write a nontrivial mobile app
  • Write a nontrivial game
  • Write an embedded app
  • Write a realtime system

algorithms

  • String Algorithms
  • Sorting Algorithms
  • Data Structures
  • Graphs
  • Dynamic programming
  • Artificial Inteligance
  • Machine Learning

Math

  • Learn all about Algebra
  • Learn all about Geometry
  • Learn all about Trigonometry
  • Learn all about Calculus
  • Learn all about Probablity and Statistics
  • Learn all about Linear Algebra

Koans, katas, and the wisdom of ages

Books

  • The Pragmatic Programmer: From Journeyman to Master
  • Code Complete (2nd Ed)
  • Structure and Interpretation of Computer Programs
  • Design Patterns
  • Refactoring: Improving the Design of Existing Code
  • The Mythical Man-Month
  • 100 most influential programming books

Being 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 on open source project
  • Publish a constructive code review of an open source project
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment