Ah, it’s that time again. In 1 day, I start again as a beginner. This time, it’s in an attempt to learn Ruby on Rails programming in the span of 10 weeks. The Fall 2012 cohort has 60 students, some of whom have prior programming experience.
Some days, some of us–especially those with no programming experience–get worried and think we are behind the rest of the students. Jesse Farmer, founder of Everlane and one of the instructors at Dev Bootcamp, put it well (bolded emphasis mine):
Some questions you might be asking yourselves at this point…Am I behind? Should I be preparing more? Will I be ready?Those questions are healthy as long as “Will I be ready?” doesn’t become “There’s no way in heck I’m ready” and “Am I behind?” doesn’t become “I’m so far behind I’ll never catch up.”
That mindset reminds me of when I was on the triathlon team in college. In my second year competing, there was a “mentor-mentee” matching program, wherein newcomers to the team would be assigned to a more senior athlete for mentoring. Of the entire season, it turned out that the most exciting and anxiety-inducing day was likely an athlete’s first race. Sometimes on race day, my mentees would come to me and lament about how much “less talented” they are than the faster athletes, or say something like:
All I want is to not come in last.
As if being a beginner were a bad thing. I beg to differ. In my days of being dead last on my high school cross country team, there were some great perks. After I became a faster runner, I came to relish them when I started cycling as a beginner, triathlon as a beginner, and now, programming as a beginner. Come to think of it, there are at least 6 advantages to be found in any endeavor as a beginner.
1) Lots of room for improvement. Even more motivating to compare the progress of others and notice how much more you’re improving from all that hard (and smart!) work.
2) No external pressure to perform. The pressure we place on ourselves is high enough. Imagine the added stressors of a team, coach, family and friends that burdens the elite athlete.
3) It’s easier to learn proper technique as a novice, and it will make you fitter in the process. Two birds, one stone. The talented must slow down before seeing gains from clean form.
4) They won’t mind if you miss your goal time. By “they”, I mean the team, your friends, other people.
5) You have no responsibility to respond to competitors in the field, or your performance in relation to others. You have only the responsibility of your own performance.
6) Usually the personal achievement is more than enough for satisfaction, although there is less public visibility when you meet your goals. Fortunately, your mood is less dependent on others’ affirmation of how well you did, because any improvement is a step forward. Also, you don’t get in the situation where you can’t decide how happy to be because you achieved a “personal record” time but didn’t win the race.
Of the 60 incoming Dev Bootcamp students, I likely have less programming experience than most. According to my 24/7 time tracking system which records everything I do everyday in increments of 15 minutes, I spent:
9.25 hours in 2011 learning HTML and CSS
48 hours in the summer of 2012 doing Ruby tutorials
…throughout exactly 16 days (57.25 hours cumulative) of touching code, ever, in my life.
And it’s going to be great. For the beginner, every minute is a challenge, every challenge overcome is an accomplishment, and there will be nothing holding you back from going through hell and high water, doing the best possible work and learning as much as possible.