Recently, I started working for a client, and he found my work really excellent, and he's asked me to build a team and do a complete project for him.

I would like to learn iOS development, and build an iOS app myself, so would it be a valid/legit thing to ask my client to pay me for the time I learn new things?

Definitely, I need to ask him, but from a general perspective, would it be OK?

  • 1
    Is your work for this client at all related to building iOS apps?
    – Dan C
    Jan 3, 2017 at 15:56
  • At first, I built him a finance app to be used in different restaurants. I built that using Ruby on Rails in a short amount of time, with impressive features. Now, he's asked to build another big app from scratch that will require web app as well as mobile apps. I have been involved in iOS in past with only Objective -C, like around iOS 4.
    – Arslan Ali
    Jan 3, 2017 at 22:43

11 Answers 11


If you do not know how to build an iOS app...

  • How in the world do you know how long it will take you to learn how build one?
  • How would you know how long actually building the app would take?
  • How would you know how long it will take to become familiar and comfortable with security issues?
  • How long to construct and implement Updates?
  • How would you know the best method to implement any given feature set?

And if you know none of this, because you couldn't possibly until you learn how to build an app, how could you ask a client to pay for something without knowing what the costs would be?? Are you expecting the client to just write a "blank check" so to speak and "hope" he/she gets a solid app in the end, after who knows how long? What if it takes you a year to learn things? What if after a year you still don't have a solid understanding of security issues? What if the client was expecting the app in 3 - 6 months? What if a "team" could have built the app in 6 weeks?

Think about all that... now do you honestly think it's a good idea to ask the client to pay for you to learn?

(Note: I know nothing about building iOS apps, but I could surely learn the basics and slap something together in a week. Something fairly functional and attractive in a month. However, building something for commercial purposes, in a solid, reliable manner, in any profession/environment often takes months of learning, if not years.)

In short, no. it is not "okay" to ask a client to pay you to educate yourself. He's/She's not your employer. To be frank, even just asking will make you seem really inexperienced and unprofessional.

Employers may often pay for education because they reap direct rewards when their employees learn. It's an "investment" in the employee.

But in a freelance situation, your client doesn't receive much of anything by paying you to learn something new. You would be essentially asking the client to pay you so they could be your "guinea pig". You get all the rewards and the client is left crossing their fingers hoping that you "learn" the correct stuff you need to learn. In most cases, the client is interested in a solid final product... so hire a team as you were asked to do.

I applaud you for wanting to learn... but delving into an entirely new language or environment is never something for which the client should be paying.

I should add that in the tech world learning is a constant and ongoing thing. It is not unheard of to get a client who wishes to use a specific API and you would need to learn how to adapt to that API. Basically.. you know PHP... but need to adapt your PHP to work with a client-requested API you've never used before, that's common. That's generally okay if you explain to the client that you are unfamiliar with the API they want and will need to educate yourself about it. You aren't learning new things as much as you are learning how to translate what you already know.

However, this is markedly different that "having never built an iOS app, I want to try." Learning brand new, never before explored, technologies is something you should do on your own.

  • 3
    Overall this is true; however it could be possible (if the client is not in a hurry and a lot of other provisos) to offer to make the app for a nominal fee (or pro bono) as a learning experience for yourself and to expand your résumé/portfolio. It would depend a lot on what your relationship is like with that client, though.
    – Wildcard
    Jan 3, 2017 at 6:27
  • 2
    Not really. I have some great clients. And much like working for friends, they may be amenable at the beginning, but eventually things will get strained and uncomfortable because you aren't delivering what (or when) they want, and they don't know how to bring up the topic... so eventually the relationship suffers. For a client, that means they go elsewhere for work. The simple truth is.. if you don't know to build something when hired, don't do it, don't promise it, and don't agree to it. (Note this is a bit different than learning to adapt to a specific API or or something).
    – Scott
    Jan 3, 2017 at 7:25
  • 1
    I suppose I'm thinking of a different scenario, one that would not actually work with a pre-existing client for related professional work. I'm thinking of a scenario wherein the person wouldn't actually be able or inclined to pay a fully professional rate for a rapid and top-notch job—but would be happy to get a good product done at a lower rate, possibly on a longer schedule. As a somewhat relevant point: It's possible to get dental work done by students of some dental colleges for rates much lower than at a typical practice. Ditto for your tonsorial needs at a hairstyling school.
    – Wildcard
    Jan 3, 2017 at 10:54
  • 1
    I can see that point. Technology is a bit different though, at least to me. It's a constant learning processes. What you learn today may not be in use in 3-5 years... so you have to learn new things all the time. Things that offer "student rates" (dentists, hairdressers, etc) are typically a single skill set that once learned, merely takes practice to improve craftsmanship. There's no "practice" with technology, either something works correctly or it doesn't. In my experience, tech clients aren't very amenable to learning on their dime -- they can always find someone cheaper that knows.
    – Scott
    Jan 3, 2017 at 16:42

I would argue that there are cases where you can ask your client to pay for education. I'm not sure that something as general as iOS development would qualify however.

For example: I was hired a while back to work on a financial application. There was a particular area that required advanced mathematical modelling techniques that I wasn't familiar with (neither was anybody else on the team). The choice was to hire another, more expensive expert or to get me to learn the new technique. They opted for the latter.

When the skills you are talking about form the core skills required to carry out your trade, I would agree that you need to learn for yourself.

I don't think there are hard and fast rules about this though. I've hired a python programmer, for example, and asked them to work on a Javascript project, because I loved their professional approach and attitude. I'm sure I paid for a bit of education during the process and was happy to do so.

  • 1
    You are right, it's a bit subjective, but I like your approach.
    – Arslan Ali
    Jan 7, 2017 at 4:14

It he asks you to hire a team of professionals and you would like to become a professional yourself for his money that's not fair at all. If he would like you to build the app and initialy you were not required to know ios you can charge him for learning. As an option you can make it some kind of fixed price and not to charge your usual rates. It's good to let client know in advance an estimate of time/money you are planning to spend for learning.


If the client wants to hire you to use a skill they know you don't have, then it might be in order for them to pay for some sort of training.

If they want you specifically rather than hiring somebody who already has that skillset, there is room for discussion there. It's assumed that some sort of training up front would pay off in fewer billable hours later.

Maybe they send you to some conference and you bill it to them or you agree on some kind of course and you bill it to them or something like that.

If the client doesn't care that you have the skill and it doesn't benefit them, then don't bother asking.

While it would be nice to get all kinds of free money off of an employer, I wouldn't expect that the situations would happen too often.

In a general sense, things are much more often expensed to the employer when the employer suggests the thing rather than when the employee suggests the thing.

  • 1
    Keep in mind, employee / employer relationships are very different from freelancer / client relationships. Jan 4, 2017 at 11:27

I agree with @Scott and @Nikita Asking to pay for learning new tech might look even rude to your clients.

Making good progress in one tech field does not mean that you can do same thing in other tech field, and this will be general idea for anyone else, I believe.

So saying "hey, I have shown my skills here, and I will be great skilled guy on IOS, too, so hire me although I am new to IOS" is normally UNACCEPTABLE I believe.


I think the majority have answered above, but would like to clarify my answer. If you are hired on a monthly salary basis then costs incurred in learning and perhaps time are usually covered by the employer. So you learn at the billed time and software, lessons etc are covered by the employer

If your work is on a project by project basis then you should split your work as follows:

  1. Actual management of hiring, task alocating and organising the team as a manager. This is management time that you can bill.

  2. Learning a new development language. This is within your efforts of hiring a skilled worker and does not fall in the category of doing something but rather finding someone to do it, thus it is not billable.

An exception of this would be if the new learning is a small part of the project and your time is mainly organising hiring and doing all the other development you are hired to do. Again out of pocket expenses, if asked and explained in your offer document in advance may be billed, otherwise no.

In general always make an offer document outlining what you will and what you will not do, with details of timeframe and cost charged. If you do not know how long it will take and who will do it, then you can charge a preliminary small amount upfront for the time it will take you to find out and create a detailed offer document. Keep in mind that there is the possibility that your employer goes out shopping and he might find someone do make an offer document for free.

In general if you are organised, transparent and communnication written in clear conscise detail form then there are no issue, problems arise when things are left out and people start filling in with personal sided assumptions.


In this answer: some rather general(izable) advice

Pro/con reading it:
(+) applicable to many situations
(–) not based on loads of professional experience/ expert knowledge
(–) may be obvious
  (+) but remembering this may still be useful
(+) may be good/ useful advice

Go with your gut.

Well, I do have a bit more input than that, which might benefit you by triggering some gut feelings – encouraging or discouraging.

(Depending on the (culture and) character of your client and the relationship between the two of you,) I would probably apply this general principle:

When in doubt, try it out. Ask.

Extra carefully, politely!

Chances are, you have more to gain than to loose:

  • Even if the chance that they say Yes is small, that outcome might be so useful for you that the opportunity as a whole has weight.

  • A 'catastrophic' outcome seems unlikely. They will probably not ditch you just for a silly insolent question (if it even is one (to them)). Even less, since they already showed their high opinion of your work.

  • (Even in the unlikely worst case, you will have gained an experience.)

You could also consider

going about it 'cleverly':

Instead of bluntly asking if they'll finance you, you could sort of ask them for advice, telling them that you wonder whether it would be appropriate for a freelancer to ask a client whether they would pay them to learn something like iOS development. Maybe beforehand, sort of casually, mention how interested you would be in learning that.

Advantages of this cautious approach:

  • You signal, that you're not confident in this question, so it should seem less grave, in case they might be upset by the request in the first place.

  • Your request is clear enough for them to agree if that's what they want.

  • If they feel that would be a stupid question to ask, they can decline by phrasing their answer in the form of advice, that this question would not be a good idea. That way they could decline without outright rejecting you and you both 'save face' – it might be less awkward.

It may still come off as unprofessional, but may still be worth it.

Depending on the person's (culture and) character and your relationship, they may prefer a more direct approach. Or none at all.

So all of these are just suggestions to give you ideas – ultimately I'd expect your intuition/ gut to be your best guide on whether you should implement them or what else is the best way for you in this situation to go about it.

Good luck!

PS: If you decide to ask, please share with us  how they reacted! :)


Would you pay me to learn how to build a house and then build a house for you? I hardly think you would.

What you are looking for a stipend which will allow you to have money while you learn something. I highly doubt your client will accept this.

In programming, you have a junior, a mid-level and a senior programmer. You are not even a junior, but close to some student on the 1 year of study.

Programming is very, very complex. Clients expect to earn money from the app we make for them, so any app programmed badly (and you will surely make a bad app since it's your first app), will cost clients a lot. I know this, because I have fixed dozens of bad apps where someone made such app in 3 months, and it took me 2-3 times more just to fix such app. So this is how severe mistakes are in programming.

If I were you, I would find someone to do the work and you can take finder's fee or project manager's fee on top of his bill. Just make sure you find a good guy and that you have both iPhone and iPad to quality test an app he is building for your client.


Others already wrote some nice answers; I'd like to mention a common situation from my personal experience.

There are cases where a client needed a person who knows X, Y and Z technologies, but it proved difficult to find anyone with this set of knowledge on the local job market¹. A contractor might already know X and Y, and offer/be offered² to join the project under the condition that the client agrees for spending some billable hours on learning Z to fill the missing knowledge. Bonus points if the contractor already knows some technology Z' that is known to share similarities with Z, even if it is not directly applicable to the employer's problem.

¹ This might happen due to many reasons. Some common ones are: small cities that usually lack specialists, technology that is very new and hence not many people had yet chance to practice it³, technology that is outdated and hence not many people bothered to learn it, etc.

² A client sometimes knows he doesn't have any other choice and makes it clear upfront.

³ This is actually common for startups that build their market advantage on new technologies. Many people seek jobs in startups for this reason.

In your case, it would probably be fine if you already has experience managing teams (given that your client wants you to build one), you have the domain knowledge required to solve your client's problem (e.g. your client is a tour operator and you know all the intricate details of what it takes to organize a tour), you are already a skilled programmer in general and, let say, you already have experience in writing Android apps⁴. Then, if your client explicitly agrees to fund your learning, and you can confidently provide good estimates on its costs and time⁵, then there's nothing wrong in doing so.


Here's how you handle this.

  1. Bring someone in that does know how to build iOS apps.
  2. Have that person scope the project. They should provide you a pretty good estimate of hours involved.
  3. Take those hours, multiply by the rate, add a bit of fudge factor and present the estimate to the client.
  4. If they say yes, then hire the required people.

Your job then is to manage them. If you want to learn iOS development along the way, then kudos to you but that's not what the client is paying you for. Personally, I'd take the spare time you have and try to find other clients that want some iOS development done so you don't have to fire those people when the project is complete.

  • At least for intellectual property reasons, you would have tell your employer if you're involving someone else (than they expect) in the project though, (right?) Jan 8, 2017 at 18:43
  • No. At least in the USA, the contractor can absolutely sub contract the work without telling the company they contracted with. Any IP restrictions ought to be handled between the Employer and original contractor. Then the contractor and sub-contractor should have their own agreement in place.
    – NotMe
    Jan 9, 2017 at 0:57

I'll have to disagree with some of the other rationales shown here. While it'd be pretty dumb to expect a client to pay while you learn, people in business learn-as-they-go at the client's expense it all the time. This is the reason - at least, in the US - that a business from a physician or attorney is called a "practice" -- because they're practicing and they don't know everything to cover every situation.

OP didn't state what skills have already been put to use for the client. I'll say that if prior skills include no software development at all, then expecting a client to pay for the iOS learning curve would be quite a stretch. This doesn't mean it's impossible, but fulfilling the client's actual functional requirement might make this one a long-shot. Some clients can eat such a cost, and others cannot.

The best that can be done is to be up front with the client about the actual experience level in dealing with technologies like iOS, and allow the client to make the decision. Put your truth out there, and maybe the client will bite, or maybe the client will find someone else for that job. DON'T start out by mentioning that you will lower your rate -- use this method as a last resort or if you need the work and the client proposes it.

  • 1
    LOL! A practitioner's practice is so called, because they're just practicing – good one! x'D In case you're serious: Nono, in this case, to practice means to act, perform, carry a profession: etymonline.com/index.php?search=practice Of course you're right in that no-one knows "everything", particularly not in these times of ever accelerating technological progress. And always, with everything, the more you do something, the more you gain experience in it, training – practice.^^ (Though typically with diminishing returns.) … Jan 3, 2017 at 19:14
  • … But physicians' and lawyers' marketing is certainly not designed to emphasize their imperfection. ;) Jan 3, 2017 at 19:17
  • Although the 'practice' aspect of this answer makes no sense, I do agree with the fact that very often you need to learn or investigate something to carry out an assignment. Almost every assignment I learn something new because I search around. In that way, the client always pays for me to learn. But that is not something which is communicated to the client, and I make sure to deliver the assignment on time and as requested. This might be what most people call 'experience', the fact that you have done many assignments and learned something from each one. Jan 4, 2017 at 11:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.