Hola fredo, depende de qué se entiende por "programar". Si por programar entendemos ser capaz de desarrollar programas en un lenguaje concreto con cierto nivel de complejidad, quizás con unos meses o un año sea suficiente. Pero lo que es ser un profesional de la programación normalmente requiere varios años, ten en cuenta que comprende numerosos aspectos desde algoritmia hasta lenguajes, bases de datos, desarrollos web, etc. Así pues depende de lo que la persona se plantee. Si quiere aprender por hobby en unos pocos meses puede tener resultados. Si quiere dedicarse profesionalmente a la programación tendrá que dedicarle varios años y aún después de esto tendrá que continuar estudiando y formándose, porque la informática evoluciona muy rápido y no hay otro remedio que continuar formándose para estar al día y no quedar desfasado. Saludos.