Advice for iOS apprentice

Would anyone mind sharing their experience with iOS apprentice learning.

I am reading Swift Apprentice and at chapter 19, the advanced section of the book. Took many months to get through. I must have read each chapter 3 to 4 times, no kidding! I still go back to the challenge questions in this book and find myself asking “What are they asking me to do?” I always have to look at the answers.

I am on checklist tutorial of iOS apprentice. So far, the swift apprentice book has re-enforced the learning concepts so far, but I’m struggling with how to learn this. I have spent more time going back and trying to figure things out of where the author is getting the information and how its working, but then it will change again. I feel like I’m spinning my wheels. My question is to those "Are you moving forward with the chapter and seeing that the more you do, the more you’ll understand with repetition as it sinks in? Next question is: "Because I’m spinning my wheels with much wasted time, I looked at the end of chapter and it said to do the chapter again to make more sense; I already keep going back 10-20 pages at a time and re-read as I get lost on the new code trying to figure out where the code it represents, then it changes again. ugh! Go back and the cycle repeats itself with so much time and effort wasted.

Have some of you plowed through the lessons to the 3rd and 4th tutorial to find much of what’s in this checklist tutorial is making sense now? I may be over analyzing too?

Finally, after writing a book “Sorry” - Anyone have experience they can share on the video subscription and how it has helped them learn? Let me share my hesitation with the video lessons: I don’t want to purchase the video subscription unless I know there is direction with the learning. I had to turn off my notifications from this site today as its too much information and I have no idea what to look at. I’m looking for a pathway of direction where it is clearly layed out of what to watch with other videos the instructor wants you to watch that re-enforces the learning. No sense in purchasing the video lessons when you have to figure out what to watch and read and whether its important to know now or later? Hope that makes sense.

Thanks y’all for providing your experience.

@coltkell. Thanks very much for your question!

Trust me when I say this, you are not alone. This is in fact one of my personal frustrations when it comes to learning (the constantly changing world of technology). :slight_smile: However, here are some very helpful tips that I will share with you that help me move forward:

  1. ALL fields, and careers require constant learning. Lawyers, doctors, dentists, even athletes today have to adjust to new rules, so very little in life remains stagnant.

  2. The constant change can be a GOOD thing, so use it to your advantage. How do you do this? One way I used learning iOS to my advantage was to identify areas that would be trending, and hopped on the bandwagon before other, more senior iOS developers did, and that allowed me to leap frog them with respect to my career. I did this specifically by learning Swift before many senior iOS developers, and in doing so, gave myself a head start, and despite the disparity in years of experience, I was able to apply for jobs, and projects that others could not. Had the industry NOT been moving quickly, I would remained behind my competition.

  3. Focus. One has to be strategic with their learning. You simply CAN’T learn EVERYTHING on ANY subject. This is not realistic. Notice, doctors specialize, lawyers practice in a particular field, and athletes play a particular position for their sport. Do the same thing. How? When it comes to iOS, there are many, MANY areas, and as you learn, you’re going to discover some areas more enjoyable to learn than others. As you grow in your learning, it is very important to keep your eye out on those areas that you enjoy doing, and those that you don’t. Once you find an area that you enjoy, consider concentrating your learning for that area, and develop some expertise. I just found out that a very popular author who is an authority on Core Data actually knows very little on Auto Layout. This honestly blew me away because of the very fact that he’s a known author, and an authority on a particular subject in iOS development. Yet, he openly stated that because that area is his specialty, he actually does very little work on Auto Layout. So don’t feel too bad about knowing some areas more than others! :slight_smile: Which is an excellent segue (no pun intended) into my next point:

  4. Know the fundamentals! What are they? In my humble opinion, certain topics keep coming up over, and over again in iOS development, and you simply can’t ignore them. There are certain topics you simply must know very well, and in my humble opinion, they are:

a. Swift - This is your programming language. This is your foundational tool kit. Swift to an iOS programmer is what English is to a reporter who works for the NYTimes (or any media outlet in North America or the UK). You simply must know how to program in this language, and know it WELL.

b. UITableViews - I wish I knew when I first started iOS development several years ago how important it is to know this, but hey, I do now. Know UITableViews BACKWARDS. Why? Take a look around you. Most, if not all apps require SOME use of a table. UITableViews are ubiquitous in the mobile world, and it is rare to find an app that does not utilize it in some form or another. Moreover, learning UITableViews forces you to learn so many other concepts that you truly grow as a developer when you focus on this topic. You are also forced to understand Protocols and Delegates which is a key concept in iOS development, and you’ll find learning other areas much easier once you have a solid grasp of this.

c. Networking - Rarely are apps “islands”. Most apps today are so complex, they require some form of communication with the Internet, and this means being able to make contact with a web service, and send/receive JSON data. Nowadays with the plethora of cloud services being offered, including Apple’s own CloudKit, rarely you’ll find an app that does NOT communicate with a web service of some kind.

d. Multithreading/Memory management - This is an advanced topic, however, I must stress that as you grow as an iOS developer, you will be expected to know this topic, so please have it on your radar. Don’t ignore it. Please.

e. Auto Layout - It is almost impossible today to build an app without having some knowledge of UI/UX design, which is why I strongly recommend you have some knowledge of Auto Layout. There are so many devices that Apple makes, which is why it is so important to ensure you know how to make your app’s UI consistent across as many devices as possible. Auto Layout is the way to go, so don’t ignore this.

I’ve given you a good start for now. The above topics (with the exception of Swift) don’t change often, so once you have a solid understanding of them, you will not have to re-learn it over, and over again. The important thing to remember when you do your learning is to make sure you understand CONCEPTS, as opposed to just memorizing code. Make sure you know WHAT you’re doing AND WHY. As a developer with tight deadlines, it’s quite easy to forget about the WHY part since most times we only care about getting things to work, but this is a huge mistake.

I hope this helps. :slight_smile:

All the best!

1 Like

This topic was automatically closed after 166 days. New replies are no longer allowed.