views:

859

answers:

9

Following the spirit of these questions:

...it would be interesting to know recommendations or advice for hiring a good Delphi developer.

Some time ago Steve Trefethen published a series of great articles:

...that provide a great summary of topics that a good developer in Delphi should master.

What are your suggestions?

+10  A: 

I'd go with the following points. They're phrased as principles, not as questions, but could be made into questions easily enough.

  • A thorough understanding of the Object Pascal object model.
  • Understanding what function pointers and method pointers are, and how to use them.
  • Familiarity with the most common classes and components of the VCL and RTL and how to use them.
  • Understanding Delphi's exception handling, knowing what try..except and try..finally do, and what the difference between them is.
  • Knowing how to use the principle of object ownership to manage memory properly.

These are the fundamentals, and IMO anyone who has these points down can master any Delphi-related topic with a minimum of trouble.

Mason Wheeler
+4  A: 

A basic understanding of threading, particularly the major pitfalls with respect to visual components so that they can be counted on to avoid them.

Argalatyr
+2  A: 

Also, deep knowledge of tclientdataset and the dbexpress & datasnap data access model.

Francis Lee
+1  A: 

In addition to understanding component ownership, I'd suggest this knowledge:

A good understanding of the differences between Interface references and Object references, including how that influences reference counting and memory management.

Another point is understanding of Database connectivity, including:

  1. DataSet/DataSource/Data aware components
  2. ClientDataSet/DataSetProvider

Then a good grip on XML and how to use that in Delphi (including XML Mapper, XML Data binding wizard)

Finally a pragmatic view to development: no single tool or technology will solve the job, so the trick is to choose the right ones.

Jeroen Pluimers
I wouldn't count database technology as "fundamentals", based on personal experience. When I got my job as a Delphi programmer, I didn't know anything at all about datasets or database technology. It was just something I'd never had to use before. With a good foundation to build on, I picked up all the DB stuff within a few weeks. But if I'd known all about datasets but not understood OOP or exceptions, I'd have been in way over my head.
Mason Wheeler
In my experience, few developers pick up the DB stuff in weeks. Since the DB stuff is extremely handy, even outside DB centric apps. I regard it as essential for any good Delphi developer to at least understand it. But hey - this world does not require everyone to agree on everything :-)
Jeroen Pluimers
Function pointers, method pointers, interface references, object references, datasetproviders... If this knowledge would be required to be a *good* developer (aka to get a job), I wouldn't have been able to find *any job* the first 3 years after leaving school. It would become a chicken - egg problem :)
Lieven
Maybe I should have asked 'what do you mean with "good"':-)
Jeroen Pluimers
I'm with Jeroen on this one. Anyone doing software development should make an effort to brush up on database fundamentals, even if it isn't related to their current job/project. And get familiar enough with the concepts to know when they do and don't make sense (not a silver bullet). From the developer's point of view, this gives them insight in to a whole class of tools for solving problems and (maybe more importantly) it makes them more marketable.
Bruce McGee
I disagree with you on the XML subject. It's easy to apprehend and not exactly "de facto" standard for data exchange. It's too redundant. JSON is getting more traction nowadays. And tomorrow, who knows.
Mihaela
+6  A: 

Seeing how the programmer thinks when given simple programming problems can also help identify the guru's from the wannabes. The interviewee will be under some pressure so the answers given will generally be the answers they are most comfortable with... look for things like solving the solution using a tStringList even if some of the new generic types make a better choice.

Test to see if the developer knows some of the nuances of the language that can only be learned only by experience. For example: How to track down an access violation, or find what line of the users code is generating an exception in classes.pas. What are some of the limitations of a case statement?

skamradt
+6  A: 

Why do you use Delphi?

Every good Delphi developer should know why they chose Delphi as their programming language.

... and they should be happy they did.

lkessler
A: 

Not specific to Delphi, but if they have read "Design Patterns" book by GOF and "Code Complete" by Steve McConnell, that's a sign that they have a good grasp of programming principles that can be applied to Delphi. Every programmer worth his salt should have read them. I should read them myself some day.

Also a good sign if they can name some popular programming blogs and sites e.g. Joel on Software, Stack Overflow, DelphiFeeds etc.

Alan Clark
+2  A: 

Difference between object oriented development and Visual development in Delphi.

gath
A: 

Hello i'm sorry. I made a mistake.

arnika