Want to relearn C, what book?

bob4432

Distinguished
Jan 22, 2014
5
0
18,510
Title says it all, learned C probably 15 yrs ago and never got a chance to really use it, so, well, can not program in C. Had an old book but figured there are so many technology differences between then and now, with all the different platforms, etc. I may as relearn with a strong core from this century.

My goals for your suggestions:
- Relearn good core C programming principles. I have a feeling a lot of this will come back to me, but I would like to make sure I will be guided correctly.

- I use multiple platforms, so will be programming for PC and also iOS, Android and other embedded systems where I have designed the hardware and would like to write my own code for it.

Please advise,
Bob
 
Solution
The C language may be considered a subset of Objective-C (or, to put it another way, Objective-C is a superset of C). Obviously C is compatible with Objective-C, though the reverse isn't true. C can be used in Android thanks to JNI, but its use should be reserved for particular algorithms and interfaces.

As for embedded systems, you can bet your donkey that knowing C is essential. That aside, I recommend the C Puzzle Book (Feuer), The C Programming Language (aka K&R), Algorithms in C (Sedgewick), and The C++ Programming Language, 4th Edition (Stroustrup).
Your old book is still good, what you need is a book / crash course on a platform. You might want to get a book on C++ - object-oriented programming (OOP) is what you will need to understand iOS/Android.

iOS/Android do not use C (or C++), but your knowledge in OOP will help for sure.
 

There is no "Read inside" feature for this book, but I would go with the first review of it:
This book is so bad that I don 't even know where to start to bash it.. it's a superficial, boring, wordy descriprion of the syntax illustrated by stupidly simple examples, it won't teach you neither programming conceps nor the richness , intricacies and richness of the language. Being such an "essential" language, C can be made to appear deceptively simple. That's exactly what this text does. Dynamic memory allocation is barely mentioned, pointers get just a cursory treatment.. no mention whatsoever about data structures.. basically all you can do after wading through the hundreds of pages of this text is writing for loops and if conditionals...
As if this was not enough, this book is abysmally obsolete. The author has evidently never taked the trouble to update his text through the many editions.. it's still about 16 bit integers and turbo c/c++, and towards the end it talks about win32 programming (yeah the hungarian notation ridden basic windows API..) like the brave new word of programming! And then it proceeds to plaster a few pages with win32 api call. And then, to be politically correct, and insult the linux world in addition to the windows one, it proceeds to show a few idiotic 10 line programs about process forking on linux. The final cherry is the CD. On it you will find: the watcom c/c++ compiler (which does not get even mentioned once in the text, which speaks about configuring Turbo C/C++!!!) and a bunch of totally unrelated and C programs about fractal image generation and simulations that has no connection whatsoever with the book and the author has scraped up God knows where..
In short this is not just a book written by an incompetent author, but worse, a book written by an author who 's purposedly trying to fool you into thinking that he's teaching you something of value while he's just wasting your precious money and time.
Avoid like plague.
Sorry for the long quote, but I would avoid this book at all costs! K&R still teaches you not just C, but programming practices as well
 

itmoba

Reputable
Aug 14, 2015
768
0
5,360
The C language may be considered a subset of Objective-C (or, to put it another way, Objective-C is a superset of C). Obviously C is compatible with Objective-C, though the reverse isn't true. C can be used in Android thanks to JNI, but its use should be reserved for particular algorithms and interfaces.

As for embedded systems, you can bet your donkey that knowing C is essential. That aside, I recommend the C Puzzle Book (Feuer), The C Programming Language (aka K&R), Algorithms in C (Sedgewick), and The C++ Programming Language, 4th Edition (Stroustrup).
 
Solution