So You Want To Learn Swift Without Any Programming Experience?
Here’s how your first year may look.
A Little About Me
I’ve been learning Swift and iOS since April of 2016, and have gone through some of the similar ups and downs that newcomers deal with. I worked in the advertisement industry, and now work as the Head of Partnerships for a nonprofit that trains diverse folks in digital marketing, so that they can diversify the workforce, and get their career started. I’ve tried a couple of platforms, read a few books, did research on a few bootcamps, went to a few meetups, and here’s a quick snapshot of some of the resources I used to get to where I am today.
- Swift Language Guide — by Apple I have this on my computer, iPhone, and iPad. I’ve read through it once for Swift 2.2, but will always go back to reread it.
- iOS Programming — Big Nerd Ranch Guide Project based learning on how to use XCode and the other tools needed for iOS development
- How Software Works: The Magic Behind Encryption, CGI, Search Engines, and Other Everyday Technologies Helped with understanding big picture the role of software without learning to code.
- Think Like a Programmer: An Introduction to Creative Problem Solving Learning how to solve problems with code. The book is in C though.
- Problem Solving 101: A Simple Book for Smart People Gave great insights on using practical techniques to conquer hard problems in general.
Udemy — (paid) Great for getting me introduced to Swift and iOS, but the quality of the content wasn’t enough for me to continue using it in my learning journey.
Treehouse (paid) — Fantastic content that teaches you at a manageable pace, especially if programming is new to you. Lots of code challenges, and quizzes, which are fantastic for making sure you understand the material. And a pretty active community. Shoutout to Pasan!
Udacity (will pay) — Looks fantastic, and I might use their product for when I want to shore up the bigger bucks. They’re competing in my mind versus Treehouse’s tech degree.
Stanford (free) — Fast pace, and will expect you to know computer science basics before jumping in. I’ve noticed that after 6 months of Swift & iOS dev I was able to follow along.
Brooklyn Swift Developers — Cool meetup in Brooklyn that introduces you to folks actually working as developers, and companies that are innovating in the Swift space.
Beginning Programmers — A fun band of people learning web development. Though no one was learning Swift, I was able to enjoy myself!
Brooklyn iOS Comrades — I recently created this meetup, because I felt there wasn’t a space for people new to iOS development, and selfishly I’d love to physically be with passionate folks that will share the struggle, and grow together.
I’d like to share what I have been through so that others making this decision, especially people who do not have a Computer Science degree, and are a bit into their career can feel comfortable with their decision to start learning Swift. A long resource list will be at the end of the post so you can refer back to it or bookmark them for your convenience.
- Swift is a strict and safe language, because its compiler will make you deal with errors, especially with types and references, forcing you to deal with potential problems now, and designing your code to be more proactive instead of reactive. Also, the integration between Swift, Debugger, XCode and the Playground is beautiful, making the creation and testing of Swift code quite simple. Compared to other C languages I don’t see why someone wouldn’t want to adopt Swift. Here’s a great talk on Swift vs ObjC when it first came out: 7 Things to Know about the New Swift Language
- Learning Swift is great if you want to make apps on iPhones, Apple Watch, Apple TV, and Apple Desktops, but if you want to work on websites or android devices then you’ll have to learn a suite of other languages. Fortunately, Server Side Swift (S³) is finally starting to take off, and so the need for Swift developers will increase over time, and the need for expertise will increase as well. Here is an article benchmarking S³ vs Node.js and a cool company that’s championing S³: Vapor. I saw their founder speak about their product at a Brooklyn Swift Meetup.
- Swift’s community is passionate, and Apple is trying its darndest to make sure Swift isn’t just a top-down language, but has some roots in the developer community. Checkout what they’re doing at Swift.org, and also the collaboration between 3rd party devs with Apple devs. Look at the resources that Apple has organized and developed for the community: overview & language guide. The language guide is great, because it’s developed and maintained by the Swift team at Apple, and is the foundation of any book, class, or bootcamp that you’ll be going to.
What’s The First Year Going To Look Like?
The first three months are going to feel awkward. You’re just getting started, and things seem quite foreign, but you need to push through this, and enjoy. You’re learning how apps are created, and how the internet works. If you don’t understand a concept then make a note of it, read more about it, and move on. You’ll likely revisit the concept later, because programming is a compounding skill, meaning the concepts build on top of each other. Three key parameters you’re building to ensure success:
- Habit — I study every morning and review every night. 7 days a week.
- Foundational Knowledge — You have to make sure you get the basics before jumping too far ahead.
- Confidence — Knowing that you don’t know everything, but you’re striving to get better, and being comfortable with the fact that everything can be confusing, but there will be a day it clicks.
The next three months are actually the hardest in my opinion. This is where you’ll need to do a bit of soul searching, and really figure out what is the purpose of learning iOS development with Swift. Because the initial excitement is wearing off and you’ll need to find motivation from somewhere, as well start getting into the community at large. Continue taking your classes, but now it’s time to start following a few bloggers, going to a few meetups, and possibly making a few friends. Three more key parameters to build on top of the previous three for success:
- Purpose | Motivation — Be it money, craftsmanship, crazy ideas you need to find your North Star, the thing that guides you when you’re heading South.
- Community — Learning alone can be tough, but finding a group of folks that are trying to conquer the same thing you are is quite rewarding, and I feel could help make the process a bit less daunting. It’s why I made Brooklyn iOS Comrades.
- Curiosity — Text books and videos can get a bit boring, so find what interests you about technology, the internet, or apps in general. I truly enjoy understanding how technology can help solve social and societal problems, so I sketch out ideas of how an app can help.
You’re now six to nine months deep into learning Swift, and ain’t it fun? This is where I am at, and everything is finally starting to make sense! Key word: starting. I don’t have all the answers, but I’m past the initial fog, and can see where I fit in the equation. I feel this is the time where you should start thinking of side projects, expanding your network, read blogs and articles about the industry, be active in the community, have a pretty set schedule, and think about what kind of career you want: freelance vs full-time. More parameters? OF COURSE, three more:
- Expand — Make your network bigger, your time investment longer, go to Swift events, read more documentations, and get dirty with some APIs. Your foundations are to the point where if you don’t understand something you at least know who to ask or where to look.
- Plan — This should align with your motivation, so make sure you’re on track for your purpose to come to life. Be it freelancing around the globe, being at a company, or taking a bootcamp.
- Give Back — Find those that were just like you three months ago, and give them some encouragement. Make this part of your plan as you’ll never know where they might endup.
What’s next? I’m not really sure. I’m still trying to figure it out as I go. I’d love to be able to put what I’m learning to use in a professional setting. I’d also like to be able to make some apps of my own, apps that aren’t the typical calculator or weather apps. I’m a connector type of person, I find myself bridging folks and communities, so for programming I’m getting really excited about networking and understanding how I can create apps that connect to multiple APIs. Here are three things I see in my future as I grow and learn:
- Deepen Knowledge Set — Practice Swift and start projects around understanding networking and APIs. I’m also really interested in learning more about MapKit, Core Graphics and Core Locations.
- Create A Community — I’m at a point where I’d like to grow with others, so I’m investing my time and money into my Meetup group, Brooklyn iOS Comrades.
- Find Opportunity — Not sure if this will be projects that I do for others or an internship or job, but I’d like to become more professional with my skills.
I hope you found this post useful, and will follow me as I continue to write about my journey, and recommend this post to others! Thanks for reading :)
Below are some resources that should help get you started. If you have any questions just ask and I’ll be glad to answer.
Resources For iOS Beginners
iOS Apprentice — Ray Wenderlich
NYC Bootcamps (Find more and local bootcamps at CourseReport)
NYC Code + Design (Part-Time) — In person
Flatiron School (Full-Time) — In person and online. Extensive free bootcamp prep work that’s free
TurnToTech (Full & Part Time) — All around good program, as it goes into CS fundamentals as well.
General Assembly (Full-Time) — Online and in person
Online Books, Articles, Practices
Skilled.io — cool swift projects and their creators
Swift.org — open source goodness
We❤Swift (free) — Practices
Swift by Example (free) — Tutorials / Practices
Online Platforms | Classes
Treehouse ($25 / Month) — Great video and teaching content, awesome for beginners
Stanford (Free) — Intermediate level, and less feedback as it’s all online.
Udacity ($199-$299 / Month) — Intermediate Level. For folks trying to get serious, and utilize a service that’ll help with job placement