I often get asked, if I were to start all over, how would I learn iOS development with no prior experience. I’ve been a professional developer for several years now and here’s how I would do it if I had to start all over.
10 Steps To Become An iOS Developer With No Experience:
A mac is a great investment for an iOS developer. Sure you could get by on a Windows machine, but if you’re serious about becoming an iOS developer, it’s time to invest in a mac.
Although I recommend a MacBook Pro, don’t think you have to get the latest and greatest. You could buy a refurbished MacBook from Apple’s website.
If you already own a Mac computer, I wouldn’t upgrade it. Most Macs can be used to code just fine, even one from 5+ years ago!
Yes, this includes MacBook Airs and Mac Minis. If you own one, I would try to use it first and only upgrade if needed.
Next you’ll need an iPhone. You may already own an iPhone, so for many of you this won’t be an additional cost.
If you don’t own an iPhone, I would recommend picking one up if possible.
You can develop on something called simulators which are basically software emulators that run on your computer. If you’re stretched for cash, I would delay the purchase of an iPhone.
To be honest, I spend most of my time developing on simulators, simply because it is faster and I can test on multiple virtual devices. I test on a physical device near the end of my development.
Again you don’t need the newest iPhone, considering refurbished from Apple or buying one used off a website like eBay.
Now that you have all the hardware you need, let’s move onto the software.
Xcode is where you’ll be spending most of your time as an iOS developer. It’s made by Apple and it’s free from the App Store.
Go ahead and install it now, as it will take anywhere between 20 to 60 minutes.
Here’s a piece of advice that most beginners need to hear…
Start coding. Like now.
Not “reading” about coding or “learning” by passively watching videos… actually coding.
Typing code into Xcode. You can get your first app running in Xcode in less than 15 minutes.
Once you have Xcode installed, you should spend most of your time coding.
The programming language you’ll be learning is Swift. Swift is maintained by Apple - which means it receives regular updates and is super modern.
What does that mean for the beginner? Although it may seem tough, Swift is definitely one of the easier languages for beginners.
There are many fundamentals you’ll have to learn such as:
Mastering the above topics will give you a good handle on the Swift programming language.
A full stack application is one that connects to some sort of back end server. What’s a backend? Simplified, it’s a basically somewhere you can save, update and manage data.
A full stack iOS application talks to another server, this could be a weather channel that gives you real time data or maybe a stocks server that tells you the price of the stocks.
Why is this important? Because these applications are online and connected.
Think about it, most of your favorite apps talk to some kind of backend server. This is what enables communication in chat apps, photo sharing in Instagram and accommodation booking in AirBnB.
Offline applications such as calculators or tic-tac-toe are great for beginners, but in order to be a true iOS developer, you’ll have to make a full-stack app.
Here are some good beginner full-stack app ideas:
Most major cities offer their food truck data for free online. Get the data from your local cities website or API (application programming interface) and try to map out the food trucks.
Take it a step further by adding opening and closing times.
This is a classic. Create a to-do list application that will stay in sync when you close the app or access your to-do list from another device.
Get the latest data from Yahoo Finance and try to display it in your application. Add notifications when a stock reaches above or below a certain price.
Get the users location via their device and display local weather live. You could extend this by sending notifications when it will be raining or snowing.
Next it’s time to build a bigger project. I’m talking one that could take a month or two.
This type of experience cannot be replace by reading or watching videos.
Pick your favorite app from the App Store. Instagram or YouTube are good choices.
Now it’s time to reverse engineer these apps and try to build it yourself.
Break down the app into pieces and set your own deadlines. This will teach you a lot about software planning and design.
Here are the some questions you’ll want to ask yourself while working on this:
You don’t have to clone every single feature of the app, that could take a while…
Just get the main ones done. You’ll struggle here, but you’ll come out as a much more confident developer.
This will also become a great project for your resume.
Now it’s time to create a portfolio and resume.
Your LinkedIn profile should also be up to date. You can now set your LinkedIn profile to let recruiters know you’re looking for a job.
Now it’s time to build your website portfolio.
You should include images and videos of the apps you’ve created as well as links to their source code.
You might think, I’m a developer! I should build my website from scratch!
Well… do you want spend time learning web development? Or are you trying to make a beautiful portfolio?
Remember your business goal here, which is getting hired as an iOS developer.
This skill of looking at the big picture will serve you well as a developer. Always keep the goal in mind and never code for the sake of coding.
Carrd is $9 a year, what’s your time worth?
Next it’s time to apply to internships and junior level positions.
Here’s where preserving will play a key role. For every 100 applications, you may only get one or two responses.
Keep applying. Online and also locally. It’s a numbers game.
Here are some websites where you can apply for an iOS job:
Don’t get discouraged you’re almost there :)
The qualities you look for in your first job are quite different from every subsequent job.
This is because… well you’re new. You’ll want to land a job that has the mentorship and more senior developers that can teach you.
I would recommend against working a job where you’re the only iOS developer or where the team is stretched too thin to train you.
The more senior iOS developers that are willing to mentor and teach you, the better.
You essentially want to optimize for learning in your first job.
Salary, culture, work-life balance… these all matter, but for your first job, you’ll probably be working a little harder and earning a little less.
I remember working many hours my first gig - just a part of the journey.
Most jobs are never posted. They’re filled by a friend or a friend of a friend.
This is how the world works, it isn’t unfair, it’s just human nature.
People want to hire people they know or trust. That’s why it’s important to get connecting.
I know you might think, ugh, networking. But this is much easier than you think in today’s world.
Cold emails and cold DMs (direct messages) are simply the way to go. They have a much better return on investment than in-person meetups or events.
They’re basically free and just cost you time.
A good way to get a response is to propose a fix to a bug in their app.
Recreate their app, show the bug and the fix. Record a video of this and send it in an email or direct message.
There’s no guarantees, but by providing value upfront, you’ll have a high chance of getting your foot in the door.
Here are some places where iOS developers hang out:
Now that you’ve got some interviews in the pipeline, it’s time to start studying for those interviews.
Interviews are different than actual development.
This is because development takes time, but interviewers only have about 45 minutes to an hour to make a decision.
Look up all relevant iOS developer questions and practice coding those solutions up.
Don’t be afraid to ask the recruiter what the interview process will be like. Any information here can help you better prepare.
Yes you will bomb some interviews, I’ve bombed a ton. Everybody does. It’s not a big deal.
With each interview you’ll get better and eventually you’ll land that job.
Here are some great resources for iOS interview prepping:
Be sure to study up on the company. Understand how their business model works. And come prepared with good questions to ask.
Here’s the reality of working in tech. The industry changes.
It changes a lot and it changes fast.
As a software developer you never really stop learning. New technologies and libraries are always coming.
You’ll have to keep your app up to date with Apple’s changes.
So continue learning, keep up with the latest iOS trends and continuing coding.
Publish more apps. Connect with more developers.
Share your journey. Help others with their code.
Heck, maybe it’s even time for you to start a blog and help developers who are just getting started ;)
Best of luck with your journey!