I'm quite a solid front-end developer with a solid hourly rate. Everything seems to be fine except one thing; about 4 months ago I discovered that I have to skip 9 out of 10 jobs for Front End developers, because I do not know anything about basic Javascript/jQuery.

So I started learning it about 4 months ago. Watched a lot of some kind of "theory" lectures. Learned the basic syntax, methods, API, browser's API (a bit). I did the same thing with jQuery. I know how to do very basic things, DOM manipulation, and can write/edit small scripts. But it doesn't seem to be enough, at least for me to take money for that. It looks like I need to learn whilst working on clients' projects.

So the question is: Where's this boundary, when I can include JS/jQuery work in my skill-list and apply for the jobs that include it. How do I know whether I'm competent enough to charge clients for JS work?

  • 1
    This question appears to be off-topic because it is about programming. It belongs to Stack Overflow
    – Peter MV
    Commented Aug 29, 2014 at 12:27
  • 12
    @PeterMV I'd vote that it's on topic because it's about expertise and when to accept clients for projects, not specifically about the programming language(s) in question.
    – Chris
    Commented Aug 29, 2014 at 12:44
  • @Chris, do you see how we might edit the post to make that a little more clear? The title, for instance, sure makes it looks like it's about programming. The key to editing is finding someone like you who sees what it's really about and then putting an edit in place that clears up the things that make close-voters think it's off-topic. See this Meta Freelancing post for ways we can help make questions more completely fit our scope. Hope this helps.
    – jmort253
    Commented Sep 8, 2014 at 1:49

7 Answers 7


The question really boils down to: when can I consider myself "competent" enough in a skill that I can take money for it.

And the answer is really simple: You can take money for it when someone is willing to pay you for it.

Especially with something like programming, you will never know everything. And things are changing very, very fast.

So instead of worrying about whether you know enough, instead focus on finding projects that will allow you to use this new skill in a more limited fashion, and build on that experience as you go.

Even very experienced programmers learn new things with every project. So long as you aren't taking on gigantic projects that are nothing but javascript, you will be fine. And obviously, don't portray your experience to prospective clients dishonestly.


TL;DR: Fake it until you make it. Position yourself as a consultant who can solve business problems with technology. Don't just say that you are willing to learn new skills, but also prove it by doing great work along the way using your other skills.

I'm a UX designer with my own company. Many designers deal with impostor syndrome - even those of us who are great at what we do. And there is a temptation to have a sense of inferiority compared to other designers or compared to people who have skills that we don't. Technology changes fast for us too.

Ultimately, what clients are looking for is not a JavaScript developer or a jQuery developer or a Ruby On Rails developer. In his podcast, The Business of Freelancing, Brennan Dunn says that what clients are looking for is a business consultant who can solve their business problems using technical skills. Position yourself first as someone who can solve the problems that your clients' businesses are facing. You'll always have value there.

Second, position yourself as someone who can do great work. You might have different skills right now than what your clients are asking for, but keep the quality of your work high regardless of what you are working on, and your clients will understand that when you tell them you're willing to learn something new, you'll still work at a high quality.

Since you said you already have a solid hourly rate, I assume you have done this to some extent and that you are bringing value to your clients. If you meet too much resistance with not having the skills, teach the skills to yourself on your own time and create a personal project for your portfolio. I would say at that point, you could include js/jQuery in your skill list. That will also show clients that you have a strong enough interest in your craft to stay on top of new technology.

I no longer believe that "when can I start charging for this?" is the right question to ask. I switched from working as a software developer in a traditional corporate setting to doing UX design as a full-time freelance business owner. Big leap.

So when I first started freelancing, I did a lot of free work. I thought that would get me exposure and put work in my portfolio. The clients gave me some thank yous and recommendations, and I was grateful for that. But ultimately, the inbound leads that it generated were from other people who told me I was too expensive even though I was quoting them less than the average hourly rate for UX designers in my area. Free/cheap work attracts other free/cheap clients.

I'm still paying for the decision I made last year to work for free. I wish that if I had done any free work at all, that it had been a very small project instead of a series of large websites.

There's never a reason for a working professional to work for free, unless a) you have other income paying your bills, b) you are doing this as a volunteer for an organization you care about, who can't pay you, and c) there is a very clearly-defined project scope. Outside these parameters, if you promise to finish a free project, it's just a gift that keeps on taking from you.


Here's an alternative viewpoint to the other responses:

You can start freelancing when you won't be embarrassed about somebody coming in behind you and reviewing your work.

Let me elaborate a little.

While learning to program, we do what we can to "get the job done". We also tend to be very creative while getting the job done and we might not know about a certain method that would've saved us 20 lines of code. Or patterns. Or best practices with security. Etc. (See more: When should you call yourself a senior developer? or What's the difference between Junior and Senior Developers?)

All this comes back to building a maintainable product. Remember that it's harder to read code than it is to write it.

Consider what will happen when your client wants enhancements in a year. Either you or somebody else will be stuck figuring out what you wrote and why. Will you be able to justify to that person all (or at least most) of your decisions? Will that person even be able to follow what you're written with minimal ramp-up time?

If you're uncertain about the quality of your code and produce a lot "hacks" to get things done -- irregardless of whether it works or not -- then maybe setting yourself up as a freelancer may not be ideal when your reputation is on the line.


Whether or not you are "competent" in a certain technology shouldn't be the deciding factor for whether or not you should charge someone.

The real question is: can you deliver value, generally through a product, to your client? If so, you should absolutely charge the client for the value you provide. Your client likely doesn't care if you are a wizard in Javascript/Jquery/etc.

They want to know if you can build them a piece of software that improves their bottom line

Coming from personal experience, I started my freelance business bidding on Ruby on Rails projects before I had ever touched the framework. However, I was confident in my ability to pick up the new skill and provide value to the client. And hell yeah they paid me for it!


Part of "competency" includes knowing that no accomplished developer with skills in Javascript and jQuery will be using terms, as you did, like "JS", "jQ", and "JSing" ... You are making these expressions up.

When I hear the term "javascripting", I think of recruiters who are calling me and really have no clue about the work. Friend, this is really important. You'll disqualify yourself from real work very quick using these made-up terms.

  • Thank you for the answer. But I don't talk like that to the costumers/team-leads. Where did you get the idea that I know something about JavaScript? I started this because I realized that after all the "learning" I still have to buy lots of clue.
    – fyndevogel
    Commented Sep 3, 2014 at 23:27
  • 1
    This is incredibly critical to your success. It's not just important that you use correct terminology with clients, but you must use them around other professionals as well; otherwise, they may not take you seriously. I can't emphasize enough how important this is. To clarify, we are professionals here. Hope this helps.
    – jmort253
    Commented Sep 13, 2014 at 18:02

As said above, if you are upfront with the client about how long you've been using the skill and they are willing to pay you for the job ... you've got a billable skill.

I was in a similar situation with JavaScript: Having been programming for almost twenty years I started learning JS about two years ago. I started off doing a project for a minimal fee for a organisation I volunteer for, which I was then able to grow and release as a general purpose FLOSS app. I also monitor questions on SO for simpler questions I can take on and learn how to do (nice to have real world problems to solve), contribute to FLOSS projects that interest me, work on my own personal JS projects, and look for smaller jobs on the online freelancing sites (oDesk and Guru my favs). This all helps build up my experience and portfolio, and gives me the confidence to apply for jobs that seem within my range without feeling like a fraud!


Short Answer would be... NEVER....

You can never charge your clients with your mentioned approach and thinking....

Let me elaborate it,

We belong to the era of technology...and things changes each second..None of us can be a competent to that level that...You include JS work in your profile (even when you are not sure what jobs are gonna come to you)...But when you start doing the things, you always do it, what matters is how fast you understand the issue, how fast you learn the required technology and overcome your shortcoming.. and how perfectly you can handle your clients...

I would suggest you to trust yourself if you have learnt enough (as you say, 4 months), Make a guess of amount of money that work should cost to client and do the work.. if you are stuck somewhere due to lack of knowledge, Fix that thing, get the job completed and don't charge the client with extra money...simple...

that's what I mostly do when I fall to jobs which becomes hard to me due to lack of experience or knowledge...

Your Answer

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

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