Book suggestions

R

Rob Kendrick

Hi,

I'm a C programmer of (I'd like to think) intermediate skill and
experience, able to throw most things together quite happily in C. I'd
like to get to the point of being able to legitimately use the word
"expert" on my CV. Does the group have any suggestions for books
targeted at the intermediate programmer, rather than beginning?

I suppose what I'm after is a guide that helps me build on what I already
know.

I'm shamed to say I don't even own a copy of K&R - is this essential
reading?

B.
 
O

osmium

Rob Kendrick said:
I'm a C programmer of (I'd like to think) intermediate skill and
experience, able to throw most things together quite happily in C. I'd
like to get to the point of being able to legitimately use the word
"expert" on my CV. Does the group have any suggestions for books
targeted at the intermediate programmer, rather than beginning?

I suppose what I'm after is a guide that helps me build on what I already
know.

I'm shamed to say I don't even own a copy of K&R - is this essential
reading?

I don't know if it is essential reading at this point, but I would never
dream of admitting to an interviewer that I didn't have my own copy, I might
even suggest it was well worn - which, in fact it is, pages are coming out.

For a more advanced book I would suggest _Expert C Programming_ by Peter Van
der Linden, it is not only informative, it is interesting too.
 
R

Rob Kendrick

I don't know if it is essential reading at this point, but I would never
dream of admitting to an interviewer that I didn't have my own copy, I
might even suggest it was well worn - which, in fact it is, pages are
coming out.

In the past, I've just referred to the spec, which is less than ideal.
For a more advanced book I would suggest _Expert C Programming_ by Peter
Van der Linden, it is not only informative, it is interesting too.

Looks excellent. I'll add it to the list - thanks.

B.
 
R

Richard

osmium said:
I don't know if it is essential reading at this point, but I would never
dream of admitting to an interviewer that I didn't have my own copy, I might
even suggest it was well worn - which, in fact it is, pages are coming out.

For a more advanced book I would suggest _Expert C Programming_ by Peter Van
der Linden, it is not only informative, it is interesting too.

I second that. I good read.
 
S

santosh

Rob said:
Hi,

I'm a C programmer of (I'd like to think) intermediate skill and
experience, able to throw most things together quite happily in C.
I'd like to get to the point of being able to legitimately use the
word "expert" on my CV. Does the group have any suggestions for books
targeted at the intermediate programmer, rather than beginning?

Well, one book that gets tossed around a lot is _C Unleashed_ by
Heathfield, Kirby et al.

Apparently it has been out of print for a few years but both new and
used copies seem to be still available on sites like amazon.com

See the thread titled "C Unleashed" started by Joe Wright.

One another book is _Expert C Programming_ by Peter Van der Linden.

You might also consider books on system programming and programming for
specific systems like Unix, Windows etc. Also you might consider books
like _UNIX Network Programming_ by Stevens. I know these are not about
C per se, but they do use C as their language and illustrate fairly
advanced programming tasks.
I'm shamed to say I don't even own a copy of K&R - is this essential
reading?

IMO, yes.
 
R

Robert Gamble

Hi,

I'm a C programmer of (I'd like to think) intermediate skill and
experience, able to throw most things together quite happily in C. I'd
like to get to the point of being able to legitimately use the word
"expert" on my CV. Does the group have any suggestions for books
targeted at the intermediate programmer, rather than beginning?

I suppose what I'm after is a guide that helps me build on what I already
know.

I'm shamed to say I don't even own a copy of K&R - is this essential
reading?

I would definitely pick up a copy of K&R2, it will give you a good
opportunity to gauge how much you really know about the language,
learn a few new things, and make yourself more well-rounded. I would
have a difficult time hiring someone who billed themself a C
programmer who didn't own and had never read K&R.

Below is a list of C books currently on my bookshelf that I would
recommend as intermediate/advanced or reference:

"Expert C Programming" by Peter van der Linden
"Secure Coding in C and C++" by Robert C. Seacord
"The Standard C Library" by P. J. Plauger
"C: A Reference Manual (5th edition)" by Harbison & Steele

I would also recommend reading the entire comp.lang.c FAQ (which
appears to be down at the moment): http://www.c-faq.com.
 
R

Rob Kendrick

Well, one book that gets tossed around a lot is _C Unleashed_ by
Heathfield, Kirby et al.

I'll see if I can find a copy.
You might also consider books on system programming and programming for
specific systems like Unix, Windows etc. Also you might consider books
like _UNIX Network Programming_ by Stevens.

I already own a copy of this from another project. It is indeed
excellent.
IMO, yes.

I'll add it to the list, then.

Thanks!

B.
 
R

Rob Kendrick

I would definitely pick up a copy of K&R2, it will give you a good
opportunity to gauge how much you really know about the language, learn
a few new things, and make yourself more well-rounded. I would have a
difficult time hiring someone who billed themself a C programmer who
didn't own and had never read K&R.

I didn't say I hadn't read it :) I borrowed it from my local library and
read it many years ago, when I was first starting in C. I suppose I
could do with a reread.
Below is a list of C books currently on my bookshelf that I would
recommend as intermediate/advanced or reference:

"Expert C Programming" by Peter van der Linden "Secure Coding in C and
C++" by Robert C. Seacord "The Standard C Library" by P. J. Plauger "C:
A Reference Manual (5th edition)" by Harbison & Steele

van der Linden's work seems to be widely recommended, so I've put that at
the top of my shopping list, along with K&R.

Thanks for your input.

B.
 
R

Richard

santosh said:
Well, one book that gets tossed around a lot is _C Unleashed_ by
Heathfield, Kirby et al.

By far the two biggest recommendations are K&R2 and the Van der Linden
book.
One another book is _Expert C Programming_ by Peter Van der Linden.

You might also consider books on system programming and programming for
specific systems like Unix, Windows etc. Also you might consider books
like _UNIX Network Programming_ by Stevens. I know these are not about
C per se, but they do use C as their language and illustrate fairly
advanced programming tasks.

In a terribly non CLC way. The Stevens book in particular uses a dialect
of C which would see him laughed out of this NG.
IMO, yes.

100% agreed.
 
D

Default User

santosh said:
Well, one book that gets tossed around a lot is _C Unleashed_ by
Heathfield, Kirby et al.

Ha. Maybe Hercules could toss that around. Mere mortals would require
the assistance of two men and boy.




Brian
 
T

Tyler Smith

Below is a list of C books currently on my bookshelf that I would
recommend as intermediate/advanced or reference:

"Expert C Programming" by Peter van der Linden
"Secure Coding in C and C++" by Robert C. Seacord
"The Standard C Library" by P. J. Plauger
"C: A Reference Manual (5th edition)" by Harbison & Steele

Hi,

From the sounds of it, I'm not as experienced as the original poster,
but I'm very interested in C reference books. I've read K&R, and
worked through most of the problems, and I am now contributing code to
a text processing program (latex2rtf), so I can handle at least basic
C.

However, what I'd really like is something akin to some of the more
popular Python or Perl books, which provide a broader survey of how
you apply the language, rather than the language itself - network
programming, cgi, database, gui. It seems that most recommendations
for books to follow K&R deal with more esoteric corners of the
language. I know I'd benefit from a deeper understanding of pointers,
but at the moment I'd rather work on broadening my knowledge of
applying C to specific application areas.

For example, I want to build an sql database with a html interface.
There are books explaining just this in Perl, Python, Ruby etc., but I
haven't found a reference to guide me through doing this with C. Do
people even do this stuff with C, and if so, what books do they learn
from? Or would I be better using a Python book as an introduction to
the problem, and then using C once I understand how it works?

It's probably pretty clear at this point that I don't have a very
strong background in computing in general. I check out all the
recommendations I see around here, but stuff like Expert C Programming
just doesn't seem to be aimed at people in my position. Any other
suggestions for people like me, or should I stick to stand-alone
command line stuff for my C programs and start learning a scripting
language for other things?

Thanks,

Tyler
 
S

santosh

Tyler said:
Hi,

From the sounds of it, I'm not as experienced as the original poster,
but I'm very interested in C reference books. I've read K&R, and
worked through most of the problems, and I am now contributing code to
a text processing program (latex2rtf), so I can handle at least basic
C.

However, what I'd really like is something akin to some of the more
popular Python or Perl books, which provide a broader survey of how
you apply the language, rather than the language itself - network
programming, cgi, database, gui.

There are books on how to do some of this, but they are usually in the
form of separate books.

BTW, you might find _C Unleashed_ useful.
It seems that most recommendations
for books to follow K&R deal with more esoteric corners of the
language. I know I'd benefit from a deeper understanding of pointers,
but at the moment I'd rather work on broadening my knowledge of
applying C to specific application areas.

For example, I want to build an sql database with a html interface.
There are books explaining just this in Perl, Python, Ruby etc., but I
haven't found a reference to guide me through doing this with C. Do
people even do this stuff with C,

Yes. The Berkeley DB is an example.
and if so, what books do they learn from?

The specifications for SQL and HTML.
Or would I be better using a Python book as an introduction to
the problem, and then using C once I understand how it works?

That would be okay. Do whatever suits you. No language is a silver
bullet. They all have their areas of applicability. A scripting
language with extensive libraries and documentation might be easier to
learn than C.
It's probably pretty clear at this point that I don't have a very
strong background in computing in general. I check out all the
recommendations I see around here, but stuff like Expert C Programming
just doesn't seem to be aimed at people in my position. Any other
suggestions for people like me, or should I stick to stand-alone
command line stuff for my C programs and start learning a scripting
language for other things?

Once you learn C then doing something useful with it requires you learn
_other_ things, not related to C at all, like OS APIs, communication
protocols, file formats and innumerable other things.

These are not part of C and thus C books and Standard have nothing to
say about them.

Most of these APIs, libraries, protocols and standards have documents
and RFCs explaining in detail how to us them. Indeed most of them are
themselves implemented in C and expose a C API as a given thing.

The problem of course, is finding the right information and going
through the, often tedious, process of learning them.

The difference with languages like Java, Perl, Python, Tcl etc., is that
they come with a vast library of functions that already do many of
these tasks. So a language guide can include and explain them. In the
case of C you usually need to refer to external documentation to do
this.
 
R

Richard

santosh said:
There are books on how to do some of this, but they are usually in the
form of separate books.

BTW, you might find _C Unleashed_ useful.

Did you? For what he wants? He is talking about applying the language to
real world problems. Your earlier suggestion about Advanced Programming
In The Unix Environment is a much better tact. From what I gather C
unleashed would not be too useful for that - you seem very eager to
suggest it at every opportunity so I gather you must have garnered a lot
from it in the same way I and others would recommend K&R2.

Yes. The Berkeley DB is an example.


The specifications for SQL and HTML.


That would be okay. Do whatever suits you. No language is a silver
bullet. They all have their areas of applicability. A scripting
language with extensive libraries and documentation might be easier to
learn than C.

Might? of course they are easier. Something like PHP couldn't be easier
to access stuff like mySQL which in the LAMP environment is an easy to
use, "for free" setup with hundreds of thousands of help resources
available. Doing it in C for a nOOb would be plain dumb.
Once you learn C then doing something useful with it requires you learn
_other_ things, not related to C at all, like OS APIs, communication
protocols, file formats and innumerable other things.

These are not part of C and thus C books and Standard have nothing to
say about them.

Most of these APIs, libraries, protocols and standards have documents
and RFCs explaining in detail how to us them. Indeed most of them are
themselves implemented in C and expose a C API as a given thing.

The problem of course, is finding the right information and going
through the, often tedious, process of learning them.

Which is what his requirement was alluding to. I would strongly recommend
against C at this stage from what I gather about his experience
level. It would take too long to get anywhere in order to maintain his
interest assuming he is new to programming.
 
T

Tyler Smith

Which is what his requirement was alluding to. I would strongly recommend
against C at this stage from what I gather about his experience
level. It would take too long to get anywhere in order to maintain his
interest assuming he is new to programming.

Thanks to you both. I started thinking this might be the case. I was
leafing through a Python book in the library, and it was exactly what
I was looking for, except it was in the 'wrong' language. And then I
got thinking that maybe there was a reason there wasn't a similar book
written for C.

Cheers,

Tyler
 
K

Kenneth Brody

osmium said:
I don't know if it is essential reading at this point, but I would never
dream of admitting to an interviewer that I didn't have my own copy, I might
even suggest it was well worn - which, in fact it is, pages are coming out.
[...]

My wife's K&R2 is on a shelf about 15 feet from me. However, I am
ashamed to admit, my own K&R (no "2") disappeared years ago.

--
+-------------------------+--------------------+-----------------------+
| Kenneth J. Brody | www.hvcomputer.com | #include |
| kenbrody/at\spamcop.net | www.fptech.com | <std_disclaimer.h> |
+-------------------------+--------------------+-----------------------+
Don't e-mail me at: <mailto:[email protected]>
 
C

Charlie Gordon

Tyler Smith said:
Thanks to you both. I started thinking this might be the case. I was
leafing through a Python book in the library, and it was exactly what
I was looking for, except it was in the 'wrong' language. And then I
got thinking that maybe there was a reason there wasn't a similar book
written for C.

Ruby is probably a better option than Python at this point. It is more
C-ish too.
Stay away from Perl.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

Forum statistics

Threads
473,996
Messages
2,570,238
Members
46,826
Latest member
robinsontor

Latest Threads

Top