Go to file
2016-06-17 17:04:18 +02:00
feature-flags.md Update TOC 2016-02-16 15:27:07 +01:00
README.md Add a couple things 2016-06-17 17:04:18 +02:00

Table of Contents

Professional Programming

Give me six hours to chop down a tree and I will spend the first four sharpening the axe. (Abraham Lincoln)

A collection of full-stack resources for programmers.

The goal of this page is to make you a more proficient developer. You'll find only resources that I've found truly inspiring, or that have been become timeless classics.

Must read books

I've found these books incredibly inspiring:

Must-read articles

Things to do

Attitude & habits

Coding

Incident response (outages, firefighting)

Interviewing

Managing the database

Reading

  • Papers we love: papers from the computer science community to read and discuss. Can be a good source of inspiration of solving your design problems.

Releasing & deploying

Testing

Writing for performance

Things to know

List of things to know

Know your algorithm and data structures

Let's be honest: algo can be a pretty dry topic. This quota question lists some funnier learning alternative, including:

Know your concepts

Know your editor

Know your database

Know your dev environment

Tools

Know your shell

Resources

Know your webdesign

Know your dotfiles

Articles

Know your git

Know how to debug

Know how to design

I highly recommend reading The Non-Designer's Design Book. This is a pretty short book that will give you some very actionable design advices.

Know how to architect systems

Know your programming language

This is language-specific, for instance, checkout my professional Python education doc.

I'd recommend learning:

  • At least one dynamic language (Python, Ruby, JavaScript, etc.). Pretty useful for quick one-off automation scripts, and fastest to write for interviews.
  • At least one compiled language (Java, C, C++, etc.)
  • At least one more recent language to see where the industry is going (as of writing, Go, Swift, Rust, etc.)
  • At least one language that has first-class support for functional programming (Haskell, Scala, etc.)

Know your design patterns and anti-patterns

Here's a list of good books:

I maintain a list of antipatterns on another repo. This is a highly recommended read.