Should I apply for a PhD position with required programming skills which I do not have? I did my master's thesis last month and have seen one excellent PhD position in my field. The title and the project description was very close to my master's thesis. My master's thesis relates to one of those standards which is very new, and I can guess the number of peoples which work on it are few -- especially those persons which did or are doing a master thesis in that field.

On the other side I got my degrees with honours -- both bachelors and masters. So I have good situation for that PhD position. 

One of the requirements is strong programming ability, which I do not have. I am not so good in programming. (By the way in just 6 months, I can improve that). Also the place is top five (or maybe one) rank with high salary. I do not know whether I should apply for that position or not? I afraid my bad programming skill have a bad effect on advisor's decision about me.

What I should do?

A part of requirements is 


  ... very good programming skills and experience....


which I do not have.

Also the professor is number one person in that field and kind person. So that is one of the most important opportunities in my life. I do not have those skills which are required to apply to the programme. But by that time, I will improve my weak points.
I am not sure I agree with Enthusiastic Student. There are two points to consider here:


Do they really need a strong programmer, or is this just something that they traditionally write into their position announcements without giving it much thought? Frankly, in industry like in academia, job descriptions are often given much less thought than people seem to assume. In my old group, we basically had one boilerplate job requirements text which was used for all kinds of positions. This included pretty much the cited text, but we certainly had PhD students that were not good programmers and they still (sometimes) did ok. 
Can you learn to program sufficiently, either before starting or at least within acceptable time frame after starting? This largely depends on how good a programmer they really need, how much you currently suck at programming, and whether you learn to program quickly or not (programming, specifically, seems to be one of those skills that comes much more easily to some than to others).


To figure both things out, you should get in touch with the professor or one of his students to get a feel for what their stance on these issues is. For some position, you really need to be an excellent programmer, and for those, there is indeed no point in applying. For others, being able to hack together a workable prototype in reasonable time is sufficient, and most people should be able to learn that. When contacting them, be diplomatic and don't tell them outright that you are bad at programming. Get a feel for what you are really supposed to do, and decide for yourself whether you will be able to do it or learn to do it quickly. Then decide whether to apply.