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! :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).
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.
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.
“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.
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:
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.
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.)