I’ve had a bunch of conversations with colleagues and friends who are pushing me to learn mobile, so I’ve decided to learn Swift for iOS through Treehouse’s Swift module.
The goal is to ship a simple app in the next month to understand the foundation and inner workings of Swift to broaden my knowledge and apply it to my product management and growth marketing skill sets – and I guess get into the habit of shipping consistently.
A few thoughts
I finished the Swift Basics module in about a week. The course was easy enough to follow, going over all the basics of Swift while providing more context by referring to the official Apple Swift documentation online to get a better in depth understanding of the material being presented. The culmination of the Swift Basics course was to create a FizzBuzz program in Xcode, which is a breeze if you understand conditionals inside out.
I’ve noticed that my uptake is a bit faster as I’ve learned some basics in terms of foundational concepts with respect to variables, constants, types, operators, arrays and control flows, which is more like review of the overarching concepts I’ve learned while learning Ruby on Rails, but using the Swift syntax and approach.
There are a slew of other Swift courses as well, one of which is the Bitfountain.io course that looks very promising, but I’ll dig into that later on. Focus is paramount in following through and shipping something instead of spreading myself thin over the plethora of learning resources I have at my disposal.
While I’m doing this, I’m also checking out the Apple Developer documentation for Swift as it’s the definitive source for all things Swift. The rationale behind looking at the official book on Swift by apple is to expose myself to different modalities of learning. If there was a hardcopy book I’d buy it, but for the time being, I have an epub loaded on my iPhone 5 and Nexus 7.
Getting straight into Xcode
The instructor Amit Bijlani has a straight forward approach and they way he talks about certain concepts are pretty easy to grasp with real world analogies that the layperson can relate to. You’ll go over the nitty gritty of installing Xcode to get you up and running so there’s no worry about not being able to follow along.
You start playing around with the simplest examples in Xcode and you’re able to troubleshoot what’s going on exactly.
As with anything else in learning to code, Google the fuck out of everything or checking out Stack Overflow is a good option as well to reinforce your understanding.
Commit to a reasonable time line
When you think about it, 30 days is something that we can all can commit to without burning out. For some it might entail having to give up a good chunk of your weekends, but what you’ll get out of it is knowledge that will remain with you forever if you keep on building on your mobile development skillset. Cool thing is, you can use it as part of your experience as well as it shows initiative in your own education and something you can show off as well.
One noticeable feature that Treehouse shipped is what I like to call their “ETA” (Estimated time to arrival) feature to keep you on track. It calculates how many minutes you should be dedicating per day to finishing up the module, so you don’t have to. Of course, it’s the minimum amount that you’re putting into the course if you get everything on the first try. I’d estimate it to be a bit more than what amount of time that Treehouse calculates. Of course it depends on how fast you learn, which will vary from person to person.
Review to commit stuff you’ve learned to long term memory
Anki cards, as I’ve written about previously, are a great way to resurface concepts and quiz yourself and your understanding. I like to use up those spare pockets of time such as commuting or waiting in line to review a few cards here and there.
In future updates, I’ll try to be more frequent as well – hopefully weekly. In the meantime, I’ve not abandoned Rails, I’m just carefully plodding along as I’ve picked up Programming in Ruby on Amazon 🙂 I’ll probably jump back to Rails once I’ve shipped something in Swift first.