You can learn to program in a month or less. But it takes 10 years to actually put out quality code that is easy to maintain, readable and efficient in CPU and memory allocation. It took me a little less than that only because I was a code freak for several years and used to code more than go out.