Learning Swift to become an iOS Dev

I’m currently working my way through the iOS Apprentice series, up to tutorial 3 and I feel like I’m grasping a lot of the concepts and really excited about programming. Just wanted to set myself a few goals to keep me going, my plan at the moment is to finish the Apprentice Series, then work my way through the many online iOS tutorials. I’ve also seen the Swift Essentials book, is this something I need to cover as well?

What sort of time-frame should I be aiming to complete all this in if I’m able to dedicate 2 hours per day? It’s taking me about 1-2 weeks (of 2 hours a day) to get through a whole ios apprentice tutorial at the moment, I’ve come from zero background in programming. Would just like to set some reasonable goals!

1 Like

We’ve all been there at some point, the key to becoming a programmer is to keep learning and never give up!
Those that do give up, never become one.

The the rate of your learning will depend on your level of experience, and the level of the text you are studying from.

So the data needed to find that rate for you should be based on your current rate in iOS Apprentice.

I haven’t finished iOS Apprentice yet, I’m on the 4th (final) tutorial StoreSearch, Chapter 36: URL Session.

Keep in mind that I have some experience prior to iOS Apprentice
I have taken Stanford’s iTunes iOS course, completed Apple’s Everyone Can Code series, and read Ray Wenderlich books Swift Apprentice and Core Data by Tutorials (got half way through)

My iOS Apprentice rate of learning looks like

1 BullsEye, 2 Checklists, 4 StoreSearch
I averaged 1 chapter a day because these 3 tutorials were mostly review of previously learned concepts.

3 MyLocations This tutorial is probably the most challenging in the book.
I averaged .5 of a chapter a day. It took me 2 days to complete each chapter because the CoreLocation framework was brand new for me. But, a good majority of this tutorial built upon my previous knowledge, so I was able to get through this one relatively fast considering the vast amount of info.

  • This ends up being 45 days of study for 35 chapters (I still have 7 more to go).
  • It’s taken me 55 days in real time with breaks and other life commitments.
  • I’ve averaged .63 of a chapter a day.

Based on that rate I should expect to finish my last 7 chapters within 11 days.

But this data is only good based on my knowledge of iOS, and technically only good based on the content, the final tutorial has been primarily review, so I expect the last 7 chapters to take me 7 days or less to complete.

I’m assuming this is Swift Apprentice? Yes, this a must read!

My Swift Apprentice rate of learning:

For Swift Apprentice, a book with only 25 chapters, I would expect a faster completion time, but that wasn’t the case!

  • It took me 35 days of study for 25 chapters
  • Took me 46 days in real time.
  • About .5 of a chapter a day.

For the majority of the book I averaged at 1.5 chapters a day, but then there were a couple chapters that took me 2 - 4 days to be able to grasp the concepts, and required a couple days break before returning to the challenging material.

.5 of a chapter a day is a good rate for me to shoot for based on my experience level and the beginner level 1 star books I’m learning from.
No doubt this will change when I start the intermediate level 2 star tutorial books.

I guess my advice to you is keep a daily journal tracking your progress. Use it to find a rate that makes logical sense and then use that to predict your course.

For me, the value of seeing my path laid out on a year calendar helps keep me focused & motivated on the present because I know that doing the now is just as important as the end, because I’m becoming more and more a programmer with every concept learned, and chapter - tutorial - book completed.
I can clearly see that if I continue on my path I’ll eventually reach my goal, upon which I will no doubt have new goals I will be aiming for.



Thanks Rebecca, very helpful insight!

I’m thinking of pausing on My Locations (about 2/3 of the way through) and going through Swift Essentials first. How did you find the Stanford iTunes course? Worth doing before or after?

I’d love to go through all these resources but I’m finding time is the main constraint. So trying to pick a few things to learn from and avoid doubling up on topics if possible (although I find repetition does really hammer things home!)

Sorry for the late response, the past couple months have been a hot mess and I wasn’t able to program.
To answer your questions:

At the time I found it difficult, and the challenge part of the homework impossible.
Stanford’s iOS course is meant for a student with a decent amount of Object Oriented Programming experience - it’s 3 prerequisites:

  1. Programming Methodology, (intro to OOP - a beginner course in java)
  2. Programming Abstractions
  3. Programming Paradigms

Each lecture is 0:45 - 1:15 and starts with a 15 - 20 minute powerpoint/keynote and then a demo usually picking up from last lecture. The reading material is assigned sections from Apple’s free iBook → The Swift Programming Language. It’s a great reference book, but it doesn’t have anything about iOS/Xcode. I had to rely heavily on Xcode’s documentation to figure a lot of stuff out on my own.

In short this course’s difficulty was too hard for me at that point - but now I think I’m at a point to where it would be at my level.

iOS Apprentice touches on a lot of the material covered in that course, but in my opinion iOS Apprentice does a far better job at breaking every step down and explaining why.

Some insight on matching the level of the material to the level of the programmer.

I’ve learned that in order to learn programing successfully the programmer needs to be learning material at the difficulty level that’s correct for him/her.

If the level is correctly matched:
Learning the material should be at a comfortable level, enjoyable, and sometimes challenging but doable.
Never Impossible!

If it doesn’t feel comfortable/enjoyable/right, the programmer is probably learning material too advanced for them at this point.

For a complete beginner, new to programming
I recommend Apple’s free Playgrounds: Learn to Code series 1, 2 & 3 for iPad.

They are essentially an updated learning tool of 1980’s java’s Karel the Robot in the 3D Sprite kit environment ← this is true beginner stuff.
Everything is in Playgrounds (no Xcode), you learn how to program from the ground up and learn beginner Swift along the way.

For a beginner that wants to jump into iOS and learn Swift as you go
I recommend Apple’s free iBooks: Everyone Can Code series. It has you make many small apps that focus on concepts in isolation. This is why it’s perfect for beginners - the pace and difficulty is perfect, and you are really able learn/master the material before building upon it.
The difficulty of this material was perfect for me, gave me confidence and I was able to get through this with ease in 10 days or less.

Beginner/intermediate Swift: Swift Apprentice
At this point I was at the perfect learning level to read Swift Apprentice and be able to tackle the challenges! For the first time I just knew what to do!
I think the reason I got so much out of Swift Apprentice was because I had already mastered beginner level Swift from Apple’s series stuff.
This mastery allowed me to focus my attention on the challenging concepts in that book and be able to grasp them. There is an incredible wealth of info in Swift Apprentice - so much that is impossible to grasp it all in one read through. I consider this an intermediate level book - one that even an advanced level swift coder could benefit from in certain chapters.

Beginner/intermediate iOS: iOS Apprentice
This book would have been a lot more challenging for me had I not have completed Stanford’s and Apple’s courses.
I consider this an intermediate book. It is immensely more challenging than Apple’s Everyone Can Code series.
If I knew then what I know, I’d skip Stanford’s course and start with Apple’s Everyone Can Code series as my intro into iOS dev and read this book to build upon that.


1 Like