Coffee n' Coke

A journal written by @coffeencoke which includes notes on software development and product design.

Software Programming Resources

Feel free to share resources you are learning from with me, I am eager to learn of new sources of inspiration and knowledge.

General Learning

Software & Service Design

  1. Microservices
  2. 12 factor app
  3. The Unix Philosophy

Refactoring

Fun & Inspiring

  1. The Tao of Programming: Love this.
  2. Unix Fu
  3. Why’s (Poignant) Guide To Ruby: Love this too.
  4. Ruby Rogues Picks

Code / Craftsmanship

  1. Software Craftsmanship Manifesto: I often times identify more as a craftsman than I do an engineer.
  2. lowlevelprogramming-university
  3. Clean Code - A Handbook of Agile Software Craftsmanship
  4. Clean Architecture
  5. The Pragmatic Programmer
  6. The Clean Coder
    • Developer Playbook - A place to organize style guides, best practices, tools, and techniques for Stanford University’s Digital Library Systems & Services Group.

Principles & Process

  1. Culture and Organizational Resources
  2. Agile Manifesto: It amazes me how many people claim to know “Agile”, but have never actually read this.
  3. Principles behind the Agile Manifesto: The often ignored sub-page.
  4. Kanban

Pair Programming

Pair programming is one of the most rewarding learning methods I’ve experienced. Because of this, I’ve listed a few pair programming resources below. If you’ve never pair programmed, you should give it a try!

Tools for pair programming:

Jeff Dickey from Heroku wrote a great article about How to Pair Program. I strongly encourage reading this before pair programming yourself, even if you have plenty of pair programming experience, it’s a very good refresher.

People

Companies

  1. Netflix tech blog
  2. Facebook’s tech blog
  3. Amazon dev blog
  4. AWS blog
  5. Google dev blog
  6. Air BnB
  7. Heroku Blog
  8. Github
  9. Thoughbot
  10. OpenSource.com

Podcasts

My Languages of Interest

Relevance

Three things of importance worth mentioning:

  1. Work with technology that you thoroughly enjoy.
  2. Use the right tools for the job.
  3. Be aware of industry standards and emerging technologies available.

Below are resources to help understand which tech I find most enjoyable, a matrix of tools to help decide what to use for a given use case, and sources to learn about standard and emerging tech.

Enjoyable Tech

Tools Matrix

TK

Industry Standards & Emergence

Lanugages

Resources to help learn languages:

License

This website is licensed under the MIT license © 2019 Matthew L. Simpson | FAQ