No one wants to pay a consultant to “learn on my dime”. Just today, a technical consultant at another firm told me that he doesn't charge for some of the experimentation that he does.
It's not a simple determination: “Is the work I'm doing learning? Should the customer pay for this time?”
There are several factors at play.
1. The “statement of work” agreement between a client and a consultant should say something about what the consultant is expected to know. This is called the “skills” section sometimes. E.g., “This project will be performed by an engineer with Cisco router management experience.” But if part of the project involves work not covered by the Skills section, and the consultant has to figure something out, should the client pay? Or what if, using our example, the Client is using a Cisco router with software newer than the consultant's experience, and a feature (say, MPLS), and the Consultant is new to that. What should be charged to the client?
2. Normal employees charge (collect a salary) to learn all the time. In fact, most firms offer some sort of training or mentoring. So should an outside contract consultant never charge for time spent learning?
3. What is acceptable research? If you hire a lawyer to litigate a case, you'll pay for the time it takes for him to research case law. Is the lawyer learning on your dime? Is this immoral? If you ask a Consultant to configure a brand new network protocol, is it reasonable for them to read up on the configuration for that protocol? If your consultant has configured SQL Server, but you decide to use Oracle, should you expect him to gain Oracle expertise without charging you?
4. What role does Certification play? Suppose a consultant has a CCIE certification, and you hire him to help design and configure a router. If he needs to do research, what does that mean? You can be sure it's something a CCIE can not know. If you (as the customer) have confidence that a CCIE certification is valuable, then perhaps you will trusts that any research done by a CCIE is acceptable. But is that really true?
5. Ever-changing software is relevant. If your consultant knows the Acme Packet 4.x code, but you need something done using 5.x features, is it reasonable for him to investigate the software differences? Is that “learning on your dime”? Now consider that any real system has software from many sources — tens or hundreds — and a new version of one of those software packages is probably released every day.