---
title: Climbing Back up the Mountain
teaser:
tags: design,apprenticeship
author: Steve Hickey
published_on: 2011-11-04
---

Today is the end of my fourth week as a Design Apprentice here at thoughtbot and
it's been pretty crazy so far. Before I got started I was excited to start
filling in all the minor gaps in my knowledge. My first week was spent looking
at documentation and demos for new tools and languages and running through
tutorials. It was exciting stuff, and all seemed pretty straightforward. All I
had to do was jump onto a project and I'd be contributing in no time. I was
confident that I could go from Photoshop jockey to front-end guru in a matter of
days.

Then I started writing code that was actually intended for release to a client's
product. The panic set in pretty quickly. The "minor gaps" were quickly revealed
to be "huge gaping chasms of inexperience." I had worked with <abbr
title="HyperText Markup Language">HTML</abbr> and <abbr title="Cascading Style
Sheets">CSS</abbr> plenty of times before, but the pace was leisurely, the
deadlines few and far between, the complexity very low. Now I would go from
discussing a new feature in the morning to the expectation of having it complete
by lunch.

This was a pretty big wake up call for me. At my previous job I was considered
the design team's authoritative source of development knowledge. Questions came
to me first and my answers were accepted as absolute truth. On the rare occasion
that the designers were expected to write code (the horror!) the task would be
assigned to me. I was pretty comfortable on the top of my mountain, so to be
body-slammed off of it so effortlessly was a serious bruise to my ego.

It's been two more weeks since then. Things have gotten better. I'm not blazing
fast, and I don't always do things perfectly the first time, but my confidence
is back (tempered with a good dose of humility). I've learned a few important
things about tools and process during this time. If you're an apprentice, or a
designer that's new to the expectation of delivering front-end code, hopefully
this will be of some benefit to you.

## Vim

Vim will look clunky to you if you come from a background similar to mine. A few
years of Dreamweaver, the eventual move to a better piece of software like Coda
or Espresso, and then this? You want me to work in a text-based interface with a
complete lack of familiar keyboard commands? It will seem insane, but there are
some huge benefits and you should stick it out. Once you start to become
familiar with it, the potential for amazing speed will become apparent. The hard
part is making your hands learn all the new movements and commands. Once your
muscle memory starts to kick in things will become faster. I wouldn't say I'm
great with Vim yet, but I'm at least as fast as I was in Espresso, and working
hard to improve.

It's important to note that I work in an office of Vim users. It makes sense for
me to use it and I have a great support and learning network. If everyone in
your office uses TextMate, or Espresso, or something else, you should probably
use that too so that everyone's on the same page.

## Sass

[Sass](http://sass-lang.com/ "Sass") is amazing. If you know anything about
<abbr title="Cascading Style Sheets">CSS</abbr>, just reading their
documentation ought to get your blood rushing. My favorite part is the ability
to nest selectors, which makes it incredibly easy to target elements correctly.
Add in variables and mixins and you've got a very powerful extension to CSS.

If you want a set of great mixins, allow me to humbly suggest thoughtbot's
[Bourbon](https://github.com/thoughtbot/bourbon "Bourbon").

## Ruby on Rails

This was the hardest part for me to adapt to. I'm used to working on static
sites, so finding where everything was located in the Rails framework was
intimidating at first. Luckily, I get to attend workshops (for free, it's a
great perk) at thoughtbot and our [Intro to Ruby on
Rails](http://workshops.thoughtbot.com/sections/31-intro-to-ruby-and-rails
"Intro to Ruby on Rails") workshop was incredibly helpful in teaching me to
navigate an application.

## Code/Design Reviews

Have someone else look at your work. A lot. More experienced people will be able
to point out what you're doing wrong and what you could be doing better. It's
important to correct these behaviors before they become habits. Don't be timid
about offering your own feedback either. Design is often a collaborative
process, and talking about your ideas usually results in better work.

But what if you're the only designer at your job, or a freelancer? Start by
posting your work on Twitter or Facebook and asking other designers for some
feedback. I've found that many people are willing to take the time to send you a
short review. Dribbble can be another great place to get input.

## Google

You can almost always find answers to your problems by searching for them
online. The odds of encountering an issue that somebody else hasn't run into and
solved before are incredibly low. And in our industry we're lucky to have a lot
of knowledgeable peers who enjoy writing about their solutions.

## You will improve

Most importantly, try to stay positive. You'll have ups and downs, successes and
failures, but as long as you're moving forward you'll be ok. I'm lucky to have
people at thoughtbot who are committed to making me a better designer and a
better front-end developer. Try to find people like that for yourself, either in
your workplace or online. We've got a great community full of intelligent,
helpful people. Take advantage of it.
