PDA

View Full Version : Finished Objective-C book... can't understand iOS book




Red87445
Aug 18, 2012, 07:54 PM
Hi! I've never programmed before, but I had (still have) a strong desire to make an app. So I started out reading Kochan's book on Objective-C. I finished it and learned a lot, but I also felt that a lot of information flew over my head.

After finishing Kochan's book I started reading The Big Nerd Ranch iOS Programming book. I read up until chapter 10. Throughout the book I felt that there was too much information I wasn't absorbing/understanding. I decided to take a detour and tried reading The Big Nerd Ranch's book on Objective-C. I hoped doing so would help me understand iOS programming better by reinforcing my knowledge of Objective-C. I spent a couple days reading it and I read up until the last 4 chapters. The last couple of chapters talked about advance C topics, such as applying bit operators into your program. I found the material too difficult and since I already finished the bulk of the book I decided to go back to BNR's iOS book. However, I didn't find the iOS book any easier than before. I also felt like I didn't learn anything new from reading BNR's Objective-C book either.

I'm not sure what I should do now. I still want to learn how to program iOS apps, but I feel like BNR's iOS book is too difficult for me. Should I find another iOS book or reread Kochan's Objective-C book/find another Objective-C book to read? Are there any other iOS books that are easier?



chown33
Aug 18, 2012, 08:19 PM
Did you do the exercises in the book(s)?

If you finished one book but you think some it went over your head, you should go back to that book and do the exercises for everything you think went over your head. If you can't do the exercises, go back and read the material that explains it.

If you can't write programs using what you read, you need to study the material until you can. You can't learn programming just by reading. You have to write programs.

KarlJay
Aug 18, 2012, 08:59 PM
He's right, many people become 'cut and paste' programmers... they see a program in a book and run the ready-made example and don't take the time to learn.

One thing that might help is to understand the role of each. ObjectiveC is a general purpose computer programming language. It can be used on MANY different computers, Next, Mac, etc... any system that supports an ObjectiveC compiler output. iOS just happens to be one of those computers. iOS devices can run C, C++, ObjectiveC.

The "iOS" book is giving examples that are specific to iOS devices, and they are using ObjectiveC as the programming language. _IF_ you understood ObjectiveC well enough to write programs, then moving over to iOS will usually involve learning the iOS APIs.

In other words, ObjectiveC doesn't directly offer any camera support, the API does. ObjectiveC doesn't deal directly with touch/tap/slide stuff, the API does.

The APIs are routines made to handle very specific things (camera, touch, Bluetooth, etc...)

I can tell you right now that all the APIs for an iOS device are HUGE. It takes time to understand them.

It might help to focus on one small part of the iOS development, trying to understand SQLite, Touch events, BlueTooth, Graphics, GameCenter, etc... would be taking on too much too soon. Each one is a meal in itself.

I don't know if that helps at all or not.

Can you give us examples of something that's going over your head?

larswik
Aug 19, 2012, 01:19 AM
Red87445, this was me too. I started with the same book and was lost. Some people grasp these concepts easily and other struggle. Because yo u read all of those books it shows that you want to learn.

I would say reading is 1/3 and doing is 2/3. Just like you can read a book on how to fly a jet but as soon as you get in one to fly you will crash with out practice training.

Because I also wanted to learn how to make an app I stepped back into C and started with Learn C on the Mac. C teaches you the fundamentals of programming and how you control data flow through your program. When I finished I wrote a console based blackjack game.

After C I stepped back in to Objective - C (Not Cocoa) to getting get that. At that point it was easier to grasp.

Start with a simpler language.
Do all the tutorials and then create your own small projects from what you learned.
Take your time until it sinks in.

I have been at it for 2 years and it was a year until I started working with Coca to even design a graphical interface. If you want to do it take it slow and take a step back to easier language.

firewood
Aug 19, 2012, 02:32 AM
Learn some other programming language other than Objective C first. Write some programs in that language. Several. Do lots of coding to solve problems. Maybe thousands of lines of code.

Then come back and re-read the books on Objective C and Cocoa. Suddenly they will magically be transformed into much more understandable books.

In WWI and early WWII, the air force(s), by necessity, put lots of raw pilot recruit kids directly into fighter planes for training. Hundreds died before ever getting to the front lines. Some survived.

Now they start new pilots in easier/slower training planes first.

Don't die in a fighter plane before you can land a trainer.

ratfink
Aug 19, 2012, 02:46 AM
Learning bitwise operators without having experience with binary operations would be very difficult. As others have suggested, I'd recommend studying binary and basic C functions before bothering with Objective-C. A book on basic Unix C programming would probably make you a lot more comfortable with bitwise stuff.

thewitt
Aug 19, 2012, 03:35 AM
Not everyone is meant to write software, just like not everyone is meant to be a dentist...

KnightWRX
Aug 19, 2012, 09:07 AM
How can you go through these books in a matter of days ?

Set a goal of 1 chapter per day, sit down with XCode and do that chapter, exercises and all. Modify the chapter's code, make sure you grasp the concept enough to write your own version, not just copy/paste what's in the book.

Writing code, stepping through the debugger, watching variables change as instructions are run are the only way to really grasp what the book was telling you.

Mark FX
Aug 19, 2012, 11:49 AM
I have read both of the Big Nerd Ranch books mentioned, and found them to be great learning tools, I have nothing to do with BNR, so I am not trying to sell there books for them.
I had previous programming experience with Visual Basic on Windows PC's, so the Objective-C programming book was really only learning the differences in language and syntax from VB, but I still spent a month studying the book in order to absorb the information thourougly, if you only spent a couple of days reading that book, then you were just reading, but not learning.

The BNR book on iOS programming, is not a book to teach you how to write programs, but is a book to introduce you to the Various Frameworks and classes of the Cocoa Touch frameworks, and iOS operating system, in order to understand this book you will already need to know the Objective-C language thouroughly, I spent about six months with this book, and I still use it on occasions as a reference, so again if you only spent a week or so on this title, then you where only reading, but not learning.

To do all of the exersices in this book you would also have had to do a lot of reading of the Apple developer documentation, as the book shows only some of the features of various classes and frameworks, and then it encourages you to read more about the covered subjects of each chapter, from the developer documentation, only then could you have possably completed the set excersises at the end of each chapter.

So as others have indicated here, you have spent very little time reading these books, and have spent even less time doing the exercises, and more importantly, understanding what was explained.

My advise to you is dont give up on these books, just clear your head and start at the beginning again, dont rush, and dont skip the exercises, if you dont understand what was explained in the current chapter, dont go on to the next chapter, read the same chapter again, until you've got it understood, as you will need to know lesson one, before lesson two will make any sense.
Also the Big Nerd Ranch have reader forums for all of there books, where you can talk to other people reading the same book, and where the book authors also contribute to help readers understand the material.

Good luck with it, dont give up, and take your time.

Regards Mark

iHutch105
Aug 20, 2012, 07:04 AM
+1 for BNR.

balamw
Aug 20, 2012, 07:14 AM
Set a goal of 1 chapter per day, sit down with XCode and do that chapter, exercises and all. Modify the chapter's code, make sure you grasp the concept enough to write your own version, not just copy/paste what's in the book.


This.

Try to adapt what the chapter is teaching you to something of interest to you. (e.g. larswik took on a blackjack program IIRC). What kind of programs are interesting to you?

Plus, as Hillegass recommends. Get plenty of rest!

B

iJustinCabral
Aug 20, 2012, 11:33 PM
This was one of the biggest problem I had, which was not retaining the information and some core programming concepts.

My advice would be to 'Create a separate app for each new technique you learn throughout the chapters'.

Create many small and simple apps, but you'll slowly build a foundation and understanding of how everything works together.

So read the book, each chapter create your own separate app using their techniques, and visit forums

http://forums.bignerdranch.com/viewforum.php?f=211

Is the forum for the iOS development book from Big Nerd Ranch.

KarlJay
Aug 21, 2012, 01:23 AM
This was one of the biggest problem I had, which was not retaining the information and some core programming concepts.

My advice would be to 'Create a separate app for each new technique you learn throughout the chapters'.

Create many small and simple apps, but you'll slowly build a foundation and understanding of how everything works together.

So read the book, each chapter create your own separate app using their techniques, and visit forums

http://forums.bignerdranch.com/viewforum.php?f=211

Is the forum for the iOS development book from Big Nerd Ranch.

This is similar to what I do, I skip over some parts of a book that I don't care about and focus on area that might apply to a project or idea. Then expand on what the book offers.

One advantage is that once you get a good handle on one area, the other areas seem to fall into place.

Red87445
Aug 23, 2012, 09:34 AM
Thanks for your answers:) It was only BNR's Objective-C book that I read in days. I have to spend a lot of time on BNR's iOS book to even get through a chapter. But for BNR's Objective-C book I really did do all of the exercises and thoroughly read through it (except the last couple of chapters).

larswik
Aug 23, 2012, 12:27 PM
Have you done anything beyond those exercises?

I took a Java class at city college last year. I wanted to learn Objective - C programming but had to take the Java class first as an introduction to object oriented programming. I did not care about Java but I did turn in the excesses, thumbed through the book and wound up with a final grade of a B.

Because I didn't do anything above and beyond to learn Java by creating my own projects, experimenting and having fun. Today (1 year later exactly since I started the class) I could not write a Java program at all.

You won't learn from reading books without putting a lot of time in testing and exploring and most importantly having fun. Also start with an easier language or you will just give up because you are frustrated.

mrguru
Sep 6, 2012, 03:58 PM
I just fully committed to learning about Obj-C then moving to iOS and from many of the comments here its true you have to really code and make small programs on your own and make what you learned apart of you.

My Study Schedule I go about a chapter at a time taking detailed notes, and in my notes I translate definitions and concepts into my own words so that they would stick better, also you HAVE to keep coding and keep working at it to really master it.

I started with the BNR Obj -C book, and now im on kochan's Obj-C book which really is a bit more detailed to me on OBj-c vs BNR and it helps build on the foundation that BNR set. Keep at it it will all make sense. Again the key is to internalize and experiment!

SplitIt!
Sep 7, 2012, 01:30 AM
http://itunes.apple.com/us/itunes-u/ipad-iphone-application-development/id473757255

Listen to the lectures and do the homework ... you'll be writing apps in no time ...

macNewbie02
Sep 7, 2012, 02:44 PM
http://itunes.apple.com/us/itunes-u/ipad-iphone-application-development/id473757255

Listen to the lectures and do the homework ... you'll be writing apps in no time ...

Great link, this is how I started learning iphone development. However, in the middle of the lecturers I ended up watching this GREAT videos on Youtube:

Objective C tutorials:
http://www.youtube.com/playlist?list=PL38860A77CF9B4923&feature=plcp

and then I watched Cocoa Tutorials:
http://www.youtube.com/playlist?list=PLE83F832121568D36&feature=plcp

Cocoa Tutorials are aimed for Mac development, and not directly to iphone development - however, this has helped me a lot to understand the material covered in the more advanced course on itunes U.

I can't stress how well he covers the material - amazing tutor.

macNewbie02
Sep 8, 2012, 06:02 AM
He's right, many people become 'cut and paste' programmers... they see a program in a book and run the ready-made example and don't take the time to learn.

One thing that might help is to understand the role of each. ObjectiveC is a general purpose computer programming language. It can be used on MANY different computers, Next, Mac, etc... any system that supports an ObjectiveC compiler output. iOS just happens to be one of those computers. iOS devices can run C, C++, ObjectiveC.

The "iOS" book is giving examples that are specific to iOS devices, and they are using ObjectiveC as the programming language. _IF_ you understood ObjectiveC well enough to write programs, then moving over to iOS will usually involve learning the iOS APIs.

In other words, ObjectiveC doesn't directly offer any camera support, the API does. ObjectiveC doesn't deal directly with touch/tap/slide stuff, the API does.

The APIs are routines made to handle very specific things (camera, touch, Bluetooth, etc...)

I can tell you right now that all the APIs for an iOS device are HUGE. It takes time to understand them.

It might help to focus on one small part of the iOS development, trying to understand SQLite, Touch events, BlueTooth, Graphics, GameCenter, etc... would be taking on too much too soon. Each one is a meal in itself.

I don't know if that helps at all or not.

Can you give us examples of something that's going over your head?

Should note that unless you really really have to use SQLite(which 99% you don't) you should learn how to use core data instead.