The following involves research which may or may not be true.
The first study1 suggests we learn faster when we freely choose what to learn (as opposed to being forced). With agency, we are in control and change how we learn from our experiences.
However, this can also backfire as we can become delusional and think that we have control when we don’t. For example, following a sports superstition that does not change the game’s outcome.
The second research2 suggests that we like things because we chose them. This is backwards, since common sense dictates we choose things because we like them. This is really interesting since it suggests we rationalize our choice after the fact or ipso facto (by the fact itself).
These two phenomenons pair together and raise all kind of questions. Imagine a kid who freely chooses basketball and gets much better (than their peers who may not have chosen it). Does the kid like the sport since they are good at it or because they chose to play it in the first place? Of course, someone can have multiple reasons for why they like something, and it’s impossible to generalize since there are so many individual environmental factors to consider.
As a parent, I wonder how this can be utilized, and I don’t mean in some nefarious way. I take it to mean encouraging kids to pursue playing, reading, or learning whatever they want to. That way they will enjoy how they spend their time since they chose it.
Choice is a powerful thing, but it can also be paralyzing. With too many choices, you can waste a lot of time trying to find the best decision. The paradox of choice. Sometimes, I feel overwhelmed sometimes with prioritizing how I should be spending my free time. I don’t have an answer for this besides “do your best”, and the research suggests you will like it since you chose it. How amazing is that?
Chambon, V., Théro, H., Vidal, M. et al. Information about action outcomes differentially affects learning from self-determined versus imposed choices. Nat Hum Behav4, 1067–1079 (2020). https://doi.org/10.1038/s41562-020-0919-5
Silver, A. M., Stahl, A. E., Loiotile, R., Smith-Flores, A. S., & Feigenson, L. (2020). When Not Choosing Leads to Not Liking: Choice-Induced Preference in Infancy. Psychological Science. https://doi.org/10.1177/0956797620954491
Learning how to build a simple iOS app has not been bad. There’s a lot of learning how to find things in Xcode (protip: get a 2nd screen) and familiarizing myself with UIKit conventions. I completed the bitfountain iOS 7 course and have subscribed to more iOS newsletters than I care to admit.
At a meetup last year, I had a discussion about my choice to start with Objective-C. He asked me why I didn’t jump into Swift or use a tool like PhoneGap. Fast forward several months to today, I’m very happy I went with Objective-C. Whenever I am unsure how to do something in Objective-C, there are endless helpful blog posts and StackOverflow discussions out there. Even blog posts written before 2010 can be helpful. I am truly standing on the shoulders of all those heroic individuals who’ve tread down the path before me years ago.
With Swift, I’m sure there’s great documentation out there, but my guess is that Swift today (the beginning of 2015) cannot compete with the thoroughness of Objective-C edge cases discussed on the Internet.
Access to simple, basic questions like converting a NSUInteger to a NSNumber are essential for those just starting out. I’d like to use the example of an extremely beginner friendly resource, RailsCasts, which taught you how to use run of the mill gems, like Devise, and helped create a new generation of developers. Without a wealth of beginner accessible resources, a language or framework can’t grow or grow as fast.
I’ve started learning iOS programming. Objective-C seems very low level, but it’s alright as an older object oriented language. Learning the Apple frameworks seems to the be tricky part. There’s a lot for me to learn with using Xcode (since I don’t normally use IDEs) and frameworks like Cocoa Touch.
I spoke to someone recently who suggested skipping Objective-C and going directly to Swift. Or even a tool like PhoneGap. Personally, I side with Aaron Hillegass’ take:
I have three messages for these people:
If you want to be an iOS developer, you will still need to know Objective-C.
Objective-C is easier to learn than Swift. Once you know Objective-C,
it will be easy to learn Swift.
To take a longer perspective on iOS, I want to build my foundation up from Objective-C to iOS. This is similar to how learning Ruby is critical for being a Rails developer.
With that said, I’m eager to get my hands dirty with iOS prototypes through different online courses.