A Reading Companion to Caleb Doxsey’s Book on Golang

Maybe you’ve heard of golang (henceforth Go): a Google-born, concurrency-friendly, statically typed language with a growing community of devotees. Although the size of the language’s collection of syntax pales in comparison next to, say, Ruby’s, Go also handles a few key programming concepts in ways that differ from the FP and OOP languages we’re used to so that a seemingly simple question like “Is Go object oriented?” takes 2,505 words to answer.

I began learning Go in preparation for contributing to Diego. One of the first and most comprehensive resources I came across, aside from the Go documentation itself, was a free online manual called An Introduction to Programming in Go by Caleb Doxsey. The book turned out to be an excellent starting point for learning the language. That said, I found myself skimming some chapters, rereading others, and seeking outside resources as I went along. In this post, I’ll use Caleb’s book as the cornerstone of a suggested curriculum for programmers who would like to pick up Go as an additional language.

Continue reading “A Reading Companion to Caleb Doxsey’s Book on Golang”

Learning Java from TDD by Kent Beck

I’ve just finished my second read-through of Test Driven Development by Kent Beck (thank you to Austin at Pivotal for loaning it to me!). Even on the second read, I must liken my experience of reading it to that of watching this lightsaber battle:

It’s fascinating and mesmerizing, and people who clearly know exactly what they are doing make lightspeed decisions back to back to back directly before my eyes. I watch and rewatch with a sense of awe, hoping that I, too, can one day make the split-second design decisions that Beck makes with such ease in both Java and Python. And, like anyone who has attempted to learn to reenact the above lightsaber battle, I found myself often pausing and rereading Beck’s examples in an effort to break them down and understand what, why, and how.

Continue reading “Learning Java from TDD by Kent Beck”

DCamp Code Retreat: Lessons Learned

Ruby DCamp begins with a code retreat: that is, over the course of a day, each developer rotates through pairing with six other developers to program Conway’s Game of Life. Between each session, all of the code must be deleted, and everyone must start fresh at the beginning of the next round. Some rounds have interesting or silly constraints to push the devs outside their comfort zones. It’s a great exercise in meeting new people and learning more about Ruby.

Though I did start fresh from session to session (Evan, I promise), I also took screenshots of the code from each of my pairing sessions. In this post, I’ll walk through five of those sessions and share the lessons that I learned from my pair partners.

Continue reading “DCamp Code Retreat: Lessons Learned”

Pairing with the Pros: A Day at Pivotal Labs

“Yes, mom. I go there and I code with them. Yes, all day. That’s how it works.”

My mother didn’t completely understand my enthusiasm to spend a day in harness at Pivotal Labs, but she seemed willing to accept my reasoning: namely, that pair programming for that much time with more senior developers to myself would allow me to learn a whole lot of stuff. And it did, in everything from Java to TDD to software design. Here are a few of the choicest lessons I got to learn as a pretend-pivot-for-the-day.

Continue reading “Pairing with the Pros: A Day at Pivotal Labs”

OpenGov Hack Night: Dan Platt and Craig Booth on Chicago Crime Stories

Tonight at OpenGov Hack Night in 1871, Dan Platt and Craig Booth of Narrative Science came in to give us a tour of ‘Chicago Crime Stories,’ which, as described on the EventBrite Description, is:

an application utilizing Chicago open data to produce narrative on crime in any Chicago neighborhood.

The app takes mountains of Data about Chicago crime and presents a story based on a specific neighborhood, which you can specify on the homepage.

Continue reading “OpenGov Hack Night: Dan Platt and Craig Booth on Chicago Crime Stories”

Sean Griffin’s Functional Web Talk, Plus Further Reading

For Thursday’s last talk at Windy City Rails, Sean Griffin (the guy to talk to about the problem you ran into with Rails 4.2 beta, by the way) discussed “The Functional Web: How Functional Programming Concepts Could Improve Rails.” The talk centered mainly on the lack of concurrency in Rails. It’s a problem that I’m sure has produced or would produce an interesting discussion over drinks with Brian Shirai, our ambassador at the conference for Rubinius X, which, ICYMI, is trying to fix that (though in a decidedly object-oriented way).

Maybe we didn’t get all the jokes in the talk (sorry Sean), but it still left my interest piqued: Sean introduced to me a discussion in Ruby to which I had had little exposure before. TO write effectively about it, I had to look some stuff up. So, I figured I’d pass those resources on to you.

Continue reading “Sean Griffin’s Functional Web Talk, Plus Further Reading”

Rubinius X: Everything you wish Ruby could do?

This morning at Windy City Rails, Brian Shirai of Enova gave an excellent talk about Rubinius X, a language platform that extends the Ruby language. Rubinius X aims to, as Brian put it this January:

explore and address the many deficiencies in Ruby that continue to drive developers and businesses to other languages like Go, Clojure, and Node.js.

Sometimes at Meetups or in co-working spaces around Chicago, I’ll hear the word Rubinius tossed around as a newfangled thing—and because of that reputation, a thing that some developers haven’t prioritized learning and using. This evidences the fact that, to modernize a language, it’s not just the language itself that needs an upgrade: the developers who use the language also need resources to upgrade their understanding of the modernized language.

Continue reading “Rubinius X: Everything you wish Ruby could do?”