Giorgi Chapidze 2 Posted March 23, 2023 (edited) Hi! I read 200 pages of Marco Cantu's book on Delphi, which may be good for a particular reader, but for beginners, IMO, it lacks in-depth explanations and only skims a topic a bit. Anyways, I am interested in the book How to Program Effectively in Delphi for AS/A Level Computer Science by Dr. Kevin Bond. Is it a good book for beginners? Edited March 24, 2023 by Giorgi Chapidze Share this post Link to post
Patrick PREMARTIN 82 Posted March 24, 2023 (edited) Kevin Bond's book is a progressive course used in schools in South Africa. It has a progressive approach with lots of examples. It was used for last summer learning Delphi bootcamp : Edited March 24, 2023 by Patrick PREMARTIN 1 Share this post Link to post
Giorgi Chapidze 2 Posted March 24, 2023 14 hours ago, Patrick PREMARTIN said: Kevin Bond's book is a progressive course used in schools in South Africa. It has a progressive approach with lots of examples. It was used for last summer learning Delphi bootcamp : Does the book mentioned cover all essential topics for going from a beginner to an advanced level? Which one would you buy from the two if needed? Share this post Link to post
David Schwartz 430 Posted March 25, 2023 2 hours ago, Giorgi Chapidze said: Does the book mentioned cover all essential topics for going from a beginner to an advanced level? Which one would you buy from the two if needed? Delphi has always maintained a strong commitment to backward compatibility, so pretty much ANY book you find will be useful for learning Delphi. At its core, Delphi is basically Pascal with classes added to it. So you can use pretty much any Pascal book as well, at least for the basics. Pascal was created to help teach programming, and books written for that purpose are far more informative about the language features than any book on Delphi is going to be. (It doesn't help that Pascal hasn't been used to teach programming for 20 years or so now, so basic Pascal books haven't been written in ages. And unless you want to learn Modula, you won't find anything that gets into "Pascal with classes". Dephi's "Object Pascal" is still with us today, but was never widely taught in schools.) So classes add another level of abstraction to basic Pascal. Related to this is Delphi's Run-Time Library, or RTL. But Pascal's UI never went past readln and writeln that worked on terminals of the era. Today they still work inside of a command shell window, and many people use them to demonstrate simple programs. 🙂 The real "magic" that Dephi brought us was Forms! To learn about forms, you have to dive into the Visual Control Library, or VCL, and that's a very specific set of abstractions that let you build GUI-based apps in Windows. Over time, a lot of stuff in the VCL has been moved over to the RTL and expanded upon. And in the past several releases, a ton of things have been hijacked from C# and added to Delphi's libs as "Helper Classes". You're not going to find much of anything that describes them other than just diving into the source code for the RTL and parts of the VCL. Maybe the Help files, although over the years, Dephi's "help" files haven't been particularly "helpful" for newer and more complex topics. From there, you'll get into specific types of classes that are more domain specific, and that's going to be where most books start to diverge. A lot of them will go into DB-specific stuff, and early books talk about things that are pretty much obsolete today -- eg., BDE and frameworks that pre-date the current FireDAC (FD) classes. But a book on Graphics or Games will focus more on using TCanvas and display-specific parts of the VCL as well as mouse, keyboard, and timer events. In other words, as you get into books about more specialized problem domains, they'll focus on different topics. That's where I'd draw the line between "basic" and "advanced" topics. If you're interested in Games, then a book that goes into detail on working with MS SQL Server isn't going to teach you much. A lot of us who've been working with Delphi since D1 have a large collection of books we've acquired over the years, and most of them are still useful, believe it or not. If you want to learn about creating components, there were some books written way back in the 90's that are still ideal for learning the basics, and they're hard to come by as well. A good gauge to use is perhaps the most commonly used thing in all of Delphi -- the basic TStringlist. It has been around forever. It gets a new method or two added here and there, and today it's far more useful and extensive than what it was back in the first release of Delphi. In fact, you could probably write an entire book on ONLY applications of TStringlist. For instance, one thing not many people know is that it can be used to read and write CSV files, and even let you access fields in each record. As you can see from Marco's book, as huge as it is, it could easily be TWICE the size if it included both details on things that have been around forever as well as on newer features. That's why the older books can be valueable -- they get into details on topics that nobody covers today simply to avoid making the books "too big". The topics are just as valid today as they were way back, but a book that included them would be a couple thousand pages long! Besides, you can only learn so much by reading books. I've learned far more over the years by reading code written by others than from books. Other programmers will invariably combine things in ways that you'll never see in books, because books just touch on isolated topics, while programs are more complex combinations of many different things and many levels of abstraction. Learning from books is more of a top-down process, while learning PRACTICAL topics is more of a middle-out process. If you want to challenge yourself to the limit, find something written in another OOP language you're famliar with, like C++, and try rewriting it in Delphi. That will force you to learn more nooks and crannies of the Delphi ecosystem than you'll ever get from any book! Share this post Link to post