It has now been a week since I began the 100 Days of Swift challenge. It started with The Swift Journey where I explained my desire to learn this programming language and some of my experiences through the first few days. I have to admit, this has been filled with a lot of emotions as I tried to traverse the iOS development landscape.
I could not have imagined that a week later that I would have a simple app in the Apple App Store nor could I have anticipated the fear, frustration, joy, and excitement I would feel along the way. Please don’t misunderstand, I am having a blast and I am probably putting more time into this now than I had first envisioned.
I would not suggest using me as an example, my personality tends to become obsessive about things once I begin to dig into them meaning that there are other avenues of my life that are being completely ignored with has and will have consequences. Having an app in the App Store in a week is also not a normal thing. Even if all you are doing is copying code from someone else and putting a new icon on it, it takes time and you kind of need to devote resources to understanding what you are doing. Well, I guess if you are just copying code and are ok with that maybe understanding the code is the least of your challenges.
The 100 Days of Swift program as laid out by Paul Hudson is good but in the first week you are learning concepts not really putting them together into a working app. This program has been good for me since I am using it to augment other learning. If I were doing it thinking I would quickly become an iOS developer I probably would have been disappointed.
That is not to say it’s not valuable; on the contrary it is extremely valuable. Over the first seven days I have dug deeper into Swift constructs that I probably would have otherwise, and this has helped me in connecting the dots with what I have been learning elsewhere. The 100 Days of Swift have been great in showing why things work the way they do and this will pay huge dividends as you get these foundational pieces down and understand them.
Each day is broken down into eight to ten small videos of about a minute in length. Then there is a quiz of six to 12 questions covering that section with a summary quiz at the end of that day’s videos. In my case I have been watching the videos and trying the code in Xcode Playgrounds following along then playing out scenarios of my own to make sure that I get the concept.
With each section’s quizzes I will take the quiz to test my understanding. If I miss one of the questions I will go back to the playground with the code from that question and run it to try and debug either the code or my understanding until I feel confident in that concept. This is probably not the way it was meant to be used but it has proven helpful to me.
This has also honed my skills at looking for silly mistakes. Many times I might have glossed over the fact that the question set something as a constant rather than a variable then tried to change the value or missed a colon or set of parentheses. These are simple mistakes that we will all make so it has been valuable to see what the errors look like in Playgrounds so that when I am debugging my own code I can use that as a triage to becoming more efficient during error handling.
The videos and code have also helped me uncover shortcuts I made in my code that while they have not led to errors or crashes they could. For example, in my apps I have written I have a few places where a function could throw an error. I am using try to handle the error but failed to provide a do loop with appropriate catch to handle it if something unforeseen happens. This has resulted in a laundry list of things I will change in the app and best practices I will include moving forward.
Overall it has been a good experience and one I am excited to be on. At the conclusion of each week during the 100 day challenge I will try to do a weekly wrap-up to assess my progress and provide my feedback.
0 Comments