Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dwbutler/developer_reading_list

Good reads for developers
https://github.com/dwbutler/developer_reading_list

Last synced: about 1 month ago
JSON representation

Good reads for developers

Awesome Lists containing this project

README

        

Good Reads for Software Developers
==================================

General
-------

* [10 Articles Every Programmer Must Read](http://javarevisited.blogspot.com/2014/05/10-articles-every-programmer-must-read.html)
* [What Every Frontend Developer Should Know About Webpage Rendering](http://frontendbabel.info/articles/webpage-rendering-101/)

### Depressing Reading

* [Why Programming is Difficult](http://joearms.github.io/2014/02/07/why-programming-is-difficult.html)
* [The Long, Dismal History of Software Project Failure](http://www.codinghorror.com/blog/2006/05/the-long-dismal-history-of-software-project-failure.html)
* [Software Horror Stories](http://www.cs.tau.ac.il/~nachumd/horror.html)
* [The Taxonomy of Terrible Programmers](http://www.aaronstannard.com/the-taxonomy-of-terrible-programmers/)
* [Things You Should Never Do, Part I](http://www.joelonsoftware.com/articles/fog0000000069.html)
* [Why You Should (Almost) Never Rewrite Code – A Graphical Guide](http://vibratingmelon.com/2011/06/10/why-you-should-almost-never-rewrite-code-a-graphical-guide/)
* [Autopsy - Lessons from Failed Startups](http://autopsy.io/)

### Learning

* [Teach Yourself Programming in Ten Years](http://norvig.com/21-days.html)
* [Reading Ruby for Professional Development](http://www.sitepoint.com/reading-ruby-professional-development/)
* [Beef Up Your Skills with Code Exercise](http://flippinawesome.org/2014/05/12/beef-up-your-skills-with-code-exercise/)
* [Learn X in Y minutes](http://learnxinyminutes.com/)
* [Hyperpolyglot](http://hyperpolyglot.org/)
* [getAwesomeness()](http://getawesomeness.com/)

### Falsehoods Programmers Believe

* [Falsehoods Programmers Believe About Names](https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/)
* [Falsehoods Programmers Believe About Time](http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time)
* [Falsehoods Programmers Believe About Addresses](https://www.mjt.me.uk/posts/falsehoods-programmers-believe-about-addresses/)
* For More: [Awesome Falsehood](https://github.com/kdeldycke/awesome-falsehood)

Technical Skills
----------------

### Debugging

* [The Law of Leaky Abstractions](http://www.joelonsoftware.com/articles/LeakyAbstractions.html)
* [Debugging tips](http://www.yoda.arachsys.com/csharp/debugging.html)
* [The Magic of Strace](http://chadfowler.com/blog/2014/01/26/the-magic-of-strace)

### Architecture / Design

* [Requirements analysis (Wikipedia)](http://en.wikipedia.org/wiki/Requirements_analysis)
* [Modeling the Architecture of a Software System](http://msdn.microsoft.com/en-us/library/dd490886.aspx)
* [Agile Software Architecture Sketches and NoUML](http://www.infoq.com/articles/agile-software-architecture-sketches-NoUML)
* [Is Design Dead?](http://martinfowler.com/articles/designDead.html)
* [Don't Let Architecture Astronauts Scare You](http://www.joelonsoftware.com/articles/fog0000000018.html)
* [Micro Service Architecture](http://yobriefca.se/blog/2013/04/29/micro-service-architecture/)
* [Architecture is Dependency Management](http://clojurefun.wordpress.com/2012/12/21/architecture-is-dependency-management/)
* [HTTP API Design Guide](https://geemus.gitbooks.io/http-api-design/content/)

### Cloud Architecture

* [The Twelve-Factor App](http://12factor.net)
* [The Cost of Virtualization](http://queue.acm.org/detail.cfm?id=1348591)
* [AWS Tips I Wish I'd Known Before I Started](http://wblinks.com/notes/aws-tips-i-wish-id-known-before-i-started/)
* [Architecting for AWS](http://www.slideshare.net/AmazonWebServices/architecting-for-aws)

### Distributed Systems
* [The Fallacies of Distributed Computing Reborn: The Cloud Era](http://blog.newrelic.com/2011/01/06/the-fallacies-of-distributed-computing-reborn-the-cloud-era/)
* [The CAP FAQ](http://henryr.github.io/cap-faq/)
* [Distributed Systems and the End of the API](http://writings.quilt.org/2014/05/12/distributed-systems-and-the-end-of-the-api/)
* [List of distributed systems reading lists, plus miscellanea](https://gist.github.com/macintux/6227368)

### Design Patterns / Anti-Patterns

* [Software design pattern (Wikipedia)](http://en.wikipedia.org/wiki/Software_design_pattern)
* [Anti-pattern (Wikipedia)](http://en.wikipedia.org/wiki/Anti-pattern)
* [Software Design Patterns Index](http://c2.com/cgi/wiki?SoftwareDesignPatternsIndex)
* [Anti Patterns Catalog](http://c2.com/cgi/wiki?AntiPatternsCatalog)
* [The Daily WTF](http://thedailywtf.com)

### Performance / Optimization

* [High Scalability](http://highscalability.com/)
* [MySQL Performance Blog](http://www.mysqlperformanceblog.com/)
* [Six things I wish we had known about scaling](http://martin.kleppmann.com/2014/03/26/six-things-about-scaling.html)
* [7 Stages of Scaling Web Applications](http://www.slideshare.net/davemitz/7-stages-of-scaling-web-applications)
* [Big-O Algorithm Complexity Cheat Sheet](http://bigocheatsheet.com/)
* [Premature Optimization](http://c2.com/cgi/wiki?PrematureOptimization)
* [Load Testing: An Unexpected Journey](http://making.fiftythree.com/load-testing-an-unexpected-journey/)
* [How I Learned To Stop Worrying And Love Using A Lot Of Disk Space To Scale](http://highscalability.com/how-i-learned-stop-worrying-and-love-using-lot-disk-space-scale)

### Security

* [Open Web Application Security Project](https://www.owasp.org)
* [Common Weakness Enumeration](http://cwe.mitre.org/)
* [Rails' Insecure Defaults](http://blog.codeclimate.com/blog/2013/03/27/rails-insecure-defaults/)
* [Brakeman Scanner Warning Types](http://brakemanscanner.org/docs/warning_types/)
* [Ruby Security Have You Not!](https://hakiri.io/blog/ruby-security-have-you-not)

### Functional Programming

* [The Downfall of Imperative Programming](https://www.fpcomplete.com/business/blog/the-downfall-of-imperative-programming/)
* [Learn You a Haskell](http://learnyouahaskell.com/)
* [Real World Haskell](http://book.realworldhaskell.org/read/)
* [Professor Frisby's Mostly Adequate Guide to Functional Programming](https://drboolean.gitbooks.io/mostly-adequate-guide/)

Software Process
----------------

### Methodologies / Processes

* [List of software development philosophies (Wikipedia)](http://en.wikipedia.org/wiki/List_of_software_development_philosophies)
* [Programming principles (Wikipedia)](http://en.wikipedia.org/wiki/Category:Programming_principles)
* [The Agile Manifesto Principles](https://www.scrumalliance.org/community/articles/2013/november/the-agile-manifesto-principles-what-do-they-mean)
* [The Joel Test: 12 Steps to Better Code](http://www.joelonsoftware.com/articles/fog0000000043.html)
* [Complaint-Driven Development](http://www.codinghorror.com/blog/2014/02/complaint-driven-development.html)
* [100 Curse Free Lessons From Gordon Ramsay On Building Great
Software](http://highscalability.com/blog/2013/8/12/100-curse-free-lessons-from-gordon-ramsay-on-building-great.html)
* [Unblock! A Guide to the New Continuous Agile](http://www.continuousagile.com/unblock/)

### Code Quality

* [Software quality (Wikipedia)](http://en.wikipedia.org/wiki/Software_quality)
* [Code Smell](http://c2.com/cgi/wiki?CodeSmell)
* [Deciphering Ruby Code Metrics](http://blog.codeclimate.com/blog/2013/08/07/deciphering-ruby-code-metrics/)
* [Technical Debt](http://martinfowler.com/bliki/TechnicalDebt.html)
* [Good and Bad Technical Debt (and how TDD helps)](http://blog.crisp.se/2013/10/11/henrikkniberg/good-and-bad-technical-debt)
* [Simple and Easy: A Vocabulary to Describe Software Complexity](http://daemon.co.za/2014/03/simple-and-easy-vocabulary-to-describe-software-complexity)
* [The Elements of Style in Ruby: An Essay in N Parts](http://batsov.com/articles/2013/06/26/the-elements-of-style-in-ruby-an-essay-in-n-parts/)

### Testing

* [TDD is dead. Long live testing.](http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html)
* [On Unit Testing](https://medium.com/@kevincennis/on-unit-testing-1cc6798f81ee)

### Refactoring

* [SourceMaking - Refactoring](http://sourcemaking.com/refactoring)
* [7 Patterns to Refactor Fat ActiveRecord Models](http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/)
* [Hexagonal Refactoring of a Rails Controller](http://ostryalabs.com/blog/2012/11/27/hexagonal-refactoring-controller.html)
* [Tell, Don't Ask](http://pragprog.com/articles/tell-dont-ask)
* [Use An Ask, Don’t Tell Policy With Ruby](http://patshaughnessy.net/2014/2/10/use-an-ask-dont-tell-policy-with-ruby)
* [Mob Refactoring](http://blog.codeclimate.com/blog/2014/01/30/mob-refactoring/)
* [Why Ruby Class Methods Resist Refactoring](http://blog.codeclimate.com/blog/2012/11/14/why-ruby-class-methods-resist-refactoring/)
* [Refactoring Techniques](http://www.integralist.co.uk/posts/refactoring-techniques/)

### Configuration Management

* [Software Change Management (Dr. Dobbs)](http://www.drdobbs.com/software-change-management/184415707)
* [Semantic Versioning](http://semver.org/)
* [Dependency hell (Wikipedia)](http://en.wikipedia.org/wiki/Dependency_hell)
* [Useful Github Patterns](http://blog.quickpeople.co.uk/2013/07/10/useful-github-patterns/)

### Software Delivery
* [Continuous Integration](http://martinfowler.com/articles/continuousIntegration.html)
* [Continous Delivery](http://martinfowler.com/books/continuousDelivery.html)
* [The many reasons your deployment is racy](https://blog.rainforestqa.com/2014-09-19-the-many-reasons-your-deployment-is-racy/)

### Documentation

* [Painless Functional Specifications](http://www.joelonsoftware.com/articles/fog0000000036.html)
* [Code Comments are Lies](https://www.codeproject.com/Articles/872073/Code-Comments-are-Lies)

Soft Skills
-----------

### Project Management

* [Evidence Based Scheduling](http://www.joelonsoftware.com/items/2007/10/26.html)

### People Management

* [Your Most Important Skill: Empathy](http://chadfowler.com/blog/2014/01/19/empathy/)
* [44 engineering management lessons](http://www.defmacro.org/2014/10/03/engman.html)

### Organizational Structure

* [Super successful companies](http://blog.samaltman.com/super-successful-companies)
* [The Valve Handbook](http://www.valvesoftware.com/company/Valve_Handbook_LowRes.pdf)
* [Valve: How I Got Here, What It’s Like, and What I’m Doing](http://blogs.valvesoftware.com/abrash/valve-how-i-got-here-what-its-like-and-what-im-doing-2/)
* [Introducing Open Salaries at Buffer: Our Transparent Formula and All Individual Salaries](http://open.bufferapp.com/introducing-open-salaries-at-buffer-including-our-transparent-formula-and-all-individual-salaries/)

### Career Development

* [Don't Call Yourself A Programmer, And Other Career Advice](http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/)
* [What makes a Senior Developer](http://www.sowrey.org/2010/02/what-makes-a-senior-developer/)
* [This Is Professionalism](http://arches.io/2014/03/this-is-professionalism/)
* [The role of a hands-on software architect](http://www.codingthearchitecture.com/pages/book/role.html)
* [Developer Turned Manager](http://c2.com/cgi/wiki?DeveloperTurnedManager)

### Work/Life Balance

* [Killing the Crunch Mode Antipattern](http://chadfowler.com/blog/2014/01/22/the-crunch-mode-antipattern/)
* [Don't Be A Hero](https://al3x.net/2010/01/09/dont-be-a-hero.html)