In December of 2018 I had just left a job with Teach for America as an 8th grade US History and Music teacher. I was making $40,000. I wasn’t able to continue teaching, and I didn’t have many other describable, lucrative skills. I had majored in Cultural Anthropology with minors in Spanish, International Studies, and Music Technology, without any relevant internship experience. Suffice to say, I was playing with toys my whole life until I found myself in a grown-up world without a real plan.
I wasn’t sure what to do next.
Fast forward to January of 2020, when I finally became an iOS developer at a tech startup, working on a bunch of interesting and beautiful iOS apps. I was offered $80,000. Exactly double my old salary, as well as free lunch, and WFH on Fridays. As I was shout-singing Congratulations by Post Malone on my drive back from the interview where I got my offer, 2020 was looking like my year (perhaps I was the only one who felt that way).
How I did it
I’m guessing there are people out there who want to know two things:
- Did I know any coding before?
- Did I go to a code bootcamp?
Yes, both of these questions will be answered.
First, you might be saying:
“Hold up, Dec 2018 — Jan 2020, that’s 13 months! ARGH. I’ve been clickbAITED AGAIN.”
no. That’s because it was February, 2019 that I had actually decided that I wanted to learn Swift, Xcode and be an iOS app developer.
That was because my dad told me I should learn how to build an app for his restaurants to do online ordering. (He does POS systems for restaurants.) I started learning with Swift Playgrounds, an iPad and Mac app meant to teach kids how to code using cute little characters that you control with Swift. After a bit, I started realizing that I would rather spend my time coding than playing Breath of the Wild. That’s when I knew this is what I wanted to do. It was possibly the first time in my life I definitely knew what job title I really wanted to go for. I knew it was a bit of a long shot, but I just thought if you could build the apps, why can’t they hire you?
Q1: My Prior Coding Experience
To answer Question 1: yes, I did have a little bit of coding experience prior. In my senior year of what I call playtime (apologies again to my dad’s bank account), I was interested in taking as many interesting classes as I could, seeing as I already finished my major, and — as you can see from my concentrations, I really love learning random things. I took Computer Science 111, and even put a bet with some friends that I could get an A in a class like this, after spending almost 4 years doing nothing but reading and writing. Lo and behold, I got a B+. I walked away with some basic understanding of Java, Object Oriented Programming, and still owe some of those friends KBBQ to this day…
How I Survived
After leaving my job, I did the classic “living in parents’ basement” trope for a while. Thankfully I was offered a part time job as a paralegal from a gracious friend of mine, and thankfully I had a roof to live under without paying any rent, something I know not everyone has the privilege of.
My Daily Schedule (Feb — May)
- A few sections of Swift Playgrounds, until I finished it.
- A few chapters of this free PDF by Apple: App Development with Swift
- A few episodes of Crash Course Computer Science
- Worked on a few personal app ideas (I built a small budgeting app)
- Worked on doing my dad’s apps for his restaurants.
- Maybe a section of Colt Steele’s Web Dev Bootcamp on Udemy
- Maybe some of Angela Yu’s iOS Bootcamp on Udemy
Q2: Did I go to a Code Bootcamp?
Sort of. I didn’t find too many in-person bootcamps that taught iOS in my area, but the one I did find was only around $2.5k (as opposed to somewhere between the usual $10–30k). It was taught by a school that was more-so focused on teaching adobe, design-related things, and I could tell the bootcamp didn’t have much refinement to the curriculum or structure. It was basically a night class, two nights a week, for the summer.
I would say about 70% of the material I had already learned online. What helped me most was having the teacher to help me build my first full-fledged app. I was working on this recipe app, and every time I got stuck to the point that I had exhausted all my online resources, I would bring it in to class and the teacher would solve my issue in a flash.
My Daily Schedule (Jun — Sep)
Someone I met through a networking community on facebook told me that my main focus is to build projects upon projects and show that I can do the job. So that was my focus throughout the summer: to finish my recipe app and put it on the app store.
My Daily Schedule (October)
After finishing my “bootcamp”, putting my recipe app on the app store, & refining my LinkedIn, AngelList, resumé and portfolio, I spent my days:
- Applying to jobs
- Studying Data Structures & Algorithms
- Doing leetcode questions
- Doing mock interviews on pramp.com
After having applied to about 150+ iOS dev jobs, getting about 6ish phone screenings, and only 2 onsite interviews, I started to reevaluate if I could do this, and what were the steps I needed to take. Clearly there was a gap between my current skills + experience, and what companies were looking for in a full-time employee.
This was at quite a low point in my life as my straining relationship with my father over my lack of employment had forced me out of my parents’ house. I was desperate.
I started thinking: at this point, I’d work for free. Then I realized, that that basically fits the description of an unpaid internship (even though it shouldn’t). I applied to about 12 iOS dev internships, got about 5 or 6 phone screenings, 2 onsite interviews, and 1 offer.
I was at an early stage tech startup with a cohort of 2 other interns. I basically soaked as much info as I could, — seeing as info was the only payment for my labor. I bothered my supervisor all day with questions on how to code things to be more readable, scalable, modular, and efficient. This was when I started going from learning how to code things to work, to how to code things to work well, as well as how to make the code more eloquent, and not spaghetti-like.
During my Time Interning, I:
- Took advice from my supervisor and went back and refactored my recipe app to better suit good code standards.
- Looked at job postings for jobs I wanted, took note of the bullet points of requirements, asked my supervisor if I could do those things, did them, and added them to my resumé.
Once I was halfway through the internship, I decided to try my hand at applying again, with a boosted resumé. I applied to a handful of companies, got 4 phone screens, 1 take-home project, 3 tech screenings, and an offer on the spot of my onsite.
They said they thought my code on github was very mature, taking note of those very practices I had learned from my internship. They also said that they saw the passion I put into my take-home project and knew that I had the mentality they were looking for.
And that’s it!
I don’t believe I was especially gifted or anything to have been able to do this. Nowadays with the right amount of guidance, discipline, resourcefulness, a decent head on your shoulders (at least be able to do some high school level math), and enough resources to hold you over (perhaps without pay for a short period), I really believe anyone could become a front-end developer, and work their way wherever in the software dev field!
For a more in-depth look at all the things I did, as well as my recommendations for anyone following the same path I did, I’m planning to put out another article soon, so stay tuned and feel free to follow my account for updates!
Also from me: