product designer, cyclist, armchair urbanist

I'm a Designer and I'm Learning Ruby

I recently took an apprenticeship position with the venerable Sparkbox. They're an incredible group of folks who work hard, love what they do, and give back tirelessly to the web industry. The second item of business for my apprenticeship (after spending a few days learning version control with Git and Github) was to learn the Ruby programming language.

A Dash of Helpful History

Now, lest you glaze over that last sentence and remain entirely unimpressed, here's a bit of history on the subject of me:

  • Drew drawings and painted paintings as a little kid
  • First did graphic design using a crappy Microsoft publisher tool I can't remember the name of (made an ad to sell puppies)
  • Studied "Graphic Commercial Art" at a career high school
  • Studied Fine Art in college – yes, painting and drawing
  • Started a graphic design company
  • Realized that the web existed and was amazing, so I stumbled through learning HTML and CSS

I digress. The brief history was given to show you that I'm just your average dude – more specifically, I'm just your average designer dude. I love designing stuff - arranging, organizing, communicating, beautifying. I'm right at home in Illustrator, Photoshop, or InDesign. I consume fonts like candy. I really enjoy Dribbble - sharing my illustration and branding work there is a real thrill. I'm a designer through and through.

Now That You're Thoroughly Disgusted With My Forthright Attitude

For some time after I "discovered" the web, I was incredibly intimidated by it. I realized that I could be a part of designing websites, but the thought of making them "clicky" was off limits for me. I had a friend who had the magical powers, so I designed something in Illustrator and had him code me up a portfolio site for my graphic design business.

As time passed, I realized that maintaining my hands-off relationship with the web was really holding me back. I began selling websites to my clients - I would design a complete system in Photoshop, then pass the designs off to a contractor to code them up for me. I didn't understand the development process – I concerned myself with the user experience and graphical elements of my sites.

I grew increasingly fascinated with the way web technology worked, however. I thought "wow, if so-and-so can build that stuff, I'm sure I can learn how to do it too!" So by golly, I did. I bought some HTML books, and studied up on the rhetoric. I browsed Smashing Magazine, 37Signals, and other sites at the recommendation of a friend, and slowly brought myself up to speed with the Who's Whos and the What's Whats of the industry from my quiet and lonely little home office of one.

Back to the Actual Reason You're Reading This Article

Before too long, I was coding up decent looking sites all by myself - from content strategy to design to development and Content Management System integration. That brings us right up to the present, wherein I jumped at the opportunity to work with the amazing Sparkbox guys for six months to learn their approach to responsive web design and development.

So What's Ruby and Why Am I Excited To Be Learning It?

Ruby is a programming language that lets you write code to tell your computer what to do. It was written by a really smart dude from Japan. It's a lot different than a markup language like HTML or a styling language like CSS - it's built to provide logic and flow instead of to primarily create visual experiences. It's really popular for creating web applications, especially since it's the foundation for a programming framework called Ruby on Rails.

I'm amazed and extremely excited to be learning it. Here's why:

  • I'm a visually oriented person. I always thought I was too "right brain" to learn a complex programming language. That might be true, but I'm learning it anyway.
  • It's not as hard to learn as I thought it would be. Don't get me wrong, there are days that I want to go home and weep in my bed because I feel so frustrated and confused about what I'm trying to learn. There are days I feel so discouraged about my (lack of) progress that I want to give up and go design puppy ads. But by and large, I'm not completely stumped. I'm picking things up. I'm getting a feel for the language. I'm starting to grasp the basic constructs of programming in general. I'm learning Ruby. This isn't because I'm unusually brilliant - I'm just determined! You could do the same.
  • I love building things. Becoming comfortable with programming languages like Ruby and Javascript will remove more barriers standing in the way of my desire to build. I'll feel more in control of my projects, have a clearer sense of the work required to make them run, and know what to do when things break.

I wrote this post mainly to encourage you (if you're a designer) to try to learn a programming language. It will make you a better designer in the long run. You don't have to worry about being the best programmer in the world - you just have to get started. You'll develop a deeper respect for programmers who are really good at their craft, you'll find that learning new technologies in the future becomes easier, and best of all, you'll be able to build stuff.