I kind of didn't mean to go into development, which is how a lot of these stories start. I was a philosophy major finishing up school when I started learning Processing, a programming framework for building generative artwork and videos. Eventually I realized the programming part was rather enjoyable all on its own, so I went to Dev Bootcamp and spent 18 weeks learning Ruby. It was challenging, and I knew it was something I'd enjoy doing every day.
Then I just had to find a way to keep doing it.
How I found my first programming job
I found out about Table XI through Noel Rappin’s book, “Rails 4 Test Prescriptions.” It was the most practical and least dogmatic thing that I'd ever read about testing, and when I found out he was a senior developer at Table XI, I was really impressed and thought I’d check this place out.
Now I don’t even know why I did it, but I emailed Josh Golden, the founder of Table XI, and was just like, "Hi, can I work for you?" It seems crazy, but he invited me in for an interview. I didn’t mention reading the book — probably because I was afraid of seeming like a suck-up. But I did have a lot of questions about the theory and craft of writing nice software. And Josh had a lot to say, he was clearly an expert.
I was really impressed with Table XI from the start. When Josh talked about the company and technology, he was very humane, not detached or overly technical. I interviewed at a lot of places, and nowhere else had the same homey vibe or showed me the same respect as a brand-new programmer that Table XI did. My good impression of Table XI has still not faded.
Going from Dev Bootcamp to a real programming job
The first challenge was getting comfortable being the dumbest person in the room. I was the first brand-new developer Table XI had ever hired, and coming to work was like visiting a country where you only kind of speak the language. If you're surrounded by native speakers and you’re just starting, you're going to sound like a toddler. But you just have to do it!
It’s stressful, but you can’t pretend you’re not dumb. That was a big thing for me, just saying, "Actually, I don't understand this at all." And still there's stuff every day that I don’t know. That’s just the nature of development. As soon as you can admit that, you learn really quickly.
There were a few things I had just never experienced coming out of a programming bootcamp. A lot of technical things were new, from working on an actual deployment, how we manage our servers — those were things I didn’t do while I was learning. Figuring out how to navigate foreign code was also a really big thing. When you’re learning, you don’t usually work on existing code. With a real job, you have to be able to dive into a whole complicated code base and make changes without knowing all the ins and outs. I did lots of pair programming to begin with, and I learned a whole lot really fast. All of the sudden you're dealing with stuff that's a lot thornier than you'd deal with in a bootcamp.
Fortunately Table XI has a culture of doing strong code reviews to make sure any code that goes into a project is solid, way more so than other shops, I’m told. I remember at first feeling nervous about putting my code out there for review, but I began to see it as an opportunity. People would take a lot of time to review my code and say “Oh shit, this is a mistake. But it’s okay!”
The learning has been fun for me, and I'm glad that really hasn't ended. I'm a lot better at this now than when I showed up here, but there's still new stuff all the time. If there wasn't, I'd be bored. Now I keep asking to work with new frameworks or on a mobile project, anything I haven’t done. And Table XI has been really receptive to that, too.
Advice for other new programmers looking for jobs
I'm told that when I got to Table XI, they weren't exactly sure what to do with me. I started when the company was in the middle of big projects that I didn’t have any context on. It was tough to find ways I could help at first.
Then one day I had a breakthrough. I didn't have anything to work on, and I was like, “You know what, I'm just going to pick up a task that’s not assigned to me, I'm just going to do it!” It took me an hour to get together a pull request that consisted of one line of code. But it worked. That’s when I figured out you just have to grab stuff and show that you can do it. At least at Table XI — I don’t necessarily recommend this strategy for every job.
I liked being thrown into the mix, but now that Table XI is launching a formal apprentice program, new developers will have a little more structure. We’re assigning each apprentice two mentors within the company, other devs who can be responsible for making sure they’re doing alright and guide them in their learning. And we’re trying to have two apprentices at a time, so there will be somebody who’s in the same place.
We’re also going to have apprentices make the rounds through the whole company, working with devops, working with design, learning about project management. It makes a big difference to have the whole picture, instead of just being heads-down in code all the time. You can take on better ownership for the project as a whole.
My advice to new developers is always to get as much perspective as possible. I know most people say you should really try and master one thing at the start, but I disagree. I tried to learn a whole bunch of different frameworks and languages, and while I think it’s valuable to pick one thing you want to be an expert in, you should sample a bunch of stuff. It gives you an idea of all the ways different things work, so you're not just trapped in Ruby world.
With the new apprentices, I’m taking on the role of making sure they’re comfortable showing up on the first day, because even though I’ve been here 18 months, I have the best memory of what it’s like to be the new kid. We’ve already hired our first two apprentices, and I’m excited for them to get here. I got so much support from the people at Table XI, and I'm sure the next person who shows up will too.