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
  - Microservices
    
  
- 12 factor app
- The Unix Philosophy
Refactoring
Fun & Inspiring
  - The Tao of Programming: Love this.
- Unix Fu
- Why’s (Poignant) Guide To Ruby: Love this too.
- Ruby Rogues Picks
Code / Craftsmanship
  - Software Craftsmanship Manifesto: I often times identify more as a craftsman than I do an engineer.
- lowlevelprogramming-university
- Clean Code - A Handbook of Agile Software Craftsmanship
- Clean Architecture
- The Pragmatic Programmer
- 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
  - Culture and Organizational Resources
- Agile Manifesto: It amazes me how many people claim to know “Agile”, but have never actually read this.
- Principles behind the Agile Manifesto: The often ignored sub-page.
- 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!
  - Pair With Me - An app to connect people
with pair programming interests.
Tools for pair programming:
  - Cloud9 collaborative IDE
- VIM with TMUX
- Video chat such as Google Hangout, Slack, Hipchat, etc.
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
  - Netflix tech blog
- Facebook’s tech blog
- Amazon dev blog
- AWS blog
- Google dev blog
- Air BnB
- Heroku Blog
- Github
    
  
- Thoughbot
    
  
- OpenSource.com
Podcasts
My Languages of Interest
  - My primary languages are Ruby, Javascript, and Java.
- Wanting to become proficient in functional programming languages like Go,
Clojure, and Scala.
Relevance
Three things of importance worth mentioning:
  - Work with technology that you thoroughly enjoy.
- Use the right tools for the job.
- 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
  - Ruby: The most enjoyable language I’ve had the pleasure of working with.
- Node: Also a refreshingly fun language to build with.
- VIM: High learning curve, but once you setup your
dotfiles setup right for your
preferences, VIM is very rewarding.
TK
Industry Standards & Emergence
Lanugages
Resources to help learn languages:
License
This website is licensed under the MIT license © 2019 Matthew L.
Simpson | FAQ