There are many great books on Delphi and Pascal which can be of use for Lazarus/FPC programmers. The great thing is, some of those books are dirt cheap today because nobody wants to read about Delphi 5, 6, 7 etc. today, but those books are possibly more useful to us than newer ones. For example, the newer the books, the more of the MS stuff they describe (ActiveX, then OLE, then .NET etc.), while to us are more important ways to use just LCL (ok, VCL) and Pascal. So here goes the list, roughly sorted by age:
Sedgewick: Algorithms - this one is a classic, and a great computer science book in general. In the original edition the examples are in Pascal which is a great news for us. Later editions were in C++ (and IIRC Java), and those books are valued more on the market, while the old ones (the ones we need) are considered deprecated and are practically given away. I've recently found a few of them from England on eBay with the price of less than 1 (one!) pound!
Tomes of Delphi: Win32 Database Developer's Guide - this book is a strange one, some might find it useful, while some would say it's useless. It could be useful for database beginners (including programmers which worked in other areas), covers database basics, relation algebra basics, normalizations and SQL. It also contains references to Delphi's data-aware controls, datasets etc. which might be helpful to anyone. The only thing which is definitely useless and obsolete is the content of two chapters which specifically deal with BDE. I'm not quite sure which Delphi version this book was written for, it looks to me it could be any one from 3 to 6.
Delphi 4 in 21 Days - this nice book covers many different aspects of Delphi programming, and most of the examples are easily adapted to Lazarus. The only downside is that the author frequently uses Windows API where VCL might have been used. I'm not sure if it's because VCL4 was too limited or simply because author was used to Windows programming in other ways. But all in all, I'd say it is an interesting reading with some tricks which could be helpful in areas he/she normally doesn't work on. It's also a light and interesting read. And the price, I've also found those for one pound, so I'd say it's worth it even if you intend to just skim the content and then use it for lighting a barbecue
Ray Lischer: Delphi in a Nutshell - I'd say this book is mostly useful. The writing style is dry, but it's packed with information. The first few chapters describe some background theory like the object model used, concurrent programming techniques etc. Most of the book is composed of various keyword an identifier references, but most of them are also present in Lazarus and FPC (except for Windows and VCL specific stuff), so it could be quite helpful. The book is written for Delphi 5.
Essential Pascal and
Essential Delphi by
Marco Cantù - these two booklets are FREE, they are made for introducing Pascal and Delphi, but they work perfectly for Lazarus too (except for the IDE interface stuff in Essential Delphi, of course). They can be downloaded for free, the links for them are on the
author's site.
Marco Cantù: Mastering Delphi series - good books covering several programming areas, and as always the OLDER ones are more useful for us - Delphi 7 book added .NET stuff, Delphi 6 one COM/ADO etc. I'm not sure what the Delphi 5 books was about, but perhaps that one is the cleanest . They are also the cheapest to buy
Julian Bucknall: Tomes of Delphi: Algorithms and Data Structures - another one on algorithms implementation, I think there is no need for further explanations
This book is not too cheap to get though.
Steve McConnell: Code Complete - this one is not about Delphi programming at all, but it's a GREAT book on software construction. Examples are given in several languages, including (a great deal of) Pascal. As a generally useful book, it's also not so cheap.
That's what I've found so far. Additions to the list are welcome, as are corrections of possible errors I've made. I'd also love to hear some recommendations for good books on database programming...