Problem Solving and Program Design in C (3rd Edition) : Jeri R. Hanly, Elliot B. Koffman : Addison Wesley Publishing Company (January 15, 2002) : ISBN 0201754908

For learning C programing, I used the online University of WashingtonCSE 142 TVI - Lecture Materials, Autumn 2000” course instructed by Dr. Martin Dickey.

Excellent – The instructor (Dr. Martin Dickey) giving the prerecorded video lectures provided a very understandable dialog and this made learning C incredibly easy. Along with this book, a person can gain a very good basic understanding of computer C programming. C++ and Java courses are also available online through the University Washington website, however, you may be lacking the excellent instruction from Dr. Martin Dickey. I used this book as a supplementary to the video lectures. Without the lectures, I consider this to be just an everyday book about learning C programming.

In order to watch these videos along side the JPEG slide show; you'll either need to update the Lecture Files or ensure you have the an older Windows Media Player version, or for other operating systems use WMClear for extracting the slide show timings as noted below.  Or guess when to turn the slide image.

For Windows operating systems, see my WMP9_template page for applying this fixed template to the CSE 142 videos.  (Required for viewing the videos alongside their timed slideshow or slide images using Windows operating systems.)

For Linux and other operating systems, see my WMClear web page hosting patches for fixing it's wmreader.  (For extracting the time markers metadata, or ASF script commands, when using Linux or other operating systems.) FFmpeg's ffplay or ffprobe will also display ASF slide transition timing metadata, according to FFmpeg's own timings.  Although FFmpeg has little acceleration, this is likely the best method of viewing the videos alongside their intended slideshow, as you can pause and not loose your place while switching slides, as the time within the output of ffplay corresponds to the metadata time markers initially printed.  On initial view, ffprobe/ffplay printout of the ASF time markings seem to be more closer to even mplayer's video stream A/V timer, then using wmreader's output.  Trying to put something together script based to automate the slides seems possible, but the necessary feature of a pause feature while watching will interrupt the video and slide automated synchronization.  So probably best to use a minimal file or image browser (such as geeqie) while playing the video.

Linux Shell Scripting with Bash : Ken O Burtch : Prentice Hall (January 2004) : ISBN 0672326426

This is an excellent book for the serious Bash scripting programmer who, “wants to learn a more proper Bash scripting fundamentals”. The author is well experienced with programming and demonstrates his knowledge thoroughly with this book. Well written and easily understandable. For anybody just starting Bash scripting to the more experienced scripter.


Linux Programming by Example: The Fundamentals : Arnold Robbins : Pearson Education, Inc. (April 2004) : ISBN 0131429647

After learning some C, this book will give you a proper method of programming GNU Linux/Unix system call APIs. (ie: Opening and writing to files.) Covers C language common to the Linux/GNU programmer, language not usually found in the other main stream C/C++ books. Includes proper, more common implementations including many examples.

(Very Good - Still reading)

Programming for the Ground Up : Jonathon Bartlett; Dominick, Jr. Bruno Ed. : Bartlett Publishing (July 31, 2004) : ISBN 0975283847
The first book detailing how to program Assembly Language using GNU Linux. A great book for any devoted programmer detailing how and why programming is the way it is. Includes the famous "Hello World" program as well as a detailed themed program within each of it's chapters for thorough studying. If you wish, sign-up for the
email list or view the it's archives. (Excellent - Only book on GNU Linux ASM to date! This should be a required supplementary book for any programming class teaching anything about GNU programming.)


Linux 2.6 Kernel Developement (2nd Edition) : Robert Love : Novell Press (January 12, 2005) : ISBN 0672327201

In my opinion, cut & dry but gives quite a few good examples such as the famous "Hello World" module. This book covers allot of material about the Kernel-2.6, including debugging techniques. The online reviews can document more about this book then I can as I've just started reading it. If you're a kernel developer or wanting to gain an understanding of the Linux kernel, then this is your book!

(Still reading)

The C Programming Language, Second Edition : Brian W. Kernighan and Dennis M. Ritchie. : Prentice Hall, Inc., 1988 : ISBN 0-13-110362-8

Your basic, should have on the shelf, C programming book which paved the path to ANSI C. "C Programming: A Modern Approach, 2nd Edition by K.N. King ISBN 0393979504", being more recently written and published, is mentioned within the #C irc channel as well.

Practical C Programming, Third Edition : Steve Oualline : O'Reilly Media (August 1997 ) : ISBN 978-1-56592-306-5

A good second source when stumped by the other books. Topics contain more explanation within this book.

Mastering Algorithms with C : Kyle Loudon : O'Reilly Media (August 1999 ) : ISBN 978-1-56592-453-6

Section I. "Preliminaries" really provided clarification concerning the confusion surrounding Arrays and Pointers.  Much like learning Assembly Language, and Assembly Language providing clarification of other language grammar and syntax implementations. Have yet to read the remainder of this book, as the remainder is loaded with information on C algorithms