Existen varias opciones para aprender a programar en línea para programar, aquí encontrarás una muy buena selección de sitios donde puedes aprender gratuitamente y con mucha calidad, si conoces de alguna buena opción puedes compartirla en los comentarios.
freeCodeCamp
En free Code Camp puedes aprender a programar web desde cero, con ejemplos muy buenos e interactivos, tiene su propio validador y el conocimiento que brinda es bastante amplio, puedes completar su plan de estudios y colaborar en proyectos sociales.
Code Wars
Code war en una plataforma que te brinda la oportunidad de resolver challenges de razonamiento ll, es decir algoritmos, puedes escoger entre varios lenguajes de programación por lo cual funciona muy bien si ya conoces bien un lenguaje pero quieres aprender a hacerlo en otro, adicionalmente puedes rankearte en la comunidad ya que por cada challenge resuelto se te asignan puntos a tu cuenta.
Odin Project
Odin Project es una plataforma que te indica paso a paso como empezar en la programación web, específicamente con Rubi on Rails, la cual es una buena tecnología utilizada por varias empresas reconocidas, más allá de la tecnología que enseña Odin Project la ventaja que tiene con respecto a otras escuelas es que enseña cosas básicas y necesarias de línea de comando por ejemplo, sin lo cual es imposible comenzar a programar.
W3schools
W3schools una gran referencia para ver ejemplos básicos y muy entendibles de HTML, Javascript, CSS, SQL, PHP, etc, todo esto será muy útil cuando te encuentres programando tu aplicación y necesites referencias de como utilizar funciones o propiedades de CSS, en mi caso siempre consulto ahí cuando olvido alguna sintaxis siempre regreso, a propósito es normal que a veces se te olviden algunas sintaxis, es parte de ser un desarrollador.
Edabit
Edabit es una especie de Duolingo de la programación se trata de muchos Challenges desde lo más fácil como retornar el contenido de la última posición de un arreglo hasta Challenges para expertos del tipo que suelen ser parte de las pruebas de ingreso para un trabajo como programador, por lo cual sirve en todo momento de tu carrera de programador y es muy sencillo de utilizar.