A little less than a year ago, I decided that the philosophy professor scam was too risky for my wife and I. Instead, I decided to pursue a career in app development (and maybe do a tech startup). About 10 months after that decision, I got two internships at two companies as an Android Developer.¹ Hopefully, one of these internships will turn in to a full-time gig (and I have some reason to think that this will happen). At this point, I think its safe to say that I have successfully broken into a mobile dev career with a master’s degree in a philosophy. What follows is a combination of programming resources and advice that helped me pull this off. I’m hoping that other non-traditional hackers like me will find these resources useful, but before I get in to that, a disclaimer:
Breaking into a mobile dev career may not be as easy for others as it has been for me. Orlando’s tech scene is growing crazy fast, so its possible that luck was the primary factor that contributed to success in snagging a mobile dev internship.
With that said, let’s get the advice/resources:
First, I want to say a little about my weekly time commitment to making the transition from a philosophy-focused career to a career in mobile development. I spent about 40 hours a week for about 8 weeks of the summer learning to code. After the summer, I had to calm down a bit because I was finishing up my master’s degree and prepping to get married. For three months, I probably only managed 10-15 hours a week of coding. After the wedding, I worked about 55 hours a week for about 3 weeks before I finished the app that landed me a seat in some interview rooms. I wish I could give you an exact hour count on how long I spent a la rescuetime, but I can’t because I’m not a premium user.²
Learning to code isnt too hard because there are a ton of resources. Here are some resources that I found helpful:
raywenderlich.com - This is awesome if you want to learn iOS dev specifically. They have some really basic tutorials for teaching you how to program too.
Coding together - Stanfords itunesU course on iphone/ipad dev (I would wait on this unless you are already familiar with object oriented programming.)
vogella.com - Android development tutorials
Stackoverflow - a site for asking any programming questions. There’s a bunch of ridiculously smart/nice people who will help you with your questions. If you create an account, let me know you username so that I can keep up with any questions you have and potentially answer them.
Codeschool - another awesome hands-on resource for learning programming, but it costs ya money.
Pluralsight - site full of video lectures/tutorials on all sorts of programming topics. cost money. I’ve used it a little. Its less interactive than, say, CodeSchool.
HackerSchool - free coding school in NY. The school connects students with employers.
CodePath - similar to HackerSchool, but in CA
If you find yourself wanting to punt a dog at some point while you’re learning how to code, that’s how I felt too. It doesn’t mean you aren’t cut out for it. A buddy of mine says programming is 10% intelligence, 90% patience. That sounds about right to me.
In addition to learning how to code, you’ll also want to learn how to use git. Here is a nice tutorial that’ll get you started. Don’t get too caught up in all the advanced stuff. Just know how to add, commit, push, pull, merge, and reset.
After you feel like you have a decent grasp on android or iOS, I’d start working on building an app. Here are some things to keep in mind when selecting a project:
Make sure your project shows that you know how to do network operations and how to persist data on your platform.
Make sure your project looks fairly polished in terms of the UI design. Here’s the project that got me talking with potential employers. No need to pay umpteen million dollars on photoshop. I used inkscape to make my graphics.
Make sure your project utilizes new APIs or technologies. This will come in handy when its time to network and show off your app. In my experience, event organizers are especially anxious to have demos of apps that use the latest APIs.
After you’ve built your project, you’re ready to start networking and looking for a job. I spent very little time searching for jobs online. In fact, I wasn’t even looking for a job when I was approached by my current supervisors. Instead, I attended meetups in my area 2-4 times a month. I also attended an event called “Startup Weekend,” and I made some really good contacts there. Finally, I had pretty good luck with “head hunters” from companies like TEKSystems. Eventually, I was able to present my app at one of the local meetups, and that’s what got my foot in the door at these internships.
Interestingly, no one seemed to care that I didn’t have a degree in computer science. Once I showed them an app that worked, they were interested. I told them straight up that I didn’t have a degree, but that I had taken a few computer science courses in high school, a math class in which we used Matlab, one Comp Sci course in mobile UI design last semester, and that I had recently been taking advantage of a lot of resources online to help me learn. That seemed good enough.
Hopefully, people reading this will be as lucky as I have been. Although I was initially worried that I would hate my life once I gave up my dream of becoming a philosophy professor, I’ve been having a good time. I love my two internships, and I’m looking forward to working at one of these companies for a while.
Feel free to drop me a line if you have any questions.
The app that got me interview at companies was something that I built 6 months after starting to learn to program. That’s why the title is “How to break into a mobile dev career in 10 months or less.”
If you decided to try to break into a mobile dev career, consider keeping track of how long it takes you with RescueTime. I’d be interested to know the exact number.