2 minute read

Day 1

Timeline:

  • 0800-Arrive, realize from overhearing other students that there was an email sent out this weekend that asked us to complete 50% of the fundamentals course. Rush through the online learning platform modules until instruction starts.
  • 0900-Our instructor, David, takes 30 minutes for the class to introduce themselves, and another 30 minutes to go over the basics of Swift.
  • 1000-We’re set loose to continue to work on the Swift fundamentals online modules.
  • 1100-All work in the class is brought to a halt to work on algorithms. David covers O(n) notation and the comparative speeds of different sorts. We then breakout into groups of two and are told to implement an insertion sort.
  • 1200-The class is released for lunch. I walk across the street to the Tully’s coffee shop for a small medium roast and come back to the Dojo to continue working on the modules.
  • 1530-David calls the group back in to discuss one of the assignments in the module. He specifically covers the difference between structs and classes in Swift (classes are pass-by-reference and support inheritance, structs are pass-by-value and do not support inheritance) which is critical to completing the assignment.
  • 1700-David covers the homework that is due before we start tomorrow. About half the class leaves and the other half continues to work on the day’s assignments.
  • 2000-I go home for the night after working to get a little bit ahead on tomorrow’s modules.

What I’ve learned: There are only a couple big differences that I’ve noticed between Android Java and iOS Swift so far. The first is the idea of structs, which I covered earlier. Java simply doesn’t have structs. Everything is a class. The second thing is the idea of wrappers, which is Swift’s explicit means of checking against null values. It’s somewhat annoying right now, but I’ve got the feeling that it’s going to be worthwhile down the road.

Impressions of the Coding Dojo: Wow… this place is incredible. I was initially afraid that I’d be overqualified given my experience in mobile development. I’ve asked some pretty technical questions of our instructor David (are Swift datatypes primarily primitives, classes, or both like Java? Is it possible to pass structs as references instead of their default of pass-by-value?) and he knocked it out of the park each time. What’s more is how responsive he’s been to struggling students. At one point I had begun to struggle with the exact syntax of a Swift anonymous function and had opened up a Stack Overflow on the subject in order to hack it out. That Stack Overflow window wasn’t up for more than 3 minutes before David saw it and was over at my workstation explaining exactly how to implement one as well as why an anonymous function may not be the best choice in that particular instance.

With regards to hardware, I had zero exposure to Apple or Apple products prior to Coding Dojo. I’m just now starting to adapt my input techniques to conform to Apple sensors rather than continuing to try and force Windows input paradigms (as an example, I just started using the two touch scroll and zoom on the trackpad rather than using arrow keys for everything).

Updated: