Today our guest blogger is Jeff Baird. Jeff is a Ruby on Rails developer at Medivo.com. You can find Jeff hacking at http://github.com/jeffreybaird and documenting the process at http://learnwithjeff.com. Follow Jeff on Twitter @Jeffrey_Baird.
So the month of June came and went, and so did July. A lot has happened, but I wasn’t able to complete my goals.
I did, however, make huge strides in my programming skills — so huge, in fact, that I was hired as a junior developer at Medivo!
This post is about how I got hired for my dream job with less than six months of programming experience.
Learning to Program
Work your ass off:
This isn’t how to fake your way into a position. It is how I got real results in a short amount of time.
I was, however, in a unique position. I didn’t have a job, I was only taking one class and I had fallen in love with programming.
So, in order to make the kind of strides I made, expect to spend at least 10 hours a day, six days a week dedicated to programming activities.
Read a shit ton:
The Pragmatic Programmers is now your best friend. If you are learning Ruby, get the Ruby 1.9 manual, Learn to Program, and get their Pragmatic studios learning ruby course (It is $200 but worth every cent). Start with the Pragmatic studios video course, and after about five lessons, start step two of my process while continuing to work on the videos.
Join your local ruby group:
This is a must. If you ignore everything else I say, still join your local meetup group.
This is imperative for three main reasons: First, the people you meet may become your employers, or they might introduce you to your future employers. Second, you will be around the people that have the jobs you want. Listen to them, jot down notes about the things they say, and if you don’t understand, then go research it. Last, if you show passion, you will likely find enthusiastic mentors from this group of people. I would not have made it as far as I have without Gavin Stark, Aubrey Goodman and the rest of the Tampa ruby brigade.
Write a ton of code:
There are no shortcuts, you must write code, and a lot of it. It doesn’t have to be good code, but you must write it. If you look at it and think, “boy, this is shitty,” document the code and explain what you were thinking.
Make everything public:
This is an important aspect of writing a ton of code. If you keep it to yourself, it can be as shitty as you want. I find that if its public, every line of code has to be defendable, even if your reasoning is flawed. It is easier to adjust how you do things if you know why you did it in the first place.
Get a GitHub account, learn git like a boss, make every repo public.
Blog about your challenges:
You will face challenges just like everyone else. Blog about them incessantly. You can’t get any better unless you are asking for help. Also, having a record of your progress will come into handy later when you are trying to get that job.
Make sure you also blog about your successes. When you get something right, especially early on, it feels like the most epic of wins. Tell everyone about how awesome it feels and how you did it.
Getting The Job
So now you know a little programming. Don’t wait to get to a point where you feel skilled enough to get a job, because you will be waiting a long time. There is a desperate need for developers, and you are doing a great disservice to yourself and to the community. By learning on the job, you will give yourself a much more focused learning environment. However, here are a few things that will make the search go a little smoother.
Learn to speak like a programmer:
You’ll get a little of this from your reading and from your meetup groups, but there is more you can do. First, listen to related podcasts, I recommend every episode of Ruby Rogues, next subscribe to Rails Casts and Destroy all Software two great programming screen casts.
Some of what is discussed will go right over your head. That is okay. The point of this is to learn how developers speak. When you interview this will be an important skill.
Cast a wide net:
I got my job by sending out this email to the NYC Ruby community:
I am a (relatively new) self-taught programmer moving to NYC from Tampa, FL at the end of July. Tampa’s awesome Ruby community inspired me to learn Ruby as my first language, and I’m excited to get involved with the New York City Ruby community.
I am graduating in a few weeks with a degree in business and entrepreneurship from the University of South Florida but found my passion, programming, while I was hiring a developer for one of my businesses.
I am looking for an internship/apprenticeship/junior programming position open in the area. If anyone has or knows of such a position, I would love to meet in June when I am in town for GoRuCo.
You can see where I am with my skills on GitHub, and I blog about my learning at learnwithjeff.com. Any feedback or advice is greatly appreciated!
I look forward to meeting some of you and getting involved with the New York City Ruby Community.
I got 40+ responses in 18 hours. I also found every NYC ruby shop I could and read about them.
Next, I made a list of my top 10 companies and I worked my ass off to get interviews with all of them. I also stayed open to a few more pending discussions with the people on the team.
Don’t underestimate your value:
When I started this search I thought I would be scrubbing toilets in exchange for nightly code reviews. While that determination was probably a good thing, the market is currently in favor of devs looking for work. You may be a n00b, but don’t underestimate your value.
So to sum up:
Work hard, write a lot of code, be transparent and be enthusiastic.
In February 2012 I had never written a line of code. But, as of July 11, 2012 I am employed as a full-time Ruby Developer. You can do it too.