Career Change to iOS Developer

carbon.png

After 1,155 days of writing my first line of code in Swift, I was offered a job as an iOS Developer. 

That translates to a little over three years, which might be too long for some, and throughout that time I had heard I should be ‘job ready’ within six months to a year. For my own personal circumstances however, it was as long as it needed to be. 

As someone without a computer science, or even degree level background I thought i’d explain how I got to the offer and in the process hopefully provide some inspiration and gusto to others looking to do the same.

Hello World

In April 2018 I returned from a once in a lifetime trip to New Zealand, where my partner and I got married at no other than the Hobbiton Movie Set! Following such an amazing adventure, I decided it was time to focus on the next stage of my life, more specifically finding a career that I enjoyed and was passionate about.

At the time I was working for a company that I had been at since I “dropped out” of my degree level course of illustration many years before. 

I had always been interested in the idea of ‘coding’, and like many people my age I had dabbled in some HTML customising my MySpace page back in the mid 00’s. However, I had always thought that doing something like that professionally needed a strong mathematical and computer science background. 

By this point in my life I was deeply integrated into the Apple ecosystem, and would most definitely describe myself as an Apple ‘fanboy’. I had always kept up to date with WWDC, despite not being a developer and remembered Apple had released Swift, which had been described an ‘accessible’ entry into programming. 

So I thought I would give it a go! 

Swift Playgrounds for iPad with code on the left of the screen, and your character ‘Byte’ on the right.

Swift Playgrounds for iPad with code on the left of the screen, and your character ‘Byte’ on the right.

Playgrounds

The first thing I did was to download the Swift Playgrounds app for the iPad. 

The app teaches some basic programming concepts by gamifying problem solving as well as some of the core syntax required to write and understand Swift.

It is a really fun way to find out if programming is for you and the learning curve is nice and steady so you don’t ever feel too overwhelmed. 

By the time I had completed the challenges I was certain that this was something that I ‘could’ do, but I was confused on what to do next. 

It still seemed worlds apart from writing ‘moveForward()’ and seeing your little character ‘Byte’ move a few spaces to actually creating an app, so what would come next? 

Everyone Can Code!

After some research into what resources there were available, I swift-ly 🤦🏽‍♂️ landed on Apple’s own curriculum of books called “Everyone Can Code”*. 

Not only are these books available as free downloads from the Books app on any Apple device, they provide the learning material with corresponding ‘Teacher Guides’ as well as links to downloadable Xcode Swift Playground files to test your knowledge throughout the course of each chapter.

The ‘Fundamentals’ books focus on the basics of Swift, as well as getting you started on a few small things to build to keep the learning interesting and for you to see the fruits of your labour pretty quickly. 

As you progress through the courses, you will learn more complex principles, as well as some increasingly complicated projects, with more and more emphasis on working things out for yourself.  

I cannot recommend these books highly enough. I went through some of the basics at least twice, and to this day sometimes refer back to them for the odd complicated problem. 

*Now known as “Develop in Swift”

“Welcome to the App Store”

I’d then got to a point where I was comfortable with the basics of Swift, however, how could I translate what I had learned into a fully fleshed app?! 

By now i’d ingratiated myself with the iOS Developer community (of which I could write a whole other article on how fantastic it is!) and I had also been working my way through the list of fantastic Swift podcasts and YouTube creators. 

The general consensus from all of these helpful resources for new developers was the same - the best way to learn, was to build!👷🏼‍♂️

But what to build?! 

Like a lot of people, I obviously had an app idea that was sure to make me a millionaire 😂 but I knew it would be far too complicated and I didn’t want to start something that I’d likely give up on.

I decided if I focused on something I knew inside out, as well as something I found fun and interesting then I’d make sure I kept going when I found it tough. I settled on making a quiz, and not just any quiz, some might say… One quiz to rule them all, one quiz to find them, One quiz to bring them all, and in the darkness bind them! 🤓 

The confirmation e-mail I received on 14th December 2018 that confirmed ‘LotR Quiz’ had been approved for the App Store! 😆

The confirmation e-mail I received on 14th December 2018 that confirmed ‘LotR Quiz’ had been approved for the App Store! 😆

Thus my first app, ‘LotR Quiz’ was conceived! 

Of course, what this also meant was a rewatch of all three movies (extended editions naturally), so that I could create some challenging questions. 

I then began the steps of creating the app. I referred to other apps for inspiration, and slowly (very slowly!) but surely saw my vision come to life.

The intention when I started building was not to publish the app to the App Store, it was just to see what I could learn from the building process, what obstacles I’d need to overcome and how to build an iOS app. 

The more I progressed however, the more I felt the result was a product I could publish to the App Store. 

Therefore on 12th December 2018, I decided to publish it. 

I’m pretty sure I thought it would take a few minutes, ignorant of all of the other admin that needs to happen when publishing an app, as well as the Apple review process! 

Despite that, on 14th December 2018 I received an overwhelming message, “Welcome to the App Store.” 

I couldn’t believe that I’d managed to pull it off! 

Since then, the app has had thousands of downloads from across the world, as well as numerous updates, including some additional questions added from The Hobbit to celebrate the app’s 2 year birthday! 

I am super proud of that app, it’s not perfect by any means, but it’s done me really well and I have a great fondness for it. 

What about a ‘real’ app?

I absolutely knew by now that this was something I wanted to do as a career, and so thought about what steps would make sense to make myself employable as an iOS Developer.

It led me to think about what most apps on the App Store actually did and I kept coming back to the same thing. Network calls. 

Although LotR Quiz is a fun app, it was very limited in terms of technicality and it did not retrieve any data via a network, it was all very insular (you can read more about its shortcomings in a previous post I did here).

Some promo artwork I created for MyAdsense

Some promo artwork I created for MyAdsense

One of the things the LotR Quiz did do, was to present ads to the user and to provide those ads I used Google AdSense. Google also had an iOS app that I used to track the pennies I was making on a daily basis. 

It just so happened that Google announced they were stopping support for their own iOS AdSense app and I therefore decided it would be a great project to see if I could work on a replacement for that! Luckily there was a free API available to use, and so I quickly got to work designing and building the app. 

Refreshingly, I was able to put the app together a lot quicker than it took me to build the LotR Quiz and I quickly had a product I was happy with. 

MyAdsense was released to the App Store in October 2019. 

Something Visual

I cannot stress enough the importance in my journey of having a visual portfolio. 

In the company that I am leaving I am a hiring manager, and understand the pains of hiring new employees. It is time consuming and repetitive, and so having something to help you stand out from the other applicants is vital. 

I tried to imagine it from the hiring manager’s perspective, if I was hiring for an iOS Developer and my CV landed on their desk, a CV with zero iOS commercial experience, would I give it a second look? Probably not.

Therefore having something visual helped me get my foot in the door, and through the many interviews I have had, the portfolio was one piece of work that seemed to stand out that hiring managers liked to see. 

If you haven’t got a portfolio, and you’re looking at applying for jobs, then I’d definitely recommend creating one. You don’t necessarily have to have a published app on the App Store (although I think this would go in your favour), but a visual representation of the projects you’ve done, whether that be take home projects, courses, or your own hobby apps. 

You can find my portfolio here - feel free to copy it, or use it as a template for something even better for you! 

Extra Curricular

Over the course of the three years I also completed other iOS centric ‘extra curricular’ work that helped me toward my first iOS Developer offer. Whether that be specific to coding, or to provide me with discussion points in interviews, they all contributed in some way. 

In no specific order, here is a list and short description of each one:

Fireside Swift:

  • Fireside Swift. Where do I start?! For those of you who may not know, since January 2021 I started co-hosting the Fireside Swift podcast and I have loved every minute of it (well, perhaps minus Steve’s excruciating segues!)

  • If you had told me nine months ago that I was going to be hosting a podcast, I would have thought you had lost your mind. It is completely out of my comfort zone, I do not like the sound of my own voice and I wouldn’t consider myself great at talking - perfect for a podcast, right?!

  • Despite all of that, not only have I made some new friends it has also been a fantastic learning experience for me. I have already learned a lot from being on the show, and I most certainly believe it went in my favour when going through the interview process on the job the I was offered

From left to right: Steve, Me, Jordan and Ben doing our intro ‘clap’ while we record Fireside Swift!

From left to right: Steve, Me, Jordan and Ben doing our intro ‘clap’ while we record Fireside Swift!

YouTube Channels:

  • YouTube is a fantastic resource for learning from some amazing, talented people. There are a load of free resources that I have used time and time again, and here are just a few I thought i’d call out:

Sean Allen’s Courses:

  • Sean Allen creates some of the best content for new and experienced iOS Developers and comes from a similar background to myself, with a relaxed and professional teaching style

  • Sean’s courses dramatically helped improve my take home project standard, and taught me a huge amount on some core Swift practices, as well as some best practices as well

  • These courses do come with a price-tag, but I can’t repay Sean enough for what he provided me personally in those courses. Without them, I would definitely not have made it past the take home project stage for many of the jobs I applied for

Podcasts:

  • Listening to podcasts is a great way to surround yourself in Swift and to learn more about iOS development

  • There are topics that the podcasts discuss that confuse me, or I haven’t understood, but just listening really helps you get to grips with terminology, and after time you'll find yourself following along!

  • Here are some of my favourite:

iOS Developer Community:

  • I briefly mentioned how fantastic the iOS Developer community is, and I just wanted to reiterate that

  • Twitter does have a bad reputation however I have not experienced any toxicity from anyone within in the iOS community

  • It has been an absolute pleasure to interact and make friends with some amazing, wonderful people. Whether it be through words of encouragement, inspiration, or just talking to people with similar interests, knowing these people has helped get me into the position I am in today

Mentoring:

  • Mentoring is another way to help improve your knowledge, and although I currently have an amazing mentor (thanks Ben!) I have also been in a position where this may have not been the case

  • At one point, I was approached to be mentored for a considerable price-tag. Now, I am not saying that it wasn’t worth what they were asking for, but for me at least, I didn’t feel comfortable on something that I could potentially not afford

  • Luckily a year later, I was contacted by @MrMcSwiftFace on Twitter who like myself had been a long time listener to the Fireside Swift podcast. I already knew a bit about Ben as he had hosted the show on a few occasions in the past, but he reached out to me as he’d not known I was a fellow Brit and was interested in helping me

  • After a few chats later we got started on a project that we’re still working on, and was the basis of me starting a blog. So if you’re new here (hello 👋🏼) and make sure you read this post to understand more!

  • Ben has helped me considerably, and by having him as a mentor he has really helped me understand so much more about working as an iOS Developer in the ‘real’ world, as well as guiding me with my take home projects. I would hugely recommend a mentor, but make sure you give consideration at the first offer…!

iOS Dev Happy Hour:

  • This community driven event created by Allen is a really cool way of meeting other iOS Developers, whether it be doing iOS as a hobby, a company, indie or professional content creators - they’re all there!

  • The mantra of the event is simply: “to allow current and aspiring iOS Developers a place to share experiences, share knowledge, simply hang out, build community, and even enjoy a drink or two online during a time where face to face contact is limited.“

  • Register here for the next event and I may even get to speak to you there!

A screenshot from one of the iOS Dev Happy Hours I attended

Hacking With Swift Live:

  • In 2019 Paul Hudson announced he would be hosting his first conference and conveniently it was only 40 minutes away from where I lived at the time!

  • With this being my first ever iOS conference I was very nervous about meeting all of these ‘qualified’ iOS Devs but I needn’t have been worried, everyone was super friendly and welcoming and to go to my first conference was exhilarating

Interviewing:

  • I started applying for jobs in February 2019. I look back now and know I was definitely not qualified at the time to start working as an iOS Developer, however interviewing really helped guide me toward what it was I didn’t know

  • I found over the following two years I was progressively getting further into the interview process. This gave me reassurance that I was doing the right thing and also gaining more knowledge as time went on

  • Another advantage of doing interviews was the take home projects. I learned a lot of frameworks and skills that I just would not have touched if I hadn’t been asked to provide a take home project on one, and I’d recommend doing as many as you can!

Newsletters:

iOS Developer Community Survey:

  • At the end of 2020, Dave Verwer announced in his weekly newsletter that he was retiring the iOS Developer Community Survey that he had conceived the previous year

  • I decided to put myself forward, as well as a few other people to lead the 2020 survey to keep it going for another year of which Dave was grateful to become a supporting role for

  • Myself and the other developers worked to review the questions from the previous year, publish the survey, get it promoted, review the results and then publish the site with the results

  • Unfortunately there was no uptake from any one to write any analysis of the data, but I’m really happy I got to work with Dave as well as some other amazing developers to get the survey going for another year

That’s all I can think of for now! I am sure there will be things I’ve missed above, but without making this article even longer than it already is, these were the first that came to mind!

Take it Easy

There were times during the three years that I thought I would never be offered an iOS Developer job. There were times that I felt I knew a lot about Swift and in the same day, felt I knew nothing about Swift.

During the application process I applied for around 80 jobs, where I would say 30 landed a first stage interview, and then only 15 of those progressing further than that.

The iOS Developer interview process is notoriously long, time consuming and can be disheartening, which can be amplified for career switchers, but I really encourage you to look at each failure as a step forward as you’ll have inevitably learned something that you didn’t know before you started.

One thing that I battled with during the self-teaching and career change was guilt. If I didn’t do Swift one evening, if I didn’t prioritise an iOS podcast on a walk, or if I just didn’t feel like coding and watching a movie with my wife instead.

I think it’s hugely important to know when to take a break while learning, and to also try and not feel guilty when you do. You don’t want to burn yourself out, and for it to go completely the other way and not enjoy coding any more.

This now just leads me on to say…

Thank you! 🙌🏼

If you have any questions about what i’ve written above or any questions about something not mentioned please feel free to reach out to me either in the comments below, or on Twitter here.

I’d love to hear from you! 😀