coding

All it takes is about 300 lines of accidentally-deleted CSS before you say, “You know what? Maybe it’s time to get serious about version control.” Which means it’s time for the scary, scary command line. Terrifying for someone who hasn’t been living in it for a while.

But wait! A cursory Google search reveals that there are bunch of native Mac apps for Git! With beautiful GUIs! Clickable buttons! None of that scary $ nonsense!

It seems like a lifeline, a way in. An easier way to learn this monstrosity that is Git. I’ll dive into all that command line stuff later.

Except it doesn’t work that way.

Let’s take Tower, for instance. My goodness, is this a beautiful app. Just look at it!

Just the type of polish you’d expect from a best-in-class Mac app.

But… wait. What do those buttons mean? What are Push and Pull? What’s Commit mean? I have commitment issues… not gonna mess with that thing. And what are all those letters in colored boxes?

No matter how beautiful the app, you have to understand Git conceptually, or else it’s useless. You’re just pushing buttons.

Terminal-phobes: I know it’s scary, but you’re going to have to get your hands dirty sooner or later. You can’t hide behind a GUI forever.

Looking for a place to start? I've found both [Git Immersion](http://gitimmersion.com/) and the [Pro Git](http://git-scm.com/book) book to be super helpful.

Permalink | Published


I wrote about 50 lines of the jankiest JavaScript you’ll ever see last night. The code would be slaughtered in seconds on Stack Overflow. I probably could have done what I needed to do in about 10 lines if I planned it out and thought it through. But none of that matters for now. Know why?

Because it worked.

Sometimes it’s so easy to worry about finding the most elegant or efficient solution to a coding problem. There’s almost a Zen-like feeling of peace achieved when functions and arguments are stripped away, leaving you with script that’s as tight as a drum. Code Golf-worthy, even. And that’s great. Especially if you’re operating at scale.

But don’t let the paralysis of planning take over before you even get a working version of your code. You can always strip things out later, but you can never feel the joy of hitting command-R and seeing an animation ease in perfectly unless you dive right in and make a mess.

Permalink | Published