Looking for a book about C with special criteria

R

Richard

If you can cope with it I'd try Knuth's Art of Programming (volume
one). It takes you through a lot of detail about how computers
represent things like lists and arrays internally, and all that and
all in terms of classical computing.

I have never, ever, been able to understand how ANYONE can recommend
these to a beginner. They are not eminently readable at all. They are a
classic work used for reference. They are in NO WAY suitable to
teaching someone how to program a computer.

Technical reference, or a resource to look up some good legalize in
order to dazzle the clc regulars, maybe, but a beginners reference? Come
off it.
 
S

santosh

Richard said:
I have never, ever, been able to understand how ANYONE can recommend
these to a beginner. They are not eminently readable at all. They are
a classic work used for reference. They are in NO WAY suitable to
teaching someone how to program a computer.

Technical reference, or a resource to look up some good legalize in
order to dazzle the clc regulars, maybe, but a beginners reference?
Come off it.

They are suitable for someone who is quite proficient with mathematics.
The concepts are not difficult at all for an undergraduate or graduate,
as long as he can understand the maths. That's the part where most give
up.
 
K

Kenny McCormack

Richard said:
Technical reference, or a resource to look up some good legalize in
order to dazzle the clc regulars, maybe, but a beginners reference? Come
off it.

But that's what's important here in CLC, so it is quite natural that
that is what they would recommend. Makes perfect sense.
 
R

Richard

santosh said:
They are suitable for someone who is quite proficient with mathematics.
The concepts are not difficult at all for an undergraduate or graduate,
as long as he can understand the maths. That's the part where most give
up.

"Most". Thank you.

These are reference books.

The ONLY way to program is with a suitable language and a good
tutorial. Hands on. Lets say "C" here. 99% of good programmers are not mathematics
gods - they are logical thinking, ordered people.

The best introduction to programming I ever read was, and still is, the
tutorial part of K&R.

My first language was z80. I spent ages with pen and paper and my Rodney
Zaks. Yet I learnt more using a monitor on a nascom in 10 minutes than I
did in days of "paper work".

Knuth is not recommended as a beginners "programming tutorial". It is
something for all programmers to keep in their library in order to big
it up a bit IMO.
 
S

santosh

Richard said:
"Most". Thank you.

These are reference books.

I wouldn't call TAoCP as mere reference books. They broke new ground
when they were first published. They are a classic work in the field.
The ONLY way to program is with a suitable language and a good
tutorial. Hands on. Lets say "C" here. 99% of good programmers are not
mathematics gods - they are logical thinking, ordered people.

I did not say otherwise. I was just explaining that *some* programmers
might enjoy TAoCP. But even they are no substitute for practise. BTW, a
programmer who is weak with mathematics is ultimately doomed, no matter
what code he manages to churn out. IMHO of course, YMMV.
The best introduction to programming I ever read was, and still is,
the tutorial part of K&R.

Among the best yes.
My first language was z80. I spent ages with pen and paper and my
Rodney Zaks. Yet I learnt more using a monitor on a nascom in 10
minutes than I did in days of "paper work".

Knuth is not recommended as a beginners "programming tutorial". It is
something for all programmers to keep in their library in order to big
it up a bit IMO.

I agree. Recommending TAoCP and the C Standard is probably inappropriate
for the OP, but *some* people are likely to enjoy reading the former,
and even fewer number might enjoy reading the latter.

If the OP wants to know the machine specific details of C, a good option
is to get an architecture specific book and an assembly language text,
for the appropriate system of course. A general book on computers might
also help.
 
R

Richard

santosh said:
I wouldn't call TAoCP as mere reference books. They broke new ground
when they were first published. They are a classic work in the field.

When they were first published. They are reference books. Tutorials do
not "break new ground" in CS.

I know they are classic works. I have them. I also have a BSc and other
qualifications in CS and EE (sorry, but here I think its justified to
mention qualifications a little in order to dispel any idea I am
clueless about technical references), but I never used these books and
know no others who used these books as part of their courses.
I did not say otherwise. I was just explaining that *some* programmers
might enjoy TAoCP. But even they are no substitute for practise. BTW, a
programmer who is weak with mathematics is ultimately doomed, no matter
what code he manages to churn out. IMHO of course, YMMV.


Among the best yes.

Gracious of you. You will note I said "I ever read".
I agree. Recommending TAoCP and the C Standard is probably inappropriate
for the OP, but *some* people are likely to enjoy reading the former,
and even fewer number might enjoy reading the latter.

So we are agreed. Its "generally" a stupid idea to recommend either to a
nOOb looking to learn how to program.
If the OP wants to know the machine specific details of C, a good option
is to get an architecture specific book and an assembly language text,
for the appropriate system of course. A general book on computers might
also help.

You are losing it Santosh. The guy is looking for a C tutorial. Not a
dissertation on assembly optimizations in the C framework on platform
dependant setups.
 
S

santosh

Richard said:
You are losing it Santosh. The guy is looking for a C tutorial. Not a
dissertation on assembly optimizations in the C framework on platform
dependant setups.

Well he said he wanted a book that would go into system specific details
of C omitted from things like K&R and the Standard, like twos
complement, sign and magnitude, floating point formats, memory
alignment, etc.

I still say that an a book like say Write Great Code might help him.
 
R

Richard

santosh said:
Well he said he wanted a book that would go into system specific details
of C omitted from things like K&R and the Standard, like twos
complement, sign and magnitude, floating point formats, memory
alignment, etc.

Fair enough - I did lose track of that a little in the thread. Frankly I
think he's being too hopeful. Pick up K&R and learn the rest from online
resources as you go. None of it is rocket science. Writing clean
maintainable code is the best skill he could ever have over nitpicking
over whether a pointer to an array is ..."insert quibble here".
 
M

Mark McIntyre

Francois said:
Thank a lot.

I have to possibility :

[1] Computer Systems: A Programmer's Perspective

or

[2] Memory As a Programming Concept in C and C++


If I have understood, [1] doesn't talk about C. Is it true ?

As I said in my earlier post, the two topics are to an extent mutually
exclusive. C is designed to be platform-neutral and deliberately hides
the mechanics from its users, whereas accessing hardware is by
definition hardware-specific, while many languages will use the same
method on that hardware.

The best you can hope for is to pick a platform, and ask in newsgroups
specialising in that platform.
I'll wished make the good choice, because the prices are a little
expensive.

Most libraries will obtain books for you on request.

<OT>
I quite like the Bodleian in Oxford, as it claims to have a copy of
almost every book in existence. I once tested that by ordering up
obscure science fiction books and a copy of a hand-bound work by Gibbon.
They all appeared. Lord knows what the librarians thought of my request...
</OT>
 
M

Micah Cowan

santosh said:
They are suitable for someone who is quite proficient with mathematics.
The concepts are not difficult at all for an undergraduate or graduate,
as long as he can understand the maths. That's the part where most give
up.

The maths, the (obsolete) MIX assembly language (with its C-ish
ambiguities wrt word sizes), and the mathematicians' terseness of
language.

I have spent hours on a paragraph or two (of English) in some portions
of TAOCP, trying to delve the full meaning of what Knuth is saying.

I love Knuth, and I love TAOCP, but I've absolutely got to agree that
it is in no way suitable for beginners.
 
R

Richard

Micah Cowan said:
The maths, the (obsolete) MIX assembly language (with its C-ish
ambiguities wrt word sizes), and the mathematicians' terseness of
language.

I have spent hours on a paragraph or two (of English) in some portions
of TAOCP, trying to delve the full meaning of what Knuth is saying.

I love Knuth, and I love TAOCP, but I've absolutely got to agree that
it is in no way suitable for beginners.

I am unaware of any course where it was ever a recommended text for new
students. It's a reference. Nothing more. Nothing less.

I could understand hardly anything in it to be honest. It would be clc
nectar though :-;

I am at a loss to understand how anyone could recommend them for
beginners.
 
B

Ben Pfaff

santosh said:
They are suitable for someone who is quite proficient with mathematics.
The concepts are not difficult at all for an undergraduate or graduate,
as long as he can understand the maths. That's the part where most give
up.

TAoCP is perfectly suitable for anyone of middle school age
(approx. 12-14 years) or older who is willing to spending time
reading, re-reading, and studying the text. I am quite sure of
this because I first read TAoCP in middle school. Although I did
not understand everything, I understood the parts that I was most
interested in just fine after I studied them for some time. (The
same goes, by the way, for _Compilers: Principles, Techniques,
and Tools_.)

Anyone who is genuinely interested in computer science and
willing to put in some time and effort should study TAoCP. It is
an investment well rewarded.
 
W

Walter Roberson

I have never, ever, been able to understand how ANYONE can recommend
these to a beginner. They are not eminently readable at all. They are a
classic work used for reference. They are in NO WAY suitable to
teaching someone how to program a computer.

If I recall correctly (and I might not, it's been awhile), I read
the series quite early on in University and loved them; I would not
hesitate to recommend them to anyone who didn't faint at the sight
of an equation or a logical proposition and who wanted to know
how to program (as opposed to how to program in particular computer
languages).

There is, though, room for argument about whether I was -ever- a
"beginner" programmer ;-)
 
R

Richard

Ben Pfaff said:
TAoCP is perfectly suitable for anyone of middle school age
(approx. 12-14 years) or older who is willing to spending time
LOL!

reading, re-reading, and studying the text. I am quite sure of
this because I first read TAoCP in middle school. Although I did
not understand everything, I understood the parts that I was most
interested in just fine after I studied them for some time. (The
same goes, by the way, for _Compilers: Principles, Techniques,
and Tools_.)

You are a talented person. I know seasoned programmers of many years who
cant follow these texts.
Anyone who is genuinely interested in computer science and
willing to put in some time and effort should study TAoCP. It is
an investment well rewarded.

I beg to differ. I think it's undoubtedly an impressive work, but pretty
much impenetrable for the great majority of people.

I have never, ever heard anyone recommend it for new programmers
before. Especially for 12-14 year olds.
 
U

user923005

You are a talented person. I know seasoned programmers of many years who
cant follow these texts.

Name them (I've never met any computer science professional or student
that had a lot of trouble with the book [other than those who had
trouble with some of the mathematical notation, but that is not
necessary to understand the vast majority of it], and when I was going
to college a huge flock of us used it as a constant reference). It's
probably the easiest to understand book on computer science
available. I find it hard to believe that a seasoned programmer could
not understand it.
I beg to differ. I think it's undoubtedly an impressive work, but pretty
much impenetrable for the great majority of people.

I have never, ever heard anyone recommend it for new programmers
before. Especially for 12-14 year olds.

Make that two recommendations.
 
U

user923005

The maths, the (obsolete) MIX assembly language (with its C-ish
ambiguities wrt word sizes), and the mathematicians' terseness of
language.

I have no doubt that MIX is the easiest computer language to learn in
the world.
While 9 registers is a lot, the instruction set is simpler than any
real CPU.
Like C, MIX can be terse or expressive.
I have spent hours on a paragraph or two (of English) in some portions
of TAOCP, trying to delve the full meaning of what Knuth is saying.

I have done that also. Merge insertion sorting was the most painful
thing for me. But I cannot imagine a simpler way to explain it. And
his snowplow for replacement selection is truly a thing of beauty.
I love Knuth, and I love TAOCP, but I've absolutely got to agree that
it is in no way suitable for beginners.

I used it for my 'Beginning Computer Science' course CS201 as did all
of my friends. In fact, every single person who *passed* the course
used it (there were only 20 of us left at the end of the 1st quarter).
Now, that was (I admit) in college. Still, I think that Knuth has a
beautiful, concise and correct way of explaining things. It reminds
me of the C language itself.
 
R

Richard

user923005 said:
Ben Pfaff said:
[about TAoCP]
They are suitable for someone who is quite proficient with mathematics.
The concepts are not difficult at all for an undergraduate or graduate,
as long as he can understand the maths. That's the part where most give
up.
TAoCP is perfectly suitable for anyone of middle school age
(approx. 12-14 years) or older who is willing to spending time
LOL!

reading, re-reading, and studying the text.  I am quite sure of
this because I first read TAoCP in middle school.  Although I did
not understand everything, I understood the parts that I was most
interested in just fine after I studied them for some time.  (The
same goes, by the way, for _Compilers: Principles, Techniques,
and Tools_.)

You are a talented person. I know seasoned programmers of many years who
cant follow these texts.

Name them (I've never met any computer science professional or student

Name them? Sorry? What?
that had a lot of trouble with the book [other than those who had
trouble with some of the mathematical notation, but that is not
necessary to understand the vast majority of it], and when I was going
to college a huge flock of us used it as a constant reference). It's
probably the easiest to understand book on computer science

I graduated almost 20 years ago and I have never seen a more complicated
reference than Knuth. Hells Bells, its famous for being tricky to
read. But not for you eh? Good on you. You're clearly a lot cleverer
than most IMO.
available. I find it hard to believe that a seasoned programmer could
not understand it.

Sure. I believe you believe just that. It's not a question of just
understanding it. It's also a question of whether the time required to
follow it is worth the effort.
Make that two recommendations.

And a hearty "not in a million" from me. It's a reference book for
hardened tech types with a lot of time to decipher cryptic prose and
discrete notation.

For those not in the know, here's an extract of a draft:

http://www-cs-faculty.stanford.edu/~knuth/fasc1a.ps.gz

You would recommend this to a new programmer who wants to learn C?

Come off it.
 
U

user923005

user923005 said:
[about TAoCP]
They are suitable for someone who is quite proficient with mathematics.
The concepts are not difficult at all for an undergraduate or graduate,
as long as he can understand the maths. That's the part where most give
up.
TAoCP is perfectly suitable for anyone of middle school age
(approx. 12-14 years) or older who is willing to spending time
LOL!
reading, re-reading, and studying the text.  I am quite sure of
this because I first read TAoCP in middle school.  Although I did
not understand everything, I understood the parts that I was most
interested in just fine after I studied them for some time.  (The
same goes, by the way, for _Compilers: Principles, Techniques,
and Tools_.)
You are a talented person. I know seasoned programmers of many years who
cant follow these texts.
Name them (I've never met any computer science professional or student

Name them? Sorry? What?

You said: "I know seasoned programmers of many years who cant follow
these texts." and so I said, "Name them.", which is to say, "I don't
believe you." In other words, I think you made it up. So I said
'Name them' so that we can verify your claim by asking them ourselves
if it is really true.
that had a lot of trouble with the book [other than those who had
trouble with some of the mathematical notation, but that is not
necessary to understand the vast majority of it], and when I was going
to college a huge flock of us used it as a constant reference).  It's
probably the easiest to understand book on computer science

I graduated almost 20 years ago and I have never seen a more complicated
reference than Knuth. Hells Bells, its famous for being tricky to
read. But not for you eh? Good on you. You're clearly a lot cleverer
than most IMO.
available.  I find it hard to believe that a seasoned programmer could
not understand it.

Sure. I believe you believe just that. It's not a question of just
understanding it. It's also a question of whether the time required to
follow it is worth the effort.

If you want to be a computer scientist, I literally can't imagine time
better spent.
And a hearty "not in a million" from me. It's a reference book for
hardened tech types with a lot of time to decipher cryptic prose and
discrete notation.

For those not in the know, here's an extract of a draft:

http://www-cs-faculty.stanford.edu/~knuth/fasc1a.ps.gz

You would recommend this to a new programmer who wants to learn C?

For someone who wants to understand bitwise operations, I would be
interested to see a better example.
 
R

Richard

user923005 said:
user923005 said:
[about TAoCP]
They are suitable for someone who is quite proficient with mathematics.
The concepts are not difficult at all for an undergraduate or graduate,
as long as he can understand the maths. That's the part where most give
up.
TAoCP is perfectly suitable for anyone of middle school age
(approx. 12-14 years) or older who is willing to spending time

reading, re-reading, and studying the text.  I am quite sure of
this because I first read TAoCP in middle school.  Although I did
not understand everything, I understood the parts that I was most
interested in just fine after I studied them for some time.  (The
same goes, by the way, for _Compilers: Principles, Techniques,
and Tools_.)
You are a talented person. I know seasoned programmers of many years who
cant follow these texts.
Name them (I've never met any computer science professional or student

Name them? Sorry? What?

You said: "I know seasoned programmers of many years who cant follow
these texts." and so I said, "Name them.", which is to say, "I don't
believe you." In other words, I think you made it up. So I said

Why would I make it up? In order to allow some arrogant arsehole like
you appear to be smarter? I don't think so somehow.
'Name them' so that we can verify your claim by asking them ourselves
if it is really true.

I'm not bandying names of colleagues around here. You can believe me or
not. I don't really care.

And just to remind you, were talking about recommending texts for nOObs.
that had a lot of trouble with the book [other than those who had
trouble with some of the mathematical notation, but that is not
necessary to understand the vast majority of it], and when I was going
to college a huge flock of us used it as a constant reference).  It's
probably the easiest to understand book on computer science

I graduated almost 20 years ago and I have never seen a more complicated
reference than Knuth. Hells Bells, its famous for being tricky to
read. But not for you eh? Good on you. You're clearly a lot cleverer
than most IMO.
available.  I find it hard to believe that a seasoned programmer could
not understand it.

Sure. I believe you believe just that. It's not a question of just
understanding it. It's also a question of whether the time required to
follow it is worth the effort.

If you want to be a computer scientist, I literally can't imagine time
better spent.

I am a "computer scientist" .... And I can.
For someone who wants to understand bitwise operations, I would be
interested to see a better example.

You're as far detached from reality as anyone I have ever seen in
CLC. And that is saying something.

That is a formal reference. it is totally unsuitable for a nOOb wanting
to learn C IMO.

God I hope to hell you never mentor anyone. I've worked with people like
you in the past - all hot air and no trousers. Big words, no results. In
other words, and to quote you, "I don't believe you".
 
U

user923005

user923005 said:
[about TAoCP]
They are suitable for someone who is quite proficient with mathematics.
The concepts are not difficult at all for an undergraduate or graduate,
as long as he can understand the maths. That's the part where most give
up.
TAoCP is perfectly suitable for anyone of middle school age
(approx. 12-14 years) or older who is willing to spending time
LOL!
reading, re-reading, and studying the text.  I am quite sure of
this because I first read TAoCP in middle school.  Although I did
not understand everything, I understood the parts that I was most
interested in just fine after I studied them for some time.  (The
same goes, by the way, for _Compilers: Principles, Techniques,
and Tools_.)
You are a talented person. I know seasoned programmers of many years who
cant follow these texts.
Name them (I've never met any computer science professional or student
Name them? Sorry? What?
You said: "I know seasoned programmers of many years who cant follow
these texts."  and so I said, "Name them.", which is to say, "I don't
believe you."  In other words, I think you made it up.  So I said

Why would I make it up? In order to allow some arrogant arsehole like
you appear to be smarter? I don't think so somehow.
'Name them' so that we can verify your claim by asking them ourselves
if it is really true.

I'm not bandying names of colleagues around here. You can believe me or
not. I don't really care.

And just to remind you, were talking about recommending texts for nOObs.






that had a lot of trouble with the book [other than those who had
trouble with some of the mathematical notation, but that is not
necessary to understand the vast majority of it], and when I was going
to college a huge flock of us used it as a constant reference).  It's
probably the easiest to understand book on computer science
I graduated almost 20 years ago and I have never seen a more complicated
reference than Knuth. Hells Bells, its famous for being tricky to
read. But not for you eh? Good on you. You're clearly a lot cleverer
than most IMO.
available.  I find it hard to believe that a seasoned programmer could
not understand it.
Sure. I believe you believe just that. It's not a question of just
understanding it. It's also a question of whether the time required to
follow it is worth the effort.
If you want to be a computer scientist, I literally can't imagine time
better spent.

I am a "computer scientist" .... And I can.






For someone who wants to understand bitwise operations, I would be
interested to see a better example.

You're as far detached from reality as anyone I have ever seen in
CLC. And that is saying something.

That is a formal reference. it is totally unsuitable for a nOOb wanting
to learn C IMO.

God I hope to hell you never mentor anyone. I've worked with people like
you in the past - all hot air and no trousers. Big words, no results. In
other words, and to quote you, "I don't believe you".- Hide quoted text -

I taught C at Olympic College in Bremerton Washington, and several of
my students told me that I was the best teacher they ever had.
 

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

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top