Maybe formal education would help.
Ok, so I have just finished reading chapter 3 of Programming in Objective-C 2.0 after flying through the content before it with ease.
I haven't read Steves book, I have to many unread books as it is. Given that I'm going to suggest a few things that might help.
1.
Find a local college that has a Comp Science program and get your self into a few classes. Different people learn in different ways but something tells me you might benefit from group learning. If nothing else you will get a little background into the science that can be helpful for a long time after those classes are completed.
2.
Read the book from cover to cover like it was a novel not stopping to do any of the examples, or explore those things that confuse you. Do this in no more than a couple of days. The idea is to prime the mind by breezing through the book and then go back to chapter #1 and start to read for content and develop a solid understanding of the examples and concepts.
3.
Take your time with examples, you need to understand exactly what every statement means precisely. By this I mean you should be able to walk through a program line by line and update every variable in your head just like the computer does.
I have to say it's stopped me in my tracks early, all of chapter 3 on Classes, Objects and Methods I basically didn't understand (except for a couple of bits).
This is an important step as you have to master these ideas if you expect to program iPhone or just about anything else these days. Not to be negative but you either need to grasp this or give up.
We don't want you to give up of course but trying to deal with abstract concepts across a pipe is a tough. The lag makes it difficult at times to latch onto what is the root cause of your trouble. This is where a local course might help substantially. I might also suggest that it might be more useful to learn C first before Objective C though that very statement is likely to cause an uproar.
The problem here is that every mind is different in how it learns and how it handles abstract concepts. Personally I think you would be better off mastering C and learning how some of the difficult things are done in C so that you have a base line for the advantages of Objective C and object orient programming in general. That is me of course, how you manage is another thing.
Any tips on helping me learn this? Other resources or anything which might make it a bit clear?
Here are a few idea to add to the above.
- Learn C first.
- Read the book completely first.
- Walk through each chapter indepth. That means experimenting outside of the examples offered in the book before going on to the next chapter. AS you rpgress you should be able to state all the concepts from the recnetly read chapter and all previoous chapters in depth. If you can't you are not ready for the next chapter.
- Read other books on object orient programming. They don't have to be based on Objective C either. The idea is to find material that makes your personal brain click with respect to the concepts.
- Once you have spent at least a week on the concepts in the previous chapters take a crack at chapter three again. Inch through it one concept at a time and then post questions here when the brick walls pops up.
- Don't post questions about anymore than one stumbling block at a time. Once you break though restart from the beginning of that concept and walk through the chapter again. Each step of the way you ought to understand the concept well enough to create workable code. If you can't write idomatic code based on what you have covered in the book so far it really makes little sense to move ahead.
- Realize there is a limit to the personal help you can get over the internet. At your level I really think it is a mistake to rely to much on forums like these for extremely basic skills. The problem is it is possible to get bad advice or heed the wrong advice and end up developing some really bad programming habits.
- There is a reason why comp sci courses are as long as they are. You really don't want to gloss over the basics which is what many do when learing from one book.
- Before you even think about chapter 3 (based upon what I imagine is in there) you need to have full command of some importnat concepts. This includes program flow control, pointers, stacks, arrays, queus, file I/O, lists, data types and other things from which object orient code is built. It is not just knowing what these items are but beign able to write code that uses these elements without effort. Things like Data types, and pointers are used extensively in Objective C code.
- In an way you should be able to take the abstract concepts of programming and overlay them on everyday life. For example you might think of the cupboards in your kitchen as an Array, with in which is stored the arrays contents. The Array might become multidimensional if you consider the shelves. An even beter example of a multidimensional Array is a spice rack with multiple shelves, as each location can only have one type of herb.
- An example of a stack can often be found in supermarkets where carts are often arraingened in a stack where carts to be used are removed from where they are inserted into the stack.
- No I'm not hungery but these ideas just come to me from time to time. The point is if you can't deal with how the abstract can be mapped to the real world you will have trouble. In C these structures might have simple data types, in Objective C, with Apples Libraries you might have Arrays storing objects as opposed to simple types.
- Life is short but don't rush learing this stuff. As mentioned above the colleges take a long time, relatively, to get the students up to a certain level of performance before diving into more advance concepts. At least they did 25 years ago when I took some comp sci courses.
Hope you. An help would really appreciate it, thanks.
I think maybe you got off on the wrong foot here and are in a bit of a rush. Step back take a breather and go to the library to read something loosely related to Objective C. Don't try to understand it but rather just read it through.
Ultimately your success is in your own hands.
dave