Sea cual sea el motivo que los lleve a aprender a programar, hay una serie de constantes que hay tomar en cuenta a la hora de iniciar. Esto es mi experiencia personal y no es un manual o una receta que se deba seguir religiosamente al pie de la letra, así que aquí van:
Aprenda un lenguaje y apréndalo bien.
¿Porqué digo esto? porque el mundo del desarrollo de software, principalmente del desarrollo web, es cambiante y tendencias van y vienen. Podrás empezar a programar en python y alguien te dirá que javascript es más cool y con NodeJS podrás hacer cosas interesantes, tanto frontend como backend, pero sinceramente creo que las tendencias sólo quedarán en una forma diferente de hacer las cosas y sea cual sea el lenguaje que elijas dependerá mucho de lo que quieras hacer con él. Personalmente yo elegí python por la extensa documentación que he encontrado en linea, la facilidad con la que se puede instalar un entorno para practicar tanto en Windows como en Linux y que puedo utilizarlo tanto como para web por medio de un framework como Django y para muchos otros usos fuera de web.
De ser posible, instala un linux en tu computadora.
No es sopresa para nadie que inicia en el desarrollo de software que la mayoría de los servers de los servicios populares que encontramos en internet corren algún sistema compatible con UNIX. Cuenta con una inmensa cantidad de recursos para ayudarte en tu camino para programar y te puede ayudar a comprender un par de cosas sobre como funciona un sistema operativo si es que optas por elegir una distribución que exija un esfuerzo extra por parte del usuario para dejar tu sistema a tu gusto (como arch o gentoo). Si es la primera vez que usas una distribución de linux te conviene elegir ubuntu.
Aprende a utilizar un software de Virtualización.
En este caso, recomiendo usar Virtualbox principalmente por ser gratuito. Al virtualizar un servidor en tu computadora, no te meterás con los archivos de tu sistema ni tendrás que instalar servicios que estén abriendo puertos en tu sistema operativo. Además de que si hechas algo a perder, podrás recuperar tu sistema en un par de clicks o borrar completamente tu máquina virtualizada y empezar de cero. Existen soluciones para montar este tipo de sistemas de manera muy sencilla con software como Vagrant y Puppet, pero al principio recomiendo hacer todo esto desde cero para irse familiarizando con el proceso, posteriormente opta por automatizarlo con este tipo de aplicaciones.
Pon en práctica lo aprendido.
No hay de otra. No existe una fórmula mágica para aprender a programar y terminar "n" cantidad de tutoriales o cursos en linea no te asegura que lo aprenderás. Hechando a perder se aprende. Tus primeros programas, aplicaciones y sitios web estarán llenos de errores, esto es seguro, pero poco a poco a base de mucha prática tus habilidades mejorarán.