I have recently started my journey to learn programming, and got my self a book on Objective-C.

The thing is though: I get stuck quite often, trying to figure out how to solve the different exercises. I am quite new, currently on chapter 5 and trying to figure out how to do the different exercises.

I get stuck and can't solve the exercise, so I look up the solution on the official forum and try to understand how they solved it. Then I keep thinking that the authors intention must to be able to do the following exercises, so I get a little worried about not being able to do all exercises.

So I was wondering: is it bad learning behaviour to look up the solution online, and try to understand the method behind the solution, or should I keep sticking with that method, and learning it somehow sooner or later?

What did you do when you were in the same learning process as me?


It's that not bad, but...

  • Do you make a serious effort to answer on your own?
  • Do you compare your solution to theirs to see how it's different? Sometimes, there's more than one way to do it. Your way and the book author's way may be different but if you get a different solution that works and you understand why they chose a different route, that's OK.
  • Do you try to see a pattern in how you keep getting stuck? Maybe it's the author that is assuming too much about the reader, and keeps leaving out little bits here and there (I've seen soemthing like that once)?
  • Thanks for your comment FWFD, I do try to make a serious effort, and look through the book to see if I missed something. Your next ·, it's not wether my code is right or not. It's more because I can't come up with any solution, and then I end up on the forum. I don't know what piece of code I should write to make it work, and that's what I am 'worried' about. I assume it only gets more complex and advanced from now on, so I am not sure wether or not I can follow up and do the exercises listed. That's why I need some advice :) – Filuren Jun 10 '11 at 21:37
  • @ninjabol21: I would suggest you try one of two things after looking up the answer (or both): 1) try to do the same solution in a different way (use a while loop instead of the answer's for loop, for example), and 2) try to come back in a few days and do it on your own to see how much you retained from the answer. Either of these should show how much you retained from the study so far. – Caleb Huitt - cjhuitt Jun 11 '11 at 1:04

Specifying good exercises is incredibly difficult for the book or course writer. I was once tasked with producing exercises for my then company's Advanced C++ Course, and I ended up a sobbing wreck after a couple of weeks effort. So it is quite likely that the exercises you are asking about are not well designed or well stated. More important is do you feel you understand what you have learned, and can you do something with it?

  • I have indeed learned something from the book, like the for, while and do. I am not sure wether it's the math that's the problem or just how to do it in ObjC. Guess I'll just have to stick with the reading, do the exercises I can and look up and understand the ones I don't. Maybe it all makes sense as I continue reading through the book. – Filuren Jun 10 '11 at 21:54

Have you tried to see if you can find any patterns among the solutions that may help you in future exercises? That's what I'd be noticing as if you aren't picking that up on some level then it may be futile to do the exercises. For example, addition is a relatively simple Mathematical operation to learn, but applying it to polynomials or Complex numbers could be tricky for some people to give an example here. Once they've seen the idea of "collecting like terms" then they may understand how to apply that. Programming heuristics like "Divide and conquer" or "Being greedy" are similar general ideas that may be useful on some problems.

Another idea here is to consider making a list of various approaches in trying to solve a problem as a kind of "check list" and if none of those work then looking up the solution may not be a bad idea in most cases. I'm pretty sure I did something similar when learning various algorithmic heuristics in school as some of them may not be that obvious the first time you see them but generalize really well. Design patterns would be a good example here where a general idea can be applied in many ways to solve a problem.

Last but not least, recognize how you learn. Will you get the idea from a general problem or do you need a few practice examples to really get a concept? Do you prefer specific examples upfront or at the end? Are you better working with a group to learn something or are you better learning at your own pace? Do you do OK with a book or would an interactive tutorial suit you better? Those kinds of things are worth knowing sooner rather than later and can save a lot of headaches so that you aren't trying to learn something in a way that doesn't work well for you.

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