So, I've been tutoring my friend for 2 years. Most people learn programming on their own in 3-6 months, (sans algorithms). It's confusing 'cause he'll run anywhere I tell him to, understands how to read C and C++ honestly better than the average college student, and he'll modify and repeat anything I do... but for the love of god he doesn't move on to new things and he still has test anxiety.

I've recently realized he's copied and toyed with existing, but not once gained an understanding of why. I was under the impression he was learning fast because he could write it, but when you say "Make a function that takes an NSString" and he says "How?" and I say "The same way you make ANY function that takes any parameter, NSString is just a type like int" and all I hear is "No, it's an NSString, it's a special thing." and we get into an arguing match 'cause I'm like "It's just a class like any other class, you've used them for months now" and blah...

I've subconsciously avoided comprehension questions because of this. Anyway, if you have him copy a program and say "Just initialize it" "Where?" "I don't care, didLoad or initWithCoder or Awake from nib, anywhere it gets initialized" and "No, it has to be exactly where you had it!" "No it doesn't!"

I'm sick of this, but he won't give up. So I'm done avoiding these yelling matches and becoming a sadist from now on. I would like some help in finding questions to ask him that force him to understand what he's doing.

I'd like some help and any resources I can find. CQuestions looked like a good site, but now I need some iPhone stuff.

For example: *What do properties do? How are they changed? How do you change the name of the getter?

*Why are Booleans inefficent? What advantage does int have over a boolean and how does the bit-shift operator help?

*What does Copy do to a string?

*What's the difference between a view controller and a uiview?

*Write a program from memory that displays blah on screen, and flashes each view one by one.

From beginner up to intermediate, hobbyist with some algebra at most. I'm just looking for resources to work with. I left in backstory so you know to "twist" the questions so he doesn't know he's supposed to init a variable here or there, but has to figure it out, and learn why it goes "here" or that "anywhere is fine as long as it's". Sample programs, anything.

I'm relatively open about this because, being a programmer, I seriously doubt he's the only one who has this issue. I'd like to know how others have overcome similar. What made things "click"? for you?

Did you have a hard time finding answers on Google, and how did you learn a better way to find what you were looking for? (He's so exact, he'll search for how to write a checkers program with color X and Y inside a uiview, as his search string, instead of breaking it up into components, I need help with that too, and believe it is related).

This type of problem has to remind one of us of someone they know.

So, Exercises to force them to think? Ways we overcame this thing in the past?

I greatly appreciate any help.

closed as too broad by user40980, user16764, GlenH7, BЈовић, Dan Pichelman Jun 30 '13 at 22:54

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • From the examples you give, I get the feeling that your friend might have an autism-related condition. I don't mean to disqualify him by this assessment, but if it is true, then you should consider that his brain functions differently from yours and that manifests itself mostly in how he learns new material, so you might have to adapt your teaching methods for him. – Bart van Ingen Schenau Jun 30 '13 at 8:53
  • He may suffer from logic allergy. Can he do reverse parking with a car? – ott-- Jun 30 '13 at 20:04
  • Bart, actually yes, I've seen symptoms and honestly I see my past-self in him. I taught myself drawing and realized rules are just made up, it freed me from a lot of my autistic thoughts. Right and wrong are meaningless, but he still thinks there's a wrong way to express creativity in certain arts. Anyway yes, I asked here because of that, figured we'd be able to relate more (as a group) – Stephen J Jun 30 '13 at 21:48

You have an XY Problem. See here and here

"Y" in your case is a resource request question to test comprehension of programming. For that, I'd suggest looking over .

The "X" in your case is that you have ceased being an effective tutor for your friend. Or looking at it the other way, he has ceased being a good student for you. Either way, the root of the problem is that he's not ready for the lessons you wish to present in the manner you wish to present them.

So it's time to stop the tutelage. At least for now. Let him go explore, build, and enjoy the craft. If things change and he's ready for more or you have new means to convey the information, then you'll realize it and the lessons can start again.

Don't ruin a friendship over a matter like this. Save that sort of destruction for something like "emacs vs vi" or a foray into the curly brace war. Ok, those aren't worth ruining a friendship over either.

Solve your X problem by realizing it's time to stop and move on to another chapter.

  • Ah yes, definitely I'm the worst. I throw people into effective gauntlets and expect self-motivation to pull them through. It only works on people who won't need it... But I've also held his hand, gone through sample projects with him, scheduled times, then I ask him to move on on his own and a week later, all he did was edit some variable, without understanding why it was put in the function. I've done this over and over. I think I'll take your advice and find another tutor, there's more problems I'm ill-prepared for, but he and I are good friends still, no worries on that. – Stephen J Jun 30 '13 at 21:53

Not the answer you're looking for? Browse other questions tagged or ask your own question.