18/33

by Matt Cholick

I've completed another class as of this week. 18 of 33 credits into my Master's. I'm far enough along now that I'm able to plan out the remainder of my coursework semester by semester. Of my remaining credits, 9 will be in implementation projects. Project work is always valuable; that kind of activity is where I learn the most. Another 3 credits will be in a course that looks pretty interesting. The rest of my degree should just fly by; July of 2012 will arrive in a heartbeat.

I didn't learn a lot in this semester's course. I picked up a few small things, but the work mostly covered material I already knew. It's tricky trying to choose courses from a one paragraph description. I want to learn things relevant to what I do that don't cover material I already know. This is difficult when graduate coursework selection here is so limited.

A light semester is ok, though, when I can make use of the extra time. I think I have this semester. I embraced and explored three pretty useful technologies: Git, Groovy, and Gradle.

I absolutely love Git. Loving one's source control system might seem like a strange thing, but that probably just speaks to the problems with less modern tools. Git fundamentally changes a developer's relationship with source code. It empowers devs to embrace change instead of minimize it. The tool becomes a collaborative partner in development. Git meets the criteria for a revolutionary change in thinking: I couldn't ask for it because I didn't even understand that I was missing what I gives me.

Groovy is another slick technology. It's a language that makes development fun again. I wasn't doing much personal dev just because Java cant be frustrating in many ways. The language hasn't embraced new concepts quickly enough for me. I really don't want to completely abandon Java for my own dev, though, because it's what I work on all week. Even if it's not the most fun tool to use, I've gained so much expertise and continue to do so daily. I want to leverage that skill. Enter Groovy. Groovy is Java with 10 years of hindsight. It's syntax is clearer, cleaner, more concise, and more modern. It's a language that values my time. At the same time, though, it can leverage the entire existing Java ecosystem of libraries and tools.

Gradle is the third thing I've learned to use this semester. It's an extremely powerful build tool. Maven enforces convention beyond what makes sense to me. It doesn't give me enough flexibility and I fee like I'm often fighting with the tool. This post sums things up pretty well. Builds with Gradle are extremely flexible and maintainable, and I'm happy to have it in my personal technology stack.

And now it's time summer and Android development.