I've been using this App for over a year but I think that I am far from good in some areas. I find that for languages that I don't write code in, I always have to use references to write code. So I guess the answer is as long as you take to write a 'good' amount of code yourself. Note that the 'good' in the last sentence is most probably proportional to the 'good' in your question, if it can be quantified at all.
People learn at diffrnet speeds, it took me about 3 weeks to code somthing half decent and even then didnt fully understand what I was doing... 2 years later and I am still learning so It can take a while to become anywhere near professional in a few months but dont let this put you off as you could make good code in just a few weeks as long as your committed.
It's all relative. Relative to how much time you spend developing, coding, knowing a particular language, etc. You can improve daily by having a structured approach. Don't just start coding. Have a goal or particular project in mind. Write pseudo code. Make UML diagrams. Write things down. Then start coding. A lot of time is wasted by not starting correctly. I've been programming professionally for about 5 years. I know some people who've been coding for 2 years who I consider "better" coders just because of the way they think and approach a problem. Doesn't mean I'm not good or that they are better overall. It just means they are strong in some areas where I may not be. That's why we have communities like this one, because everyone needs to learn and keep growing with the help of others.