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