i know it depends on many thing. But can anybody tell me how long it should be ? I just want to draw a boundaries between successful and failed attempt to convert myself ?
It depends on:
- How much overall experience you have;
- How familiar you are with the Web and how it works;
- What languages you are familiar with;
- How much networking experience you have;
- How much UI experience you have;
- How smart you are;
- How much you apply yourself; and
- Whether or not you need to learn Web.
The general guidelines I use is:
- 1 year to competence;
- 3 years to expert;
- Less time the more experienced you are;
- Less time the closer what you're learning is to something you already know (eg learning Ruby would be easier for a Python programmer than a C programmer, as a general rule);
- Less time if your job depends on it or you're otherwise not distracted;
Programming is programming... if you know logic and fundamentals you should do fine. There is always that initial learning curve of learning a syntax and language, but after 6-12 months you should be good to go.
You only fail when you give up (and some may say that's not failure since you've learnt something). You want to know when to cut your losses? Do it when you no longer have an interest in the field you're moving towards, or when your interest in something else exceeds it.
That applies in all walks of life, not just programming.
I can't remember where, but I remember reading a study that said most people need two years of experience in any language before they really know it. If you think about it:
- Look at something you wrote two years ago, in your current language
- Look at something you were working on last week
I wish I could remember where I read it, the study was interesting and well documented.
I think the curve is shorter in some cases, for instance most people who have a strong C background have no problem getting used to PHP.
Personally, I find it very difficult to learn under pressure. I much prefer to pick up new languages recreationally over time. Its then twice as rewarding for me when yet another 'hobby' helps to pay my bills.
As someone who often gets tasked with hiring programmers, I tend to prefer 2+ years of experience in the language at hand if someone is going to be working mostly independently.
Edit:
If it stops being fun, if you dread even looking at the code, its a good sign that you are pushing yourself too hard, or just can't get into web programming. I've been programming in C for about 20 years and to this day I still write mostly console apps and services or device drivers. I don't think I'd be happy writing desktop apps.
There is no 'failure' so to say, just because you happen to be a programmer doesn't mean you have to be able to do everything. Similarly, just because you are a doctor doesn't mean you are working on a cure for cancer. Just have fun doing what interests you the most (hopefully) while getting paid to do it.