Viliam_Bur comments on Open thread for December 24-31, 2013 - Less Wrong Discussion
You are viewing a comment permalink. View the original post to see all comments and the full post content.
You are viewing a comment permalink. View the original post to see all comments and the full post content.
Comments (207)
After trying and failing to grasp Objective-C for quite a while, I stopped Googling things like "Objective-C tutorial," "Objective-C documentation," and "Objective-C examples," and instead looked for "Objective-C for C++ Programmers" and "Objective-C for Python Programmers" because those are my two strongest languages. This was just tremendously efficient for a large number of reasons, the most obvious of which is that new information is expressed explicitly in terms of direct contrast to information with which you are familiar. The typical "computer language tutorial," in contrast, is in my opinion a very shoddy document from a pedagogical standpoint, usually appearing totally clear to anyone familiar with the language but vague and ambiguous to its target audience.
As someone who spends a lot of time reading Internet, I don't recall ever reading this advice before - learn new languages faster in context of languages you know - so I thought I'd post the thought here.
I heard that Objective-C is something like "Smalltalk implemented within C"; a solution trying to combine the advantages of both languages. Since you already have experience with C, I guess it could be useful to also learn some Smalltalk tutorials; not to become a fluent Smalltalk programmer, but to get an awareness of how things are approached in that language. And perhaps then, some things in Objective-C would make more sense as you would know what the authors of the language were trying to accomplish.
More meta: A few times I tried to write a programming tutorial or textbook, but I usually stopped at asking myself: "I am going to teach X to people who already know what?" Because when I am teaching, that is the essential question; I can't imagine doing it otherwise. I always start by asking my students what they already know, verifying that they really know it instead of just guessing my password. But how would you do the same thing with a textbook?! Then the remaining options seem to be just assuming some background knowledge (and I feel any specific assumption will usually be wrong), or start by explaining everything from some common base (e.g. high school math), but then the tutorials would be extremely long and a lot of starting material would be repeated in different tutorials. So to avoid the repeating, maybe I should separate the shared parts and actually make a tree of tutorials... and at that moment I usually see the amount of work, how much would it take... and I give up.