Best practices books

D

dgiagio

Hi,

There are dozen very good books out there teaching C language, C
standard library, UNIX, Win32 programming of all flavors. Nice... But,
I haven't yet found a book that in fact teaches you HOW to use all that
knowledge, how to organize your program, show you different styles of
coding, and KEEP you on the right track.

I think that knowing the entire standard is nothing if you don't know
how to use that knowledge the right way. I mean for "right way" the
elegant and maintanable way of doing things, the way to make you be
recognized as a good programmer.

Any advice?
Thanks.

DG
 
C

Chris McDonald

There are dozen very good books out there teaching C language, C
standard library, UNIX, Win32 programming of all flavors. Nice... But,
I haven't yet found a book that in fact teaches you HOW to use all that
knowledge, how to organize your program, show you different styles of
coding, and KEEP you on the right track.
I think that knowing the entire standard is nothing if you don't know
how to use that knowledge the right way. I mean for "right way" the
elegant and maintanable way of doing things, the way to make you be
recognized as a good programmer.


These are questions more about software engineering,
than about the standard C language in particular.

<OT>
Although not specifically on standard C, I enjoy the books:

C Interfaces and Implementations,
The Art of Unix Programming, and
The Practice of Programming

which do convey many of their best practices using examples of C projects.
</OT>

(However, if someone does know of specific books about development of
projects explicitly in ISO-C99, please speak up....)
 
I

Ico

There are dozen very good books out there teaching C language, C
standard library, UNIX, Win32 programming of all flavors. Nice... But,
I haven't yet found a book that in fact teaches you HOW to use all that
knowledge, how to organize your program, show you different styles of
coding, and KEEP you on the right track.

I think that knowing the entire standard is nothing if you don't know
how to use that knowledge the right way. I mean for "right way" the
elegant and maintanable way of doing things, the way to make you be
recognized as a good programmer.

These are all issues that are in no way unique to the C language, but
apply to software development in general. Altough offtopic on this
newsgroup, I'd still like to mention a few of my favorite books about
these topics: `The practice of programming' by Kernighan and Pike and
`Code complete, 2nd edition' by Steve McConnell's. Both discuss good
programming practices in general, from design to implementation,
debugging, testing and style. After you've read them cover to cover, a
good place to keep those is on the toilet, so you can never make up
excuses why you didn't have the time to study them :)
 
M

Malcolm

There are dozen very good books out there teaching C language, C
standard library, UNIX, Win32 programming of all flavors. Nice... But,
I haven't yet found a book that in fact teaches you HOW to use all that
knowledge, how to organize your program, show you different styles of
coding, and KEEP you on the right track.

I think that knowing the entire standard is nothing if you don't know
how to use that knowledge the right way. I mean for "right way" the
elegant and maintanable way of doing things, the way to make you be
recognized as a good programmer.
There are a few books, like "Code Complete" that deal with style issues.
There are also any number of purveyors of formal methods, all claiming to
have found a solution to the problem of delivering bug-free, maintainable
software on time.

But you are right, most projects that fail don't fail because code dosen't
adhere to the C standard, but because of poor management and control.
 
P

Paul Connolly

Best practice depends on who you are dealing with...

There are two great principles to learn from the history of C

1. evolution - C evolved from B and BCPL

2. simplicity - the limited straight-forward solution is best, at first, and
perhaps forever.

Write something simple that works, even if its functionality is limited -
concentrate first on the functions your client wants most.

Develop a relationship with your clients - be clear about your objectives -
do not aim too high at first - evolutionary design is better than big idea
up front - listen to your clients - show them what you've done so far - get
feedback from them early.

That is essentially an agile programming manifesto.

BUT
there is also merit in formalism - in small idea up front projects -
mathematical specification and formal proof of correctness (a la David Gries
Science of Programming), with clients who can understand what you mean.
 
B

Brandon Perry

There is a book by O'Reilly called Practical C Programming that
discusses organization, ways to use your knowledge, etc... I would
recommend it.
 
R

Robert Gamble

Brandon said:
There is a book by O'Reilly called Practical C Programming that
discusses organization, ways to use your knowledge, etc... I would
recommend it.

Really? I wouldn't. As I have stated before I think this is one of
O'Reilly's few bad apples. This book is filled with bad examples, poor
coding style, outright errors, and an obviously incomplete
understanding of the language as a whole. I can't provide any specific
examples as I threw out my copy long ago (I considered giving it away
but decided that would be a disservice) but I would strongly recommend
"The C Programming Language", "Learning C: A Modern Approach", or "The
C Book" instead. Although the reviews on amazon.com are mostly
favourable, it appears that most of the positive reviews there are from
less experienced programmers who probably wouldn't know any better if
they had not been previously exposed to better works. Indeed many of
the apparently more experienced programmers gave this book negative
reviews. This book has also received a "Not Recommended" rating from
accu.org, a very reputable source of book reviews for programming
related materials.

Robert Gamble
 
A

Al Balmer

There is a book by O'Reilly called Practical C Programming that
discusses organization, ways to use your knowledge, etc... I would
recommend it.

I deliberately avoided that book, because I bought a copy of the
companion volume "Practical C++ Programming" and threw it in the trash
where it belonged after reading only a few pages.

In the past, I've been known to opine that you couldn't go far wrong
with an O'Reilly book. My opinion has changed.
 
C

ChrisH

I think that knowing the entire standard is nothing if you don't know
how to use that knowledge the right way. I mean for "right way" the
elegant and maintanable way of doing things, the way to make you be
recognized as a good programmer.

For general how-to-be-a-good-developer info you can't go wrong with
The Pragmatic Programmer: From Journeyman to Master
(available at http://www.pragmaticprogrammer.com/ppbook/index.shtml)

The PragProgs have lots of other useful texts there as well.

I also second the recommendation for McConnell's Code Complete.

Cheers
 

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,764
Messages
2,569,567
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top