What It Takes

Matt Darby was recently asked what it takes to start a career in software development, and put together a thoughtful response. I think these are some really interesting questions, so I shamelessly stole took inspiration.

How good do you have to be?

"Good enough" is the vague answer, but this is a vague question. I'd say at a minimum this implies two things: one, that you know how to find answers. If I ask you to do something you've never done before (design a UI, write some SQL, run some business logic asynchronously in the background, whatever), you should at least be able to start researching how to do it.

Secondly, be better than you were yesterday. I've met a good number of folks who've learned enough Rails to get off the ground and stopped there. It's cool that you can use Rails scaffolding to get a basic CRUD app built, but there's a world of things to learn beyond that.

What is expected?

If you want a job doing web development, doing a CRUD webapp top to bottom is table stakes. This absolutely means:

  • HTML and CSS, because it's a web app
  • SQL for storing data in a database
  • Ruby and Rails (or some other framework or language)

That's the bare minimum. If I'm hiring a professional web developer, I'd also expect knowledge on:

  • Automated testing with something like RSpec
  • Version control with Git
  • Javascript, at least enough to use JQuery

No mastery necessary, but definitely have a working knowledge. I'm not great with CSS, but I know enough to get by, and I know how to learn more.

How did you get your first job?

I was persistent!

I saw a job ad on Craigslist that I liked -- no joke, it said that they bought lunch for all employees, every day. That was enough to hook me. I read their list of requirements, figured I met all the bullet points enough that I could get by, and sent in my résumé.

And I waited.

Two days later, I called the number on their website to make sure they got it. They did, and they were reviewing it.

And I waited.

The next week I still hadn't heard, so I called again. I was assured that they were still looking at candidates and that I hadn't been rejected.

And I waited.

A few days after that I was getting worried, so I emailed them and asked that, if I had been rejected, could I get some guidance on why?

Many weeks after my initial submission, they finally called me in for a pre-screening. This led to an interview, where I wrote some code and apparently impressed them enough to get offered a position.

Later, I would learn that they only gave me the pre-screen conversation so that I would stop bothering them! Had I not been relentless, they would have ignored my résumé and I would missed the best job I've ever had.