Programming language book recommendations for each language

Dear sweet, intelligent, lovely, innocent and fellow Straight Dope participants, users and people! :slight_smile: :slight_smile: :slight_smile:

Let this thread be our programming language books recommendation thread please!

I have delved into C books way too much and let me share you the books that I have found to be the best ones for learning and improving and training!

Absolute Beginners:
C For Dummies

Beginner/Intermediate:
Let us C
C From Novice to Professional
Intermediate:
Programming in C
Advanced:
Expert C Programming

Good language reference book
The C Programming Language 2nd Edition

Those are of course my personal opinions. Let us know if you happen to be disagreeing.

Advanced C Tips and Techniques
By Paul Anderson and Gail Anderson

Hayden Books: ISBN: 0-672-48417X

Good luck finding it. Great book.

There is a series of programming textbooks, for various programming languages, by two authors named Deitel & Deitel (father and son, I think). They’re reasonably good run-of-the-mill books as far as I can tell. Not fabulous but not awful.

The interesting thing about them is that once you’ve read and studied one of them, you’ve read and studied them all! That’s some grand efficiency there! The books are nearly all identical, changing only the name of the programming language. Even the programming exercises at the end of each chapter are substantially the same.

It’s like they wrote one book, using XXXXX as the name of the programming language, and used it as a template. Then they did a global substitution, all XXXXX -> Pascal, then presto! There’s their Pascal textbook. Then they did a global substitution, all XXXXX -> C++ and there’s their C++ textbook. And so forth for various other languages.

For the student, this is great. Learn one programming language and you’ve learned them all! :smiley: :dubious: :smack:

I bought one of the Deitel books for C# when I was learning it several years ago. They are pretty comprehensive. One of the things I like is a running “Case Study” (I believe it is an ATM app?) that they build up brick by brick at the end of each chapter, even touching on design topics like use cases which aren’t strictly “programming”.

For Java, I found Cay Horstmann’s “Core Java” books to be pretty good.

Let me recommend a book called “Find the Bug” by Adam Barr. It has 50 programs, 10 each in five different languages, each having one bug and you are to find them. You can learn an awful lot about a language by debugging programs in it. Of course, the primary thrust of the book is debugging techniques. Oddly enough, there is also a Polish translation available (at least in Poland).

The Deitel books I saw (C++ and Java) used a Case Study of building a control system for a multiple car elevator system. Is that what your book had?

No love for Leo Brodie’s Starting FORTH?

Are textbooks still 800 page monstrosities that defy comprehension?

in 2004 I signed up for Unix, VB, C and SQL (which I should have known - it is a sub-set of the DB2 mainframe database).
Every course had a text of about 800 pages.

My old 1976 COBOL book was 135 pages, and included lots of pics.

You beat me there! That’s what I was going to post.

OK, then, Thinking Forth by the same author. But after Starting Forth.

I second “Core Java”. I’m reacquainting myself with C++ and am going through “Accelerated C++” by Koenig and Moo. It’s pretty old, but a good refresher for an experienced programmer. I also liked “C# for Java Developers” by Jones & Freeman.

The only textbook I’ve kept from university is “PL/I Structured Programming”. The language itself is more or less dead, but the book teaches how build containers like linked lists, queues, and b-trees from first principles. These are parts of the standard libraries today and youngsters don’t know how they work under the covers. I liked PL/I, here’s an example of the kind of thing you could do:



DO I = 1 TO 5, 8 TO 18 BY 2, 50 TO 55, 40 TO 44;
/* CODE GOES HERE */
END


Does anyone use FORTH these days? This is not a putdown, but FORTH was killed by language purists who would not allow standards for floating point (or anything but integer arithmetic), for string handling, or for other high level constructs. It is not that you couldn’t make such things, but they would be non-standard. I loved that language, but saw it die.

I teach programming at a community college and here are my favorite suggestions:

[ul]
[li] For C++ I use the Tony Gaddis book (but for some strange reason it has an Appendix about Alice!??![/li][li]For C# I like the Deitel book, but for us it’s the last class after learning C/C++. It’s the one with the ATM example. I like very dense text, but it’s very dense. We could probably teach all of our department’s topics from this one book if we took lots of time going through it. I have my students buy the mass-market version, which is about half the price of the “student” version but without color pictures.[/li][li]For Java, Reges-Stepp Building Java Programs, although I’m trying a Walter Savitch book next semester. [/li][/ul]

No love for the original K&R C language book? Nice and thin and easy to understand. That’s how I learned the C language.

Any recommends for Javascript? (It’s quite different from Java in case anyone not in the know is wondering why I’m asking.)

R: R in a Nutshell

“The interesting thing about them is that once you’ve read and studied one of them, you’ve read and studied them all! The books are nearly all identical, changing only the name of the programming language. Even the programming exercises at the end of each chapter are substantially the same.”

Not always. There is still quite a lot to learn from other books. Some tricks and shortcuts might be missing in one book but you can find them in another. Also, teaching style (wording of ideas, translation of them into sentences) is very important, I believe. If you are somehow familiar with psychology, you could understand what I mean.

I don’t know how much it’s used, but it’s still sold by FORTH, Inc. for Windows, Mac and Linux. There’s even a slightly crippled but no time limit evaluation version. I don’t know about a true stand-alone version, and of course the cool thing about FORTH was that it was the OS and programming language at the same time.

When Macs still used PPC processors the Open Firmware environment (accessed by holding down CMD-Option-O-F at startup) was a FORTH command line.

Nope - I just double-checked and it is an ATM. The book I have is C# For Programmers, 2nd Ed.

I learned to program during the Jurassic Era. We didn’t have textbooks, we had Reference Manuals. The Manuals had Tables of Contents. They worked great! Nowadays, basic features are sometimes put forth as “Hints” or ignored altogether. Some modern-day programmers seem to regard routine features as “Easter eggs” waiting to be discovered by the adventurous. :smack: And don’t bother to complain about poor reference manuals to a young’un – the stock answer will be “Don’t you know how to Google?” I think many would agree with me: we don’t need our hands held, and don’t want to go on Easter egg hunts; just give us the facts.

Fortunately, I’ve only bothered to learn one new language in recent decades. Unfortunately, since my goal was simple Web programming, it was Javascript.

There’s a reference manual you can download, but it’s almost useless. When I need to understand a Javascript feature, I just do a Google search. Most of the hits will be sites like www.w3schools.com, which often ignores all but the most trivial aspects of a function. I’ve had my best look clicking to stackexchange.com.

I wonder if others also find Javascript annoying. Try this code:

    var foo = "3.14";
    alert(foo + 16);
    foo -= 0;
    alert(foo + 16);
    foo |= 0;
    alert(foo + 16);

The features exposed by the above code, “cutesy” or not, are almost essential for proper use of Javascript. Yet they’re hardly clear in reference manuals – they’re almost like Easter Eggs! :eek:

Summary: Textbooks may appeal to some. But good Reference Manuals, routine in the Jurassic Era, would still come in handy today.

I’m a fan of “Learn You a Haskell for Great Good” for Haskell.

That one is pretty good, and used to be my desktop reference. Now, I use The R Cookbook. It’s a little light on the fundamentals of the language, but much more useful for those times when I don’t do anything with R for six months and need a quick refresher.

The R Book is terrible, worse even than printing out reams of the official manuals and package documentation. It’s one of a very few books that I have returned. (Though apparently there’s a second edition which is somewhat improved, going by the Amazon reviews.)