Coder Social home page Coder Social logo

reading_list's Introduction

Reading List

Inspired by cory schires reading-list (which was in itself inspired by Apprenticeship Patterns).

The goals of this list are:

  • Keep an active list of hte books that I have read, partially read, and plan to read
  • Write a brief description of what I got out of and learned from each book, both as a way to solidify my understanding and as a book review excerpt
  • Provide a central point for any blog posts I write that further expand upon my thoughts related to each book
  • Provide a publicy-available datastore for my notes related to some of the books I read

I will include anything going forward that fits the desired subjects, but may add something I've read previously if it's particularly on-point or if I found it invaluable.

Books I've Read##

####Getting Started with Twitter Flight

I'm excited to use Flight.js in something more than a toy app, and look forward to making it my go-to for organizing jQuery-based client-side code. I think it's a great option for when a full-on single-page app is overkill. It results in easily testable, separate components that communicate via event triggering and listening - basically PubSub.

Sadly this book is the only one on the subject so far. As soon as there's anything else, I'd recommend you not waste your time here. There's simply way too many mistakes to make this anything but a frustrating read. The example app that the book has the reader build seems like it was written by at least two different authors. Components are referred to by different names, the directory structure is referred to differently, and there are numerous mistakes in the usage of multiple APIs, including Flight.js itself. Add to that a shockingly high number of syntax mistakes (and not just missing semicolons - ones that actually break the app), and it's all too clear that there was next to no editorial effort put into this book.

I wish I could recommend something better. In the mean time, if you have easy access to a copy of the book, it's probably worth a skim to get the basic idea of Flight, but you're likely much better off just reading the docs and looking at some online examples.


####Agile Web Development with Rails 4 Sam Ruby####

Despite having little to do with Agile development, and being primarily aimed at programmers who are still new to Rails, I was pleasantly surprised by this book. It does a wonderful job of introducing the Rails way of doing things. Given the importance of convention in Rails (and the immense pain that can result when fighting that convention), I found it very valuable to learn some conventions I did not previously know.

I'd recommend this book to anyone who works in Rails and has at any point read or written code that felt more difficult than it should be (so basically everyone who uses Rails). Most especially, every contractor and consultant who works with Rails should read this.


####Eloquent Ruby Russ Olsen####

A brillaint resource for anyone who is new to Ruby (though I think it's helpful to be somewhat familiar with programming, and ideally have played around with Ruby at least a bit). Eloquent Ruby is not an exercises or project-based book, but rather a wonderfully detailed explanation of all the unique, programmer-friendly features that are core to being a strong Rubyist.

Please see further thoughts (and my detailed notes) at dmragone.com


####Practical Object-Oriented Design in Ruby: An Agile Primer Sandi Metz ####

Sandi's a wonderfully person who is either brillaint or a snake-oil-salesperson. It may well simply depend on whether you agree with what she has to say. Coming from Smalltalk, she's a strong believer in the power of Object-Oriented-Design to simplify and strengthen code. She explains OOD as best applied in Ruby brillaintly, and is only outdone by her talks. Watch her at RailsConf 2013, where she describes in great detail how to test in Ruby. And then read this if you care to write good ruby code.


####The Power of Habit: Why We Do What We Do in Life and Business Charles Duhigg####

I greatly enjoyed reading this book. It felt all strangely familiar (I believe I'd read various excerpts, reviews, and perhaps even some coverage of the various stufies and anecdotes used by Duhigg), but great fun to read regardless. It's an easy read, though if you're crunched for time, the value decreases in the last two sections, with the last one being a bit off-point and out-of-place.

I wrote a brief post about Habit at dmragone.com


####Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman Dave Hoover & Adewale Oshineye ####

I found the design patterns format of context/problem/solution/action made my traditional note-taking habits difficult. I didn't want to include all the details, but felt I could not adequately describe the solutions without the details. I eventually succumbed to summarize (poorly) each of the apprenticeship patterns.

A lot of the book read like smart common sense, at least for me. Though I found myself agreeing wiht it completely, the situationality and somewhat obviousness of the advice did not blow me away. However, the specificity of the 'Action' sections were quite nice. Adequately described, they are each actionable (and helpful in addressing the problem).


####Growing Object-Oriented Software, Guided by Tests Steve Freeman & Nat Price ####

This book is filled with wisdom about how to write good object-oriented, test-driven code. Heavy emphasis on readability and using tests as a design element, not just for code accuracy, results in (what are to me at least) very impactful thoughts on how to approach development.

The only down-side of the book is the extensive example in the middle that is written in Java. I had no interest in learning Java in order to better read the examples, so instead relied on their descriptions of the project and how it demonstrates their system of development.

Thankfully the first two sections are well-condensed yet detailed descriptions of the theory, so I was able to get quite a lot out of it.

I highly recommend this to anyone who is intereted in TDD. This feels like the right way to do things.


####Programming Ruby 1.9: The Pragmatic Programmers' Guide Dave Thomas, Chad Fowler, Andy Hunt

This book is commonly referred to as 'Pickaxe', due to the cover art. As reference guide to all of Ruby's features, I don't think there's much better than this book. It covers most of (at least what I know) exists in Ruby, and provides enough information to get a sense as to what you can do.

Having already read Eloquent Ruby, however, I felt that this was more of a reference book than a helpful introduction to the language. I also preferred Russ Olsen's style to that of Pickaxe, and sometimes felt that the cursory-overview of some features wasn't worth the time it took to go into them at such a shallow level.


####Design Patterns in Ruby Russ Olsen

I loved Russ Olsen's "Eloquent Ruby", so no surprise that I greatly enjoyed Design Patterns in Ruby.

As a reference for applying some common design patterns to Ruby, it's a wonderful thing to have at hand. As an intro to how to think about design in the context of Ruby, it's a great read.


####JavaScript: The Good Parts Douglas Crockford

For anyone who's used JavaScript and found strange things occurring, this is an incredibly useful resource.

While I found the last few chapters more generally informative than specifically applicable, the first half of the book is a treasure trove of detail on how JavaScript works. Definitely worth reading.


####jQuery in Action Bear Bibeault & Yehuda Katz

I've written a bit of jQuery, but this was the first time I used a reference that was not the online docs. The version I read is from 2008 (the linked version is from 2010), so there was some outdated information, but it is still a useful introduction to the wonder of jQuery.

I read this in the course of one evening, so I skipped a couple of chapters, and am sure there's more in it than my notes reflect. I focused on understanding how JavaScript interacts with the DOM, how jQuery simplifies that, and using jQuery's AJAX functionality.


To Read

#####Secrets of the JavaScript Ninja

#####Learning JavaScript Design Patterns

#####Metaprogramming Ruby: Program Like the Ruby Pros

#####The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends

#####The Pragmatic Programmer: From Journeyman to Master

#####Crafting Rails Applications: Expert Practices for Everyday Rails Development

#####Beginning Unix (Programmer to Programmer)

#####Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages

#####Arduino: A Quick Start Guide

#####The Agile Samurai: How Agile Masters Deliver Great Software

#####Pragmatic Thinking and Learning: Refactor Your Wetware

reading_list's People

Contributors

davidragone avatar pcragone avatar

Watchers

James Cloos avatar Cy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.