¿Puedes convertirte en un buen programador si solo lo haces como un hobby?

Sí, absolutamente puede convertirse en un gran programador como aficionado, en su tiempo libre, con influencias externas limitadas. Tomará mucho más tiempo: una función de la cantidad de horas que le dedica, y la cantidad limitada de exposición que tendrá a sus compañeros y conocimientos previos. Tenga en cuenta que esto se aplica a cualquier campo de especialización, y existe una larga historia de aficionados autodidactas que producen grandes cosas a partir de sus momentos libres (autores, inventores, científicos, etc.).

En mi experiencia limitada (miles de desarrolladores con los que he trabajado a lo largo de los años), los mejores desarrolladores son aficionados apasionados, obsesivos y autodidactas. Muchos de estos desarrolladores pasaron hasta una década escribiendo software antes de llegar a la universidad o la fuerza laboral, donde pueden llenar los huecos en su comprensión y comenzar a perfeccionar su técnica y trabajar en métodos para reproducir sus mayores éxitos. El hilo común es un compromiso continuo con la práctica y el aprendizaje: diariamente, semanalmente, sin parar y nunca asumiendo que lo sabes todo (porque nunca lo haces).

En principio sí.

Ser un buen programador depende en gran medida de cuánto tiempo pasas haciéndolo. Mientras tenga tiempo para practicar, no importa si lo hace en el contexto de un empleo remunerado en una empresa o como un aficionado autodidacta.

Obviamente, estar en la industria lo introducirá a conceptos y restricciones importantes; por ejemplo, escribir una aplicación segura es algo que no necesariamente pensará hacer cuando está escribiendo para y solo. OTOH también puede desperdiciar su tiempo con muchas tonterías burocráticas como diagramas UML y PRINCE2 que no tienen nada que ver con ser un buen programador.

He descubierto que programarlo tú mismo en el tiempo libre es una excelente manera de aprenderlo. Puedes elegir dónde y qué hacer. Como convertirse en un desarrollador web o desarrollador de sistemas y elegir su elección de plataforma e idioma. Tienes esa libertad pero tendrás que encontrar el tiempo tú mismo.

Por otro lado, si trabajas para una empresa, puedes codificar al menos 30 horas a la semana y eso te enseña mucho, pero muchas empresas tienen su área de nicho y es posible que no trabajes en cosas que te enseñan mucho.

Sin olvidar los sistemas y plataformas personalizados que son muy jóvenes y no enseñan nada más que ciertas tareas repetitivas para mantener esos sistemas.

Si me preguntas, no importa dónde trabajo, tengo que jugar y aprender algo por mi cuenta, constantemente.