C PROGRAMMING TEXT BOOKS AND C TIPS AND TRICKS
GEOFFTOP COMPILER BASED BLOG CONTENT
Go to the C PROGRAMMING SECTION
Go to the C TIPS AND TRICKS
C PROGRAMMING TEXT BOOKS
I WANTED TO COMPILE A LIST OF GOOD PROGRAMMING TEXT BOOKS AND MANUALS
AS I HAD TO SPEND A LOT OF TIME WADING THROUGH GARBAGE TO GET TO THE GOOD TEXTS!!!
All of the texts listed have all contributed to my growth as a programmer.
C programming
Yes the language is missing a few features and syntax can sometimes be cryptic it still in my opinion gives
the most functionality in the most concise way. Where c++ can be a monster to learn.
C is simple yet deceptively hard to truly master.
Besides you can do anything in it, it compiles on anything,
especially when written with porting in mind and it's fast.
Also I find once you have truly mastered this language learning the other ones is a snap.
If you've can do object orientated program in c, c++ and Java seem to come easier.
I'm not sure if I would recommend it as a first time language but once you have a least a
grasp of some the concepts in the "simpler" languages you should be fine.
It's not nearly as hard as a lot of people make it out to be.
I used to think that not having mastered c or c++ would not be a big deal in my growth as a programmer.
After I actually learned the languages I realized that the low level perspective they give endows a
programmer with a far greater insight into what the computer is doing. For example, I can now often write far faster
code in someone else's favorite language than they can.
This is simply due to the fact that my machine code and C,
C++ experience gives me insight that allow me to get every inch out of the system that I can.
They need to be teaching the basics more in the University programs.
The object orientated java type languages are fine but Computer Science programs should focus more on the basics
(IE more of a focus on machine code and low level languages and algorithms).
The following text's are all you really need to master the c language.
Ansi C Standard: The definitive document on the language
this is not for newbies but if you put the effort into mastering it, it's worth it.
It often uses precise and math-like language so it takes some getting used to, but
once you've started to master C this text can take you to the next level! Note the
C99 standard I believe is the current one but almost no compilers have fully implemented it.
The c89 standard is generally fully implemented on most compilers these days so it's fairly good
and may be, in fact, be a better definiton more reflective of compiler's actually used in practice.
The C Programming Language - Kernighan and Richie: The classic text on the c programming language
written by the authors of the language themselves. This can even serve as a beginners text it's so well written.
The appendix at the back also serves as an exellent reference to read along with the C standard.
The language definition in this book is more easilly read by human beings then the standard, yet
still contains nearly all of the important elements in the language.
I'd recommend getting the newest edition availible but it's not a big deal if you don't.
The C Programming Language
Deep C Secrets Expert C Programming: Get this as a supplement to the above books.
This book is written in a light hearted style and manages to keep the reader interested.
In fact general purpose programers would enjoy this book for the interesting programming lore it contains (eg.
The twenty million dollar bug story). This book is really good at explaining a lot of the stuff the other texts don't.
If you have not read this book get it. It will make you a better C programmer.
It includes a way to unscramble those horribly complex C declarations you sometimes have to make.
It also explains the similarities and differences between arrays and pointers brilliantly, which
other books either gloss over or make you more confused than you were before you read them.
With a good understanding of these three texts and a lot of time on your hands you will be more than ready to master c.
Expert C Programming: Deep C Secrets
C A Reference Manual 5th Edition: This book makes a exellent reference manual
to the C programming language. It is well organized, well written and up to date.
Although not essential it's worth it's weight in gold if you havn't coded in C for a while or
just want to refresh your memory on a specific topic. It also tends not to gloss over
issues as other texts do, a good sign the book was written by people who use C all
the time and are familiar with the pitfalls and subtle points of the language.
C: A Reference Manual (5th Edition)
Write Portable Code - No Starch Press: The code in the book is in c/c++
so I included it here, but anyone with a interest in the topic will want this. It's the only
thing like it that i've found and it really helps get you thinking about portability before you even
start developing or thinking you'll ever need to port. Even if you choose to mainly use higher level languages,
low level code may still be needed and if you wan't to port your application you'll still need to
port the low level code as well. This is a must read especially before you start a big project.
Write Portable Code: An Introduction to Developing Software for Multiple Platforms
The Standard C Library - Prentice Hall: The definitive reference manual
about the C standard library. This is probably one of the areas of C I'm still weak in.
That said this book serves as both a reference manual for the library and as the
definitive text on the library. I think we often take the good old c standard library for granted.
You can do a lot of stuff with it and compilers often have blazing fast custom machine code to handle the
more popular functions. So it can be a good choice for performance and some people still prefer it
to the c++ stl due to the reduced learning curve. All C and even most C++ progammers could benifit
at least in some way from this one.
The Standard C Library
GEOFFTOP'S TIP AND TRICKS FOR LEARNING C: Here's my two cents on the issue!!!
1: Number one would have to be start out with console programs!! By console program
I mean those old fasioned black text display programs most compilers have a option to create.
Learning C and Win32 or any new API for that matter is a chore even for geniuses.
Learn C first and then learn how to use it with your operating system once you are more familiar with the language.
Trust me this turns a lot of people off at first and console programs turn out to be usefull even after you're
comfortable with the API.
2: Try not to use the internet for learning materials, use good texts
like the ones above. C is not a forgiving language and many people on
the internet do not have a sufficent grasp of the language to be aware of pitfalls in their code.
Bad programming habits die hard so why not be smart and don't learn bad habits in the first place.
Later once you begin to know what your doing it get's easier to gauge the skills of the programmer giving the advice.
So stay off the net for advice if you can get it from a reputable text book instead, at least until you grow more confident
in your skills.
3: Be patient. A lot of the C code you view can seem very intimitating if you don't understand it.
I often found certain texts way over my head at certain times for my skill level.
So I improved my skills with texts I did understand and kept writing code.
After 6 months or so I would often go back and look at the text I thought
was too advanced for me to handle and found I could now understand it with ease.
Be patient, with programming. I find hard work, good old fashioned determination and raw utter
will power almost always win out over intellegence. So keep at it and eventually you will amaze yourself.
More Programming Tutorials