Day 12 - Houston, we have a problem...

Sep 11, 2015 at 08:27 am, by Pierre Liard

This famous sentence from the Apollo XIII astronauts came to my mind this morning when reflecting about my experience on learning iOS 9 with Rob Percival. I have to be honest: I am really disappointed in this course. The fact that Rob reuses old videos is starting to make me a bit exasperated. Today's content was related to maps, adding messages and pins, and using the user's geolocation. After the first minutes of this tutorial, the code in my ViewController was looking like that:

Swift warnings

Seven warnings for eight lines of code! It's a bit too much, don't you think? These warnings can fortunately be easily suppressed by simply replacing var by let. This last keyword is used when a value is immutable or, say differently, when it is a constant. Swift 2 enforces more strictly than Swift 1 the rules for var and let, and that explains the warnings. The app will compile of course, but why didn't Rob apply these new rules is out of my comprehension. The very beginning of Apple's Swift manual explains that let is used to make a constant and var to make a variable. The value of a constant doesn't need to be known at compile time, but you must assign it a value exactly once. This means you can use constants to name a value that you determine once but use in many places. (Excerpt From: Apple Inc. "The Swift Programming Language (Swift 2 Prerelease)"). Difficult to be clearer and more concise! It would have been easy for Rob to add a banner to the video underlining the changes between Swift 1 and Swift 2. He had already done that in several prior videos. Why not here? It's at this exact point that I realized there was a problem with this class: I had no real understanding of what I was doing. Looking at the above code sample, I suddenly thought a cooking recipe may look similar: a list of ingredients mixed together for some meal.

Because of the big success of other of his classes, I started wondering if I was alone in my critics. It didn't take me long to realize I wasn't a lonely kind of wolf. I found indeed a website ( Online Learning - My journey begins to learning swift for iOS) realized by somebody with the same trajectory as mine. He/she compares several websites offering online contents related to iOS. His/her review of Udemy, and in particular of Rob's prior course (iOS 8), is right to the point I am trying to make. I am quoting it extensively: When I tried out Udemy there were fewer Swift courses available than there are today. "The Complete iOS8 and Swift Course: Learn by Building 15 Real World Apps" by Rob Percival looked very good and at USD 49 it seemed good value for money, 15 chapters (sections) broken down into 165 lectures! I really needed to learn Core Data and eagerly set about Section 7 which consisted of 12 lectures. Unfortunately only 6 of the lectures are video (all are low resolution - I could not find a way to adjust the resolution), the rest being files and only the first 2 videos talked about Core Data enough to get me going. I really learned no more than I could have learned from various Swift blogs. Worse, you're taught that Core Data is just a "database storage for my app" (I now understand that Core Data is so much more than "just a database" and really felt short changed when I later began to really understand what Core Data is). My overriding impression and imagination suggest the course script consisted of just heading titles and general points to mention during the lecture. In the main the lectures tell you what to do, but not why - example when the concept of delegates are introduced for Table Views there is no explanation of what Delegates are and how important they are. Overall I was very disappointed and truth is that I did not finish the course, giving up before I got angry. I am sure that there are good courses on Udemy and maybe I just chose a course that was not suited to me. And here lays the problem I have with Udemy, how do you choose? How can you be sure that you are going to get a high quality course that will lead you and progress your learning? I couldn't have said it better. Remember Table View and Delegates in post 6: I had this exact same objection! This review underlines the main issue: we are taught what to code, but not why it is so, and what the underlying concepts are.

So now what should I do? As expressed above, this kind of course is probably not suited for me. Rob is a very good teacher, but his teaching style is maybe not appropriate for certain categories of adults who want to understand. Moreover some of his lectures seem to have been so rushed that it is not possible to expect something of quality. I am also realizing that I knew all of that before starting this class. Why then to have started it? Einstein, I believe, said that the definition of insanity is doing over and over again the same thing, and expecting a different outcome!

Despite of all I wrote, I am not about to give up so easily. I have just to redirect my focus on another way to learn the fundamentals of Swift. I will probably go with a combination of classes from and from I had with both of them goods experiences. Ray offers both videos and written materials. His tutorials are mostly focus on iOS (some Android too) development and have for main objective to make coders up to speed and productive as quickly as possible. I am not sure however that is as rich in iOS content than Ray, but I will give a try anyway.

I have now to think it over and to come back with new energy and motivation I lost this last few days. So long!

Leave a comment

Login to comment a post