The question of how people got into development and their first development jobs came up in a Denver based Slack group I belong to, and quickly became an interesting discussion that resonated with me. You can find a quite a few articles online about how to get your first developer position (usually in the format of in five/twelve easy steps!), but after seeing other people’s stories, it doesn’t look like many people actually fall into a cookie cutter path.
Given that the job searching is stressful/anxiety inducing for everyone, I figured I’d do a writeup on my own history leading up to becoming a professional software developer. This isn’t meant to be a how-to article, but rather one story out of millions. Things never work out as planned and everyone has their own challenges, but hopefully this will at least inspire a few folks to keep chugging along.
I graduated high school around the beginning of the recession (2006), and am from a city that was hit pretty hard (Fresno, CA, had just over 18% unemployment during the peak with roughly a million people in the county).
While a lot of people go straight from high school to a university to pursuit their degree, I ended up working various odd jobs since I was already living on my own, and didn’t have the money for university (financial aid wasn’t an option I qualified for despite not living at home, and I didn’t trust the student loan/debt system). Because of the competition at the time, you basically had to take any kind of work you could get. Looking back, I’ve grown to appreciate this, since it gave me insight into a variety of industries and people. I ended up working a lot of temp/seasonal jobs, always multiple at a time, from the standards of food service and retail, to temp work as a night security guard, seasonal produce inspection, night data entry for the IRS (there’s a huge office in Fresno for going through taxes), a call center (be nice to people on the phone, folks, this was definitely the worst gig), and I.T. for a state agency where I was laid off from twice because of state budget fluctuations. I even had a fairly long stint as an assistant zookeeper.
I did end up enrolling at the community college after high school since they were at least reasonably affordable for a couple classes at a time, and in my 18 year old mind, school was familiar and just seemed like what I was suppose to be doing. I had no idea what I actually wanted to do with my life, so I dabbled in a bit of everything, and kept going to school out of habit while I put money aside for transferring to the university. Luckily, I managed to stay in school for all but 1 semester, as I stopped attending after a layoff from my job with the State and a seasonal job ending during the same month. A couple failed classes may look bad on a transcript, but shit happens, and can be worked through.
Over my five years at the community college, I completed my general ed for transferring (a two year program over five, aww yeah), plus attended classes in a variety of trades because I was somewhat interested and had nothing else really going on, such as HVAC repair, auto mechanics, I.T. (including CCNA, A+, Network+ and Security+ certifications), web development, electrical systems, and plumbing. After five years, I had enough saved to transfer to the local university (little longer than planned after adjusting for costs that went up every year), and figured I’d go with computer science since I mostly fit the requirements (less calculus and physics than engineering? yes please) while having also liked my web development classes.
After jumping through the hoops/fees/bureaucracy of transferring, I ended up at Fresno State University with a 16 unit semester while working two jobs. Quickly figuring out that this was a lot harder than I was expecting to manage that amount of time, I planning to drop one of the jobs (at the time, doing “computer repair” for a big box electronics retail store known for their employees in blue shirts) and started looking for something on campus that I could do during the gaps in my day. I ended up getting incredibly lucky, as a job in I.T. as a student assistant had opened up at the university that happened to pay a whole dollar more than minimum wage (15 dollars after taxes more a week may not seem like a lot, but every little bit makes a difference :p). While still having my night job doing part time accounts receivable work for a small produce company, I ended up spending my non-class time during the day working for the university athletics program doing general I.T. work (lots of installing hardware and making scripts for imaging machines with Norton Ghost, plus setting up media and scoreboard equipment for home sporting events). This turned out to be even more of a blessing than expected, as I had a boss that was OK with doing homework/studying while watching loading bars or our time hanging out during football/basketball/baseball games in case something went wrong.
After about a while of automating everything under the sun via SCCM, Active Directory/Group Policy, and scripts, I ended up with enough free time during normal days to start learning things outside of the scope of classes. Since work had a bunch of Galaxy S phones that we were issuing out to coaches/staff, I “commandeered” (moved it to the very bottom of the extra inventory/loaner spreadsheet so I could keep it on shelf as long as possible. Luckily, the department switched to iPhones after a while, so my boss said to just keep it rather than sending it to recycle) one and started learning Android development while I was in the office.
I started by going through a few books cover-to-cover, such as Hello Android by Ed Burnette, Android Recipes: A Problem-Solution Approach by Dave Smith and Jeff Friesen (if any of you ever read this, I owe you a beer since I may or may not have come across your books as PDFs back in the day >.>), and Professional Android 4 Application Development by Reto Meier, as well as all of the official Android documentation that I had time for.
While I had gone through other programming books before, I actually had fun working through Android, so just kept going with it and progressed through more than one book on the topic.
After working through as many examples as I could using the old Android 2.2 phone and emulator (so mostly UI :)), I picked up a newer Android tablet and started working on every class project that I could with Android. This led to a slew of projects, such as games, chat apps, demo apps around threading, and a few random subject matter apps, like one for studying in a language class. None of them were particularly good, but they all were a learning experience.
In early 2013, I realized I was going to graduate in about a year and hadn’t actually done any development work outside of my side excursions, so I started looking for an internship or programming job. I started by looking locally, though this was a way bigger deal than I expected. While Fresno is currently trying to become a ‘tech city’, a few years ago tech was barely a blip on the map. To give you an idea, this is what the software section of Craigslist looks like now, years later (Dice is a similar story).
The closest of those to Fresno is about an hour away, which is on par with a few years ago. Seeing this, I also searched for jobs outside of the area by looking for companies I knew, taking notes on places via campus career fairs, and searching online for anything and everything that could be found online. I even managing to get internship interviews with Khan Academy and Scopely. My biggest issue with these was that I am an awful interviewer (my anxiety kicks in and I blank out on the most simple things. This coupled imposter syndrome will probably never go away, but that’s OK, just won’t ever work at places like Google :p Thanks brain), so those didn’t go past convincing a few people that they shouldn’t waste their time. This was probably the roughest phase of getting into development, as I just got a lot of replies consisting of “apply at this link”, “contact us in a few months!”, or someone simply dropping off from the conversation. Your email will probably look like this, especially once you hit the point of desperation where you apply to anything you can. The big take away here is it may seem like nothing is happening, and that’s alright.
After a lot of frustration, I ended up looking through the Android Market for apps related to university athletics programs and noticed that a few companies were producing the majority of the official apps, so I contacted each of them about the possibility of internships. This led to actually getting one reply from a company that wasn’t hiring for themselves, but was able to connect me to another company called Silver Chalice (and later, SportsLabs) in Boulder, Colorado, that may be interested. After a few emails back and forth, a Skype call was set up with a developer. While that interview went OK (definitely not great), they took a shot and offered me an internship at $15 an hour, which was way more than I was use to making back home.
This is where things got interesting, as I had never really heard of Boulder other than it was the city a couple characters moved to in The Office, knew nothing about Colorado other than it had mountains, and had no real plan of action about where I was going to live, but I accepted the job anyway and would figure it all out later. After some digging around, I found out a friend had an aunt and uncle living about an hour away from Boulder who would let me use a room for the summer in exchange for helping them with their house remodel. Since this seemed like a pretty sweet deal, I loaded up the car and drove the 18 hours from central California to the Denver area, determined to just make it work. Over the next few months, I got to work with some awesome developers (Mark and Kevin, you guys rock), learned way more than I could have imagined (tutorials teach you how to do things, experience teaches you that you’re doing it all wrong), and had a chance to visit an area I probably never would have before without that opportunity.
After the internship finished, I went back to Fresno to finish up my last two theory classes for my piece of paper, then contacted the developers to ask if they were hiring full time. Within a week I had plans to officially move out to Colorado, and the rest unfolded from there in a blink as the number of opportunities in this area are staggering. Since then I’ve written a development book, presented at conferences and events, worked on a lot of awesome projects, and have gotten the chance to help other folks wherever I can.
Long story short, in my case getting into development didn’t happen in a straight-forward or planned way. It happened with some risk taking, things just falling into place, a lot of good people willing to take a shot with a no-name aspiring developer starting out, and a ton of luck. Like any career, if it’s something you want to do, it can be insanely frustrating at times trying to get started, you’ll probably hit a lot of road blocks, and sometimes you’ll just want to give up on it. Just remember that your career path may take a while, but you just have to try to keep moving forward.