Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!elroy.jpl.nasa.gov!mahendo!nereid!john From: john@nereid.jpl.nasa.gov (John Veregge) Newsgroups: comp.lang.c Subject: Re: Can Novices Jump Directly in C? (Books) Message-ID: <6091@mahendo.Jpl.Nasa.Gov> Date: 10 Feb 91 02:23:56 GMT References: <1991Feb6.121722.1@hulaw1.harvard.edu> Sender: news@mahendo.Jpl.Nasa.Gov Reply-To: robert@triton.JPL.NASA.GOV Organization: Technology Development Group (JPL) Lines: 46 peregrin@hulaw1.harvard.edu writes: > Can anyone recommend an introduction to programming book that uses C? >I'm not referring to C-For-Pascal-Programmers etc. kind of books. I'm aware >that most introduction to programming books use Pascal, Basic, or Scheme as >their language, but I haven't seen anybooks that start a novice out directly >with C. Actually I learned both C and pascal (and fortran) the same quarter at UC San Diego. I am no genius (Hell, I wasn't even smart enough to stay in in school!) but I can program well and most of what I know came from books and magazines, not experience or classes. My first C book was "A Book on C" by Al Kelly and Ira Pohl. It was an excellent book that I still enjoy reading. The authors made no assumptions, and the text flows almost like well written prose. It is a very nice beginners book. A good second book (or companion text) is "The C Companion" by Allen Holub. This book presumes prior knowledge of C, but is written to further explain the more esoteric and powerful aspects of C to beginners. There is a presumption that the book's audience is conversant, but not fully fluent in C. Back then I did not understand how pointers work, since the concepts were quite alien to me. After reading this book I was able to re-write a quicksort program from my C class and code away all the array offsets into pointer in/decrements. This may sound trivial, but try recalling when you were a beginner, I'll bet pointers were not so trivial to you then. This book discusses the tools we use (compiler, linker, make, etc), binary arithmetic, assembly language (using a pseudo code), pointers, advanced pointers, recursion, programming style, debugging, and an analysis of printf(). I cannot recommend these two books enough. I can also recommend many more, but you did stipulate books for the rank beginner. {-: I would (as a final gasp) compare "A Book On C" to "Oh Pascal". The differences are that the pascal text is wordy, humorous, and moves at a slower pace. I prefered the pace of the C text. I think the pascal text is one of, if not the, best beginning programming textbooks. But, I did find the pace of it a might slow. Of course, your mileage may differ. -- John R Veregge Section 348 - Flight Command and Data Jet Propulsion Laboratory Management (Technology Development) Calif Institute of Technology Mail stop: T1704, Office: T1704-P 4800 Oak Grove Drive Phone: (818) 354-0511, FAX: 393-4494 Pasadena, CA, USA 91109 john@triton.jpl.nasa.gov