I wouldn't forgo that entire book... I did the same thing as you, learning Obj-C before C, except I knew Obj-C was an extension of C and so I thought I knew all there was to know about C.
But it turns out that on account of learning Obj-C first, I didn't learn about some of the plain old C ways of doing things. For example:
A struct is basically a class full of instance variables and no methods. Do you know how to use them? NSRange and NSRect are examples of structs that Apple uses that you might have used before.
Do you know how to use a c-array? They look like this
Code:
int array[3];
array[0] = 2;
array[1] = 3;
array[2] = 10;
printf("%i", array[1]);
Can you use a function pointer?
Do you know how to allocate memory?
Can you use switch statements?
I would just look through this and read any chapters that you don't think you understand just so you can make sure you know all there is to know about C.
http://c.learncodethehardway.org/book/
Also note that ALL VALID C CODE IS ALSO VALID OBJ-C CODE.
If you know how to do something in C and Obj-C, and doing it the C way won't take significantly more time or lines to write, do it the C way. Your code will be more portable (more platforms understand C than Obj-C,) and chances are it'll execute faster.
Other languages you can learn:
C++
java
C++ is mostly just an extension of C, although occasionally the authors decided to take out features of C that they felt were insecure. Honestly, I don't like C++... I feel like the main new features that it has and other languages don't just lead to more confusing code. IE, they allow you to redefine operators in the language. So typing
Is valid. What does it result in? "string1string2"? Okay, fine, but what about
I don't think it's valid, but it could be depending on how the string class is written, and lord knows what they decided to make the minus operator do.
Java is inspired by C++ but they managed to weed out a lot of the stupid ideas from C++... unfortunately, they didn't get all of them, because a terrible concept introduced in C++, known as exceptions, still exists in Java (and I actually think Java's standard classes utilizes them more.) The basic concept of an exception is that, rather than have errors when you try to compile buggy code, or return error codes, it's much better to crash or slow down the application. The person who introduced the concept in C++ is on my time traveling hit list.