By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
434,577 Members | 864 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 434,577 IT Pros & Developers. It's quick & easy.

A good C Programming book.

P: n/a
G.
Hi all,

During my degree, BEng (Hons) Electronics and Communications Engineering, we
did C programming every year, but I never kept it up, as I had no interest
and didn't see the point. But now I really want to get back into it as I see
a point with GNU/Linux. I want to get my old skills back and write something
or help on some projects etc.

I need some good books. I used to have one called "A Book On C", but sold
it,
and I have been reading various tutorials on the web and the many devoted
websites.

Anyone have any recommendations?

One more question, should I go for C or C++? Which will benefit me more with
GNU/Linux?

Thanks for your time,

- --
Regards

http://www.magicfx.co.uk
http://www.suretecsystems.com
Nov 14 '05 #1
Share this Question
Share on Google+
12 Replies


P: n/a
G.,

There are many aspects to consider when choosing a C book. "Problem Solving
and Program Design in C" (Hanly J., Koffman E.) is a very good one, for
beg./int. level; "C Programming Language" (Kernighan B., Ritchie D.) is also
a very good. If the person has clearly no idea of C, programming and
programming logic, I would say "C for Dummies" (Gookin D.)would be the best.
(Many will scream at me for that, sorry!).
Regarding your choice between C and C++....hard to say, even with "Which
will benefit me more with GNU/Linux?"
Depending on what type of application you will develop in Linux, C++ (object
oriented) might be better. But if what you will be doing is apply changes to
the kernel, or help out with current projects, C is better (as for they
currently use it).
My answer is: I don't know. (But I use C!) ;)

Hope I've helped.
Leo Custodio
al*********@hotmail.com

--
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.2

mQCNAz/nyswAAAEEAM1Jl14YqNlrUGmr4vh5OKGbDg5qiFnY/Ioqa5j5j9jlTsiH
7EJNlhIvu5OV223D0REUmWbFaKBQlnZAaDRRROb52YPuZ8NQfy u/C5zvTz8qubEx
jWn+nYryqKZxQsDwjntkNIMxx5n+QB7WhDltenCFE/VxYhsTa59EWqUqkz/RAAUR
tC5MZW9uYXJkbyBDLiBDdXN0b2RpbyA8YWxpZW5zcHJpdGVAaG 90bWFpbC5jb20+
=xAh5
-----END PGP PUBLIC KEY BLOCK-----
Nov 14 '05 #2

P: n/a
G.

"Leo Custodio" <lc********@rogers.com> wrote in message
news:H4********************@news04.bloor.is.net.ca ble.rogers.com...
G.,

There are many aspects to consider when choosing a C book. "Problem Solving and Program Design in C" (Hanly J., Koffman E.) is a very good one, for
beg./int. level; "C Programming Language" (Kernighan B., Ritchie D.) is also a very good. If the person has clearly no idea of C, programming and
programming logic, I would say "C for Dummies" (Gookin D.)would be the best. (Many will scream at me for that, sorry!).
Regarding your choice between C and C++....hard to say, even with "Which
will benefit me more with GNU/Linux?"
Depending on what type of application you will develop in Linux, C++ (object oriented) might be better. But if what you will be doing is apply changes to the kernel, or help out with current projects, C is better (as for they
currently use it).
My answer is: I don't know. (But I use C!) ;)
I decided to get a cheap one off ebay, and I got "Practical C++ Programming"
by O'reilly for 6, I am looking for the K&R one and the "Practical C
Programming" by O'reilly too. I think I will start with C first, as I am
familar with it, and general programming practice, then when/if I do some
gui work, start on C++.

Thanks for your time,

Gavin.

Hope I've helped.
Leo Custodio
al*********@hotmail.com

--
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.2

mQCNAz/nyswAAAEEAM1Jl14YqNlrUGmr4vh5OKGbDg5qiFnY/Ioqa5j5j9jlTsiH
7EJNlhIvu5OV223D0REUmWbFaKBQlnZAaDRRROb52YPuZ8NQfy u/C5zvTz8qubEx
jWn+nYryqKZxQsDwjntkNIMxx5n+QB7WhDltenCFE/VxYhsTa59EWqUqkz/RAAUR
tC5MZW9uYXJkbyBDLiBDdXN0b2RpbyA8YWxpZW5zcHJpdGVAaG 90bWFpbC5jb20+
=xAh5
-----END PGP PUBLIC KEY BLOCK-----

Nov 14 '05 #3

P: n/a
G.
[snip]

I'd say that K.N. King's book: C a modern approach is a much, much
better choice for this person. Gookin's Apple II books weren't all that
hot either.


I will check this one out too.

Thanks.
Nov 14 '05 #4

P: n/a
G. wrote:
I decided to get a cheap one off ebay, and I got "Practical C++ Programming"
by O'reilly for 6, I am looking for the K&R one and the "Practical C
Programming" by O'reilly too.
"Practical C Programming" might not be a wise buy, actually. Same with
"Practical C++ Programming". Neither got good reviews by the ACCU
(Association of C and C++ Users), which is generally held in high regard.

http://www.accu.org/cgi-bin/accu/rvo...&file=p001735a
-- Review of "Practical C Programming"
http://www.accu.org/cgi-bin/accu/rvo...&file=p001010a
-- Review of "Practical C++ Programming"
Both got a "Not Recommended" rating.
http://www.accu.org/bookreviews/publ.../0hr/index.htm
-- "Highly Recommended" works, indexed by subject.
http://www.accu.org/bookreviews/public/
-- ACCU reviews index
I think I will start with C first, as I am
familar with it, and general programming practice, then when/if I do some
gui work, start on C++.


Don't try to use C as a stepping-stone to C++. It won't work. Good C++
progams are not good C programs, and vice-versa.

In fact, don't think of C++ as a descendent of C. Think of it more like
a distant cousin or nephew. It's changed so much from when it was built
on top of C, to the point where a conformant C program is no longer
guaranteed to compile, or work correctly when compiled, in a C++
environment.
Nov 14 '05 #5

P: n/a
On Tue, 30 Dec 2003 22:18:58 -0000
"G." <ne********@ghenry.plus.com> wrote:
I decided to get a cheap one off ebay, and I got "Practical C++ Programming"
by O'reilly for 6, I am looking for the K&R one and the "Practical C
Programming" by O'reilly too. I think I will start with C first, as I am
familar with it, and general programming practice, then when/if I do some
gui work, start on C++.


You don't have to do GUI work in C++. X, GTK, motif, etc, are all done
in C. As far as books go:

"The Standard C Library" by P.J. Plauger
K&R _second_edition_
"The C Answer Book" by Tondo & Gimpel
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html by Steve Summit

/*OT
* "The UNIX Programming Environment" by Kernighan & Pike
* "Software Tools" by Kernighan & Plauger
* "Programming Perls" & "More Programming Perls" by Jon Bentley
* Any and everything that W. Richard Stevens ever wrote
OT*/

--
donLouis
Nov 14 '05 #6

P: n/a
G.

"August Derleth" <em***@for.address> wrote in message
news:lTqIb.1$C93.0@fe10...
G. wrote:
I decided to get a cheap one off ebay, and I got "Practical C++ Programming" by O'reilly for 6, I am looking for the K&R one and the "Practical C
Programming" by O'reilly too.


"Practical C Programming" might not be a wise buy, actually. Same with
"Practical C++ Programming". Neither got good reviews by the ACCU
(Association of C and C++ Users), which is generally held in high regard.

http://www.accu.org/cgi-bin/accu/rvo...&file=p001735a
-- Review of "Practical C Programming"
http://www.accu.org/cgi-bin/accu/rvo...&file=p001010a
-- Review of "Practical C++ Programming"
Both got a "Not Recommended" rating.
http://www.accu.org/bookreviews/publ.../0hr/index.htm
-- "Highly Recommended" works, indexed by subject.
http://www.accu.org/bookreviews/public/
-- ACCU reviews index
I think I will start with C first, as I am
familar with it, and general programming practice, then when/if I do some gui work, start on C++.


Don't try to use C as a stepping-stone to C++. It won't work. Good C++
progams are not good C programs, and vice-versa.

In fact, don't think of C++ as a descendent of C. Think of it more like
a distant cousin or nephew. It's changed so much from when it was built
on top of C, to the point where a conformant C program is no longer
guaranteed to compile, or work correctly when compiled, in a C++
environment.

I have read over the accu site and it sounds like the C++ is rubbish. I have
bid on the K&R one, as everyone recommends that. Well that other C++ was a
waste of money. I will also stick with C just now as that's what I kind of
know.

Thanks,

Gavin.

Nov 14 '05 #7

P: n/a
"G." <ne********@ghenry.plus.com> wrote in message news:<Tk******************@wards.force9.net>...
Hi all,

During my degree, BEng (Hons) Electronics and Communications Engineering, we
did C programming every year, but I never kept it up, as I had no interest
and didn't see the point. But now I really want to get back into it as I see
a point with GNU/Linux. I want to get my old skills back and write something
or help on some projects etc.

I need some good books. I used to have one called "A Book On C", but sold
it,
and I have been reading various tutorials on the web and the many devoted
websites.

Anyone have any recommendations?
"A Book on C" is a very good primer on C. Selling it was definitely a bad
decision. Look forward to get it back again.

Other books of interest are:
1> C Primer Plus, 4th edition - Stephen Prata. Sams
2> C : How to Program, 3rd or 4th edition - Deitel & Deitel
3> The C Programming Language, ANSI C 2nd edition - K&R
4> C Traps and Pitfalls - Andrew Koenig
5> Practice of Programming - Kernighan & Pike
6> Code Complete - Steve McConnell, Microsoft Press
7> Applications Programming in ANSI C, 3rd ed. - Johnsonbaugh & Kalin
8> C Programming FAQs - Steve Summit
9> C Unleashed - Richard Heathfield et al. (level: advanced)
10> How to Solve it by Computer
11> The Standard C Library - Plauger
12> C : A Reference Manual - Harbison & Steele, 5th ed.
13> Expert C Programming : Deep C Secters - Peter van der Linden
14> The Art Of Computer Programming, 3 volumes - Knuth
15> C Interfaces and Implementations : Techniques for Creating Reusable
Software - David Hanson ( Haven't read it myself, yet)
16> Algorithms in C, part 1-5 - Sedgewick
17> Inner Loops - Rick Booth
18> Programming Pearls, 2nd ed. - John Bentley
19> The C Puzzle Book - Feuer (haven't read it either)
20> Data Structures Using C - Tanenbaum, Langsam

It's always possible to get more books than you can read.
However, almost all of the above mentioned ones are, IMHO, classics.
If you'll be using UNIX/Linux as your development platorm, you should also
consider getting a few of these books:

1> Advanced Programming in UNIX Environment - Richard Stevens
2> UNIX Network Programming, 2nd ed. vol-1,2 - Richard Stevens
3> TCP/IP Illustrated, vol-1,2,3 - Richard Stevens
4> The UNIX Programming Environment - Kernighan & Pike
5> The Art of UNIX Programming - Eric S. Raymond
6> Linux Kernel Internals - Beck, et al.

Plus, books on Tcl/Tk, Perl, Python, GCC and Linux API are added advantage.
One more question, should I go for C or C++? Which will benefit me more with
GNU/Linux?


It's good for you to start with C. UNIX and Linux are mostly C based operating
systems, except some C++ code in X clients like KDE. However, it's considered
bad to stick to any one programming language. To get the most from UNIX or
Linux systems, you'll have to learn to work with a plethora of utilities,
shells, scripting languages, interpreters and compiled languages.

A very happy new year to all of you!
Regards,
Manish
Nov 14 '05 #8

P: n/a

"G." <ne********@ghenry.plus.com> wrote in message
news:Tk******************@wards.force9.net...
Hi all,

During my degree, BEng (Hons) Electronics and Communications Engineering, we did C programming every year, but I never kept it up, as I had no interest
and didn't see the point. But now I really want to get back into it as I see a point with GNU/Linux. I want to get my old skills back and write something or help on some projects etc.

I need some good books. I used to have one called "A Book On C", but sold
it,
and I have been reading various tutorials on the web and the many devoted
websites.

Anyone have any recommendations?

One more question, should I go for C or C++? Which will benefit me more with GNU/Linux?

Thanks for your time,

- --
Regards

http://www.magicfx.co.uk
http://www.suretecsystems.com


I keep in my arsenal of C books a very good reference text. It won't teach
you good programming skills, but it will have information handy when you
have a good C question. Its organzation of information is very good.

Harbison, Samuel P., and Guy L. Steele Jr. 'C A reference Manual'. 4th Ed.
New Jersey: Prentice Hall, 1995.

Michael Steve
Nov 14 '05 #9

P: n/a
Rod
Hello there, being a newbie to C and the forum, I've been reading these post
and have another suggestion for you.
I am currently on my 2nd year Meng and learning the dreaded C/C++.
I have some of the books noted and all have been very useful, but here is
another suggestion that I came across last year, it comes in the from of
training videos from http://www.vtc.com/uk.php
The C programming vids are extremely useful, don't rate the C++ though.
With full working programs and exercises as well as a course project to work
through it has helped me out when stuck.
Only problem is the price!!!!
"G." <ne********@ghenry.plus.com> wrote in message
news:Tk******************@wards.force9.net...
Hi all,

During my degree, BEng (Hons) Electronics and Communications Engineering, we did C programming every year, but I never kept it up, as I had no interest
and didn't see the point. But now I really want to get back into it as I see a point with GNU/Linux. I want to get my old skills back and write something or help on some projects etc.

I need some good books. I used to have one called "A Book On C", but sold
it,
and I have been reading various tutorials on the web and the many devoted
websites.

Anyone have any recommendations?

One more question, should I go for C or C++? Which will benefit me more with GNU/Linux?

Thanks for your time,

- --
Regards

http://www.magicfx.co.uk
http://www.suretecsystems.com

Nov 14 '05 #10

P: n/a
"Rod" <rh**********@ntlworld.com> writes:
I am currently on my 2nd year Meng and learning the dreaded C/C++.


Really? You'll have to let the rest of us know where we can find
out more about this language.
--
int main(void){char p[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv wxyz.\
\n",*q="kl BIcNBFr.NKEzjwCIxNJC";int i=sizeof p/2;char *strchr();int putchar(\
);while(*q){i+=strchr(p,*q++)-p;if(i>=(int)sizeof p)i-=sizeof p-1;putchar(p[i]\
);}return 0;}
Nov 14 '05 #11

P: n/a
On Wed, 31 Dec 2003 14:33:56 -0800, Manish Singh wrote:
6> Linux Kernel Internals - Beck, et al.


This is outdated! Instead get both this two:
1) Understanding the Linux Kernel, 2nd Ed.
by Cesati, Bovet - O'Reilly
2) IA-64 Linux Kernel: Design and Implementation
by mosberger, eranian - Prentice Hall

Then you should read Kernel Traffic at http://kt.zork.net
and if you're a beginner at kernel hacking subscribe to
http://www.kernelnewbies.org mailing list.

Then if you need more, ask elsewhere because this is
off-topic here! :) try on alt.os.development or comp.unix.internals.

Bye
Daniele
Nov 14 '05 #12

P: n/a
Hi
Seen ur qurey. Hope u need sound understanding in c programming. If
u r interested to improve ur knowledge in c follow this book. "C with
software Engineering Approach" by Peter A Darnel.

Cheers!

Anand.
Nov 14 '05 #13

This discussion thread is closed

Replies have been disabled for this discussion.