• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1583
  • Last Modified:

Best way to learn Delphi

I'm considering learning Delphi, I'm after recommendations (for or against) all forms of instructional materials
and training courses. Information to consider:

- I'm in the UK, so physical courses held in the US or elsewhere are not much help
- Cost and flexability are issues, I will be paying for this myself (not my employer) and probably doing it around other activities.
- I already know C and Panther (a VB'ish GUI) and did study pascal on my degree course (nearly 20 years ago, eek)
- I know interbase, firebird and ingres so the database side I don't expect problems with.
- I want to learn a) how to use it and b) and to use it 'properly' - best practises, etc
Nick Upson
Nick Upson
5 Solutions
Ferruccio AccalaiSenior developer, analyst and customer assistance Commented:
My suggestion: Buy 'Mastering Delphi 7' by Marco Cantù
In my opinion is the best Delphi Expertise book. It's well explained in lots of differents languages with lot of code examples.
Take a look at www.marcocantu.com , there're also many links about Masters, OnSite trainings and so on
Wim ten BrinkSelf-employed developerCommented:
- Practice, practice, practice. It has taken me about a decade to learn Delphi to an extreme high level so don't expect to know everything about it next week.
- Be patient. If you don't know a solution now, you might know it by tomorrow.
- Use all resources that you have available. E.g. this website, but also other links to Delphi sites. Use Google to find them, view them, study them, spend a lot of time on it.
- Download the Delphi formatting expert at http://www.dow.wau.nl/aew/DelForExp.html to keep your sourcecode nicely formatted and readable.
- The Borland Developers Network is a nice place to start reading: http://bdn.borland.com/
- The Delphi Super Page http://delphi.icm.edu.pl/ has lots of free components that you can download and examine. They don't teach you best practices in all cases but it does show you most of the language features.
- The Delphi Magazine http://www.thedelphimagazine.com/ is an interesting magazine. It's in the UK so you could easily order it. Also order the CD-rom with older issues since they are useful reading material.
- The Delphi Informant http://www.delphizine.com/ magazine has gone down but the magazines are still available on CD-Rom. Soon ALL the magazines will be on CD so you might want to wait before you buy it to have the complete set.
- Your knowledge of other programming languages is a good thing but it will still take a while to adjust to the Delphi syntax. You'll probably start making errors by using the wrong syntax at the beginning. Furthermore, Delphi is a strongly typed language and requires everything to be defined before it is used.
- Visit the local bookstore, browse some Delphi books and check which ones you like.

About Delphi courses, My previous employer did send me to some course once and I ended up educating the teacher about some interesting things. I did learn a few things too, but nothing I could not have learned by studying for it myself. Some courses are just plain bad and a waste of a lot of cash. Others are so-so, if you're already experienced.
Read Delphi Developer's Guide from SAMS and there are some nice sites out there:
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

AFTER you find out how the GUI works you can always look for "delphi tips" , "delphi tutorials", "delphi howto", "keyword delphi" on Google.
I have to say that there is only so much you can learn from books, web sites, and these on-line question and answer sessions ... For me (and this is totally subjective) I find the best way to learn is to do *something* in the language in question.

For example, I wanted to learn how to write .dll web server applications in delphi so as part of my job we have a system which requires a review document be completed for every Task for tasks which affected many files this can take quite a while ... I wrote a web based system that would generate the review document for me automatically.

Similarly I spent a lot of time copying my entire music collection into mp3's on my computer and then backing these up to DVD so I decided to write an application that would allow me to specify a directory (in this case the root of a DVD) and would go through it and generate a list of all the directories on the DVD (thus providing me with an Album list).

This then led onto a slightly modified appliation that would search an entire directory tree and calculate the on-disk size of the files and display a warning for things that were very big ...

I also find it's very useful to re-use routines when developing so I wrote an application that reads a directory from a .INI file and displays all the ".txt" files in that directory (and sub-directories) as a tree view allowing me to click on a file and have the contents of that file copied to clipboard (so I could then paste the routine into Delphi) ...

I do a lot of e-bay on the side and so I wrote an application that would generate invoices for each sold item, an application that would generate the cost of postage for any given weight and world-wide destination (from the UK), and a website to allow the "winning bidder" the chance to change shipping options (brown paper, padded envelope, boxed, etc).

I guess what I'm saying to you is this; find a problem and solve it.

You'll learn a hell of a lot more actually doing something than from a book. Trust me, I've been on 2 Java courses at work now and have yet to have a single piece of Java work passed my way in the 12 months since ... How good do you reckon my Java is now?

Anyway, what's good for me might not be good for you ...


NB: I hate to say it, but an application that pops up a dialog with "Hello World" on it is the best place to start ... ;-)

I agree that the best way to learn to program is to do something.

I started with DBase in 1990 and Wampum (where are they now..).

My first 'real' programming experience was with VB (VB1).  I created a form, put two text boxes on it and a button to make a calculator.  It took me one hour and I thought - wow! this is easy.

I decided to write a contact manager - I can't tell you how long it took ... like forever....

A copy of Delphi (Professional) and some books - Sams is good.  I don't like the Cantu (Mastering Delphi Books) myself as he thinks he is some kind of Guru - which (after reading the books) he is not...

Look for books that are easy reading. Go to Waterstones and browse the Delphi books until you find the one that suits you.

Good Luck


just to repeat workshop_alex
- Practice, practice, practice. It has taken me about a decade to learn Delphi to an extreme high level so don't expect to know everything about it next week.

btw. i use delphi now about 10 years, and did not know all, yet

good suggestions here

meikl ;-)
I would recommend "Delphi in a Nutshell" as a refernce and "Mastering Delphi 7"
They will help with the basics right away, and the website http://www.delphibasics.co.uk/ & http://www.torry.ru/ will help too

I have been coding delphi only 2-3 yrs with no schooling , all self taught and delphi came very easily to me but I still have a long long ways to go before I can say Im good at it. I always learnt what I had to learn to do a certain task, trial and error... and I keep at it... like the man said "- Practice, practice, practice." :)

Wim ten BrinkSelf-employed developerCommented:
"Mastering Delphi" and the "Delphi x Developers Guide" are two good sources for the more advanced Delphi developers since they don't put much attention on the language and the syntax itself. They discuss more the libraries that are part of Delphi and some good programming techniques. Unfortunately, I have seen too many Delphi books that wasted lots of trees since half of them is like the Delphi manual, explaining the language, the syntax, what arrays are, what sets are, what strings are and a lot of other basic things you don't need to know once you have some experience. For a beginner, this would be interesting material, though. So if you've forgotten all about PAscal, most books will be okay. And yes, Sams is good.

But don't forget. Borland has it's own set of manuals that you can order if you like. And personally, I liked those the most. When I learned programming, I loved the manuals that came with my Turbo Pascal 6 version. :-)
Delphi Unleashed 4 by Charlie Calvert may be a good choice too. And of course practice is the best way to learn. Try to develop some little programs and don't forget to store your code samples.


Oktay Sancak
I have been doing Delphi since... it wasn't Delphi, lol... since Turbo Pascal... and still learn new things every day

I consider this site: http://delphi.about.com one of the best in tutorials and articles for all levels
Start contributing here, with questions, answers and comments including your code. There's nothing like a good set of well-meaning and merciless mentors to guide you through your apprenticeship.
Comment only....


I see that you are resident in the UK (as I am).

If you are looking to Delphi as a career move I would forget it in the UK.

There are few jobs here in the UK for Delphi Developers and despite the scarcity of Delphi Developers (compared to VB) when they do show up the rates are lowere than for VB Developers.

If you are looking at this thing as a career move I would recommend VB and SQLServer.  SQLServer DBA's get very good bucks (and dont need to know about programming) and as you have a good database background this would be easier (and probably more profitable).

Before anyone jumps up and kills me!  I am not restarting the Delphi/VB debate.  I am a 55 year old commercial programmer myself (this means I cant get a regular job in the UK) and live off programming from my home office.

I live well off VB and SQLServer - and yes I taught myself.  I became unemployable in 1990 (as a 40 year old design engineer ) and taught myself programming because I thought I could do better.

Good Luck with whatever you decide to do

VoodooMan, I don't question your experience and perspective but I'll offer a different point of  view.

I've been a programmer for 40 years and a software engineer for 30. I'm 60 years old, have a B.Sc. degree, and have filled a wide range of roles, ranging from military operations, systems programming, team leadership, entrepreneur, salesman to Fortune 50 companies, and corporate executive. For at least half of that time I have had the luxury of working either independently or with relatively small startup companies, with the insecurity that implies.

I have found that my personal productivity and the quality of my resulting products has been highest when I use the Pascal family of languages (Pascal, Concurent Pascal, Modula-2, Modula-3, Delphi), as compared to others, like the "C" family (C,C++,C#). In the 19080's, IBM studied the defect rate of programmers working in Modula-2 and C and found a factor of 4.3 times more errors by the C programmers.

When acting as an independent, I need to choose the tools that make me most effective and that has almost always resulted in a Pascal-family choice (through painful experimentation).

More important than any choice of language, though, is a thorough grounding in best practices in processes (life cycle), architecture and design, modeling (most recently UML with Enterprise Architect) and focus on the early stages of the life cycle, avoiding defects rather than trying to fix them (bugs) once I have deployed software. This has helped me, in particular, to deliver robust, flexible and scalable software in mission and safety-critical environments (like 911 emergency response call centres). I don't believe that I could have done so from a VB base.

VB is pretty much going away... there are many VB developers turning to Delphi because the new VB.NET is completly a new language
if Delphi is not a good option in the country you live, I would say go for .NET (C#), C# is a very new language, but already one that has become very popular, of course the beauty of .NET is that you can program in ANY language (that supports it) and everything can be "shared" among the different languages... so maybe Diamondback will be an option there, unfortunately I can't say that of Delphi.NET, but I'm really hoping that diamondback will become (again) the best IDE RAD tool for developing in Win32/.NET

Alan - dont get me wrong - I love Delphi - it makes fantastic software that is better looking, and faster running.

Making a Delphi App resolution independent and Platform Independent is a breeze and support for Win API is very good.  The database support is very good (I am using DBISAM at the moment - which is brilliant) and the range of tools available is fantastic (compared to VB - which is also very expensive).

I noted from the question that Nick is UK based.  It doesnt seem like his boss wants him to learn Delphi (and he appears to work in IT). If he wants to learn Delphi for personal pleasure then that's great.  If he wants to learn Delphi for career propsects in the UK, then he should look on some of the Job sites.  
On http://www.theitjobboard.com last week there were 150 jobs listed for Delphi and 1162 for VB.  The rates are generally lower for Delphi.  150 jobs listed in a country of 56 million aint that great.

Hmmm... Black Tiger - so VB is going away and all the VB guys are going to Delphi...  I bet Bill Gates is losing a lot of sleep over it.....

Most VB guys I've worked with would have no idea how to use Delphi... most of them had no idea what an object is and could care even less.....

Lots to think about - particularly when you think that in 1999 everybody was saying that Desktop Programming was dead and that it was all going browser based - Java was flavour of the month and we were all going to throw away our Desktops for thin clients.

Nick UpsonPrincipal Operations EngineerAuthor Commented:
Thanks everyone, in particular Voodooman for think out of the box. I am in the UK, I work as a contractor/consultant
already mostly with ingres (developer and DBA), C and unix. The idea of learning delphi is to expand on my considerable interbase & firebird experience but the idea of SQL server DBA would build on my ingres DBA experience instead.
It's very hard to get your first job using a skill that you haven't used commercially, I've generally found, I figured that
I could write some shareware or freeware applications to help with that, as some have suggested, any ideas how to do similiarwith SQL server?

If you have Ingres experience or Interbase (aka Firebird) then you could consider doing a 5 day SQLServer DBA course.

I am not upto date with the prices but I guess £1500 in the UK ($2500) would be the cost.

Now the trick here is to get a better deal for yourself.  Find a trainer you are happy with.  Have a good chat to them and ask if they have any last minute places going cheap - plead poverty as you are paying for yourself....

They will almost certainly offer you a deal (£1200) or something.  You say '...too rich for me...' and they will say '..how much do you want to pay...' and you say '£900' and they say '...no way....'.

Leave your name and number and when they want to fill the course - you will get it for £900 ($1500).

Now once you have done the course you are ontrack.. Ring around the agents and say you have good Ingress DBA and have done the SQLserver DBA course (doesnt matter that you arent MS Certified - few care) and the next time that they have small company, with a small budget who need someone with SQlServer - 'you are the man' - and someone will pay you £500 ($800) to get on the ladder.

Don't forget to be touchy feely with the agents. Keep in touch, ring once a week (not Mon or Fri, not before 11am or after 3pm) make sure you learn the names of their kids and their dogs - sooner or later one of those guys is going to give you a job.....

Before any of you guys criticise this - it will work.

Over the years I have employed several guys who were self taught or straight out of school.  I paid them minimum wage for 12 months (it got them 12 months experience and got me software testers I could afford) and promised to teach them good practise and real; word programming and get them on the ladder - it worked for two of them - the other guy flunked out.

As far as SQLServer is concerned, VBExpress (beta) and SQLServer 2005 Beta) are on the free CD's with PcPro in the UK this month for £3.75 (the 10th anniversary issue) - the MSDE (SQLServer by any other name) is free with some flavours of VB and Office 2000 - to mention just a few).

Good Luck

Well .... can I add constructivly to this discussion? Im 43 years younger than the oldest to post here ;-p) ... Delphi was the first language I learnt 4-5 years ago ... and I have been learning ever since :) I started with a copy of Delphi 3 and a book called "Delphi made simple" which was no end of help when first learning, but I take it you are past that :p I have and use Mastering Delphi 5 by Marco Cantu, whilst I have never read it 'cover to cover' it has proved a useful resource to learn new areas.   The one site which I am suprise nobody has mentioned is www.delphibasics.co.uk - an excellent site which provides extremely useful advice and explanations of the delphi synax.  Espeicaly for fiddely things like where the copy function starts counting from ;)

Unlike the majority of you, I have done the Pascal - > Delphi transition the otherway around... When starting college the class was given a lesson on VB and a lesson on Pascal (dos based turbo pascal) and it was unanamusly decided that we would use Pascal - why? well everyone found it easier to understand.  I have found pascal quite enjoyable, mainly for not haviing to bother about the HCI too much :)  However living in the UK, I expect before Uni comes and goes I will have to venture into C and Java ... though I would like to avoid VB as much as possible as it seems very ... erm ... random and unstructured. (any thoughts experts?)

well thats my unconstructive 10 minutes used up enjoy :)

David www.davidbirch2.com
Wim ten BrinkSelf-employed developerCommented:
Lol. I started around 1985 with Turbo Pascal 3 on my 4 MHz Tulip XT system. Moved my way up through all Pascal versions, then Delphi and now the .NET Delphi version too. And it's these 20 years of experience that made me the expert tham I am now.
So don't expect to be a Delphi expert within a month or so, unless you have a photographic memory and an IQ of 200+...
I thought all Delphi programmers had an IQ over 200?!
p ;)

Featured Post

[Webinar] Improve your customer journey

A positive customer journey is important in attracting and retaining business. To improve this experience, you can use Google Maps APIs to increase checkout conversions, boost user engagement, and optimize order fulfillment. Learn how in this webinar presented by Dito.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now