Two years ago I switched careers from animation to programming. I talked about my first week's of bootcamp experience in my first post on this blog but never really put the whole story anywhere. It was a pretty non-traditional trajectory, which is all the rage these days, so I thought I might write it up and see if anyone gets anything out of it. Inspiration or entertainment or whatever.

Layoffs

I had been working in VFX and animation for 10 years when I got laid off from my job at DreamWorks Animation. Technically I wasn't laid off, the Bay Area facility was shut down and I had a choice to move to headquarters in LA. But I had just bought a house, I had a son and was expecting a second one, and my family and friends lived in the Bay Area. My grandchild was so attached to his grandparents, and vice versa, I couldn't think of separating them.

Also the animation industry was becoming a bad place to make a living, with only a handful of opportunities in the Bay Area and a lot of jobs moving out of the country. In order to keep my family together in the Bay Area, I had to find another career entirely. To make the amount of money I needed, and guarantee a lot of opportunities in the Bay Area, software was pretty much the only option.

I was very sad for about a week and then I got to work.

Applying To Bootcamp

People argue a lot about whether bootcamps are worth it or if you can save the money and learn everything you need to know on your own. In my case, I was already 4 months pregnant so time was of the essence. The big drawback of learning on your own is time. You need to figure out what you need to learn (design your curriculum) as well as actually learn it. It is really handy to pay someone to research what sorts of things employers want you to learn, and set up a schedule for you to learn the most important of those things in 12 weeks. If you don't have any time pressure, of course you can do all that yourself, with some trial and error.

Anyway, I had time pressure. I looked around at a few bootcamps (Hackbright, Dev Bootcamp, General Assembly, and Hack Reactor) and learned enough Ruby and/or JavaScript to apply. I was leaning toward Hack Reactor for a couple of reasons:

  1. They taught JavaScript, which I was told has the most opportunities,
  2. They claimed to not be a "0-60 bootcamp" but a "20-120" bootcamp. They expected you to learn to a certain level on your own before starting, and you'd end up more advanced. The first part is easy to do on your own (just fundamentals - not a lot of decisions or industry knowledge needed) and is not worth paying for.
  3. Looking around, it seemed like they had the happiest graduates, for whatever anecdotal evidence is worth.
  4. They had an $104K average salary for grads.
  5. They had a really low acceptance rate (3-6%) that made the high salary seem more realistic - if you only accept people you think will do well, it will be easier to get more of them hired.

It was good that they were my first choice because I failed to get into Hackbright and Dev Bootcamp anyway.

Preparing For Bootcamp

A big selling point of bootcamps is them saying they can take someone who barely knew what a computer was and turn them into a 1337 h4x0r in 3 months. And there were people in my program who had no programming experience at all, and did great. This was not me.

The exciting version of my story was that I was a simple animator that learned to program in 3 months but actually I had done a lot of programming in my life, in fits and starts. My parents got a computer when I was little and I did some BASIC on it before getting bored, they sent me to a computer camp once, they made me take C classes at the community college and take some part-time CS classes at the local state university while I was working at my first job in biotech. At that job, I learned VBA while messing with Excel spreadsheets to make my job easier, and built a PHP forum for my weird internet friends to hang out on, and when I got into animation later, I learned to write scripts in MEL and Python to rig skeletons and manipulate ASCII files that defined characters and scenes.

All that, and figuring out callbacks and async on my own (required for the Hack Reactor application interview) was still an uphill battle. I can't imagine what it was like for my classmates that had never programmed before. Hats off to them.

So one common theme you might see above is that I kept starting to learn different technologies and then just quit. Nowhere during all that time did I get the idea that I could end up building something useful (not just a hobby or demo) and long-lasting with programming, that would be challenging and rewarding. Scripting and making toy projects was fun but messy and very one-off, and building real products seemed very corporate and repetitive and boring. My mom worked on a payroll database. That did not sound like an exciting thing to wake up to everyday. I think it might be a failure in the computer education system or just computer industry marketing to show the public exactly what the work is like. I might do a separate post on this later, I have thoughts.

Anyway, once I actually started working in JavaScript, before I even started building any apps or pages, I started to really dig it. Our first assignments were just rewriting Underscore/Lodash functions and working out "toy problems" (interview-type algorithms), and figuring out the most clever and interesting solutions was a really cool puzzle.

Once I started building visible projects (chess demos, Twitter clones, Chrome extensions), I started getting really hooked because the possibilites of what I could build seemed endless. My whole mindset was way different from when I was doing the C class where I had to write some data structure and just output it as text in the console or whatever.

Doing Bootcamp

The bootcamp itself was a really great experience too. I did the remote program, which saved me having to to commute in to San Francisco every day, and since the program was 6 days a week, 11 hours a day, that was a big relief for an increasingly pregnant woman.

Lectures were pre-recorded videos but we had live instructors holding online "town halls" for us to discuss the topic and ask questions. We did pair programming with remote tools. Our instructors were really cool and knowledgeable dudes with industry experience and extremely helpful attitudes. Every morning we'd start out with a "toy problem" that we'd work on our own, and then come together as a group to hear an instructor go through some solutions. Some people dreaded them but I usually loved it, there was usually some clever solution and it was like a game trying to figure it out.

The other great thing was that only 6 weeks (half the course) was a strict curriculum, and the second half was all project-based. The first project was a solo MVP, then a greenfield project with a team, then a legacy project improving on one of the other team's greenfield projects, then a final thesis project where you tried to do the most wow thing you could.

Job Hunting

By the time I graduated, I had about one month left til the baby was due, so I really didn't have time to waste. My job coach (they assign you a job coach, she was really great) suggested I apply to as many companies as possible in 2 weeks, because after that the time frame would be too tight for the interview process. The average grad was being advised to send out 5 applications a day, which was already pretty tough, what with having to research the company and write a customized cover letter, while also updating your website and working on more demo projects and hopefully doing interviews for companies you'd applied to earlier. She suggested I apply to 10.

By the end of the process I think I'd sent out 72 applications, which wasn't too bad. I got about 20 phone interviews and scheduled maybe 5 onsite interviews, and had to cut some others short because I ran out of time.

I wasn't sure when or how to tell companies I was 8 months pregnant, so I looked around and found a little bit of advice. They suggested not to mention it on the phone, since it was weird to bring up out of nowhere, and instead just make a friendly reference to it right away when arriving at an onsite so people knew it was okay to talk about it and I wasn't trying to ignore it.

There was one onsite where I may possibly have been turned away for being pregnant. I had a phone interview with both the recruiter and the hiring manager and then got an onsite scheduled. When I arrived, my first interview was with a team member, who ended by saying, "You know a lot for someone so new," and went to go get the next person. I realized I had forgotten my laptop in the car and was going to go get it, so I did that, and when I got back, the hiring manager was there and said they weren't going to continue the interview because he didn't realize I was so new, and didn't have any experience, and they were looking for someone more experienced, which was odd, because it was right there on my resume, and I'd talked to both him and the recruiter on the phone first. Oh well, who can say.

I had a couple of balls in the air when I got my first offer, from Pepperdata, a small startup in Sunnyvale. I liked everybody I talked to there, the work sounded interesting, it seemed like a good opportunity to learn, the pay was good, and most importantly, the baby was due in two weeks, so I took the offer. I said sorry to a bunch of other companies where I was in the middle or beginning of the interview process (I think it was Babylist, Netflix, Twitter, PayPal, Craigslist, Google and Lyft in order of most advanced to just starting).

Working

I've been at Pepperdata for about two years. It's been really cool, they were really supportive about me pushing my start date out three months and the majority of people (including managers) have young kids, so everybody's very understanding about taking time off, working from home, etc.

In addition, being at a small startup means you get to dabble in a lot of roles, so while at a big company I might just do front-end on a specific part of a big app, here I get to do front end, design and build new features and pages from scratch, mess around with the back end, and learn about very not-front-end technology like Spark.

And I guess everybody says this, but I feel like everyone I work with is super smart and I have a lot to learn from them.