Te queda mucho camino por delante. Los programadores nunca dejamos de aprender, es algo que tenemos que hacer ya sea de forma continua, a menos que consigas curro en una empresa que tenga unos métodos muy estáticos y poco cambiantes (pero esto a la larga hará daño a tu carrera).
Mi recomendación es que sigas los siguientes pasos:
1 - Comienza aprendiendo bien teoría básica de OOP (Objected-Oriented Programming). Que no te quede duda alguna sobre cómo funciona esto. Prueba a construir pequeñas cositas que aprovechen bien estos principios. Te recomiendo un lenguaje que te guíe solo, como Java o C#, algo muy verbose que te fuerce a seguir ciertos patrones para que no la líes demasiado.
2 - Lee sobre programación SOLID. Es tremendamente importante y es aplicable a cualquier escenario, incluso a lenguajes que no son puramente orientados a objetos. Tiene que quedarte claro el principio de sustitución de Liskov, el principio de responsabilidad única, y el principio de inversión de dependencias, el principio de abierto/cerrado, segregación de interfaces...
3 - Aprender Git. Como si es con una interfaz gráfica o como te dé la gana, pero hazlo. Y también unos puntos básicos de manejo de la consola de Linux. Importante punto.
4 - Fórmate en un stack completo. Especialízate si quieres en backend o frontend, pero creo que todo programador debería saber construir algo por su cuenta. Para simplicidad tienes PHP, para conseguir curro y construir cosas grandes tienes Java o C# con .NET, y quizá en un futuro cuando tengas algo de recorrido, podrías verte el stack de Javascript, con Node en el backend, que funciona bien en muchos casos y es ligero y fácil de construir, pero creo que puede ser problemático para alguien nuevo en programación, meterse de lleno en JS, porque puedes hacer muchas cagadas como no tengas buen conocimiento del lenguaje. No olvides aprender a sacarle partido a SQL y a saber lo básico sobre cómo administrar una BBDD MySQL, que son las más usadas. Y por supuesto, saca unos mínimos en HTML y CSS.
5 - Como consecuencia de aquellos 5 principios SOLID anteriores, y ya con cierto conocimiento de un stack, viene una parte muy importante: tratar de hacer que todo lo que hagas sea loose coupled en lugar de tight coupled: esto significa que cada script/clase que hagas, se encarge de una tarea muy determinada que puedas luego aprovechar desde otro punto distinto de la aplicación. Un ejemplo de tight coupling sería llamar a un script PHP que te mete el JS y a su vez, te transforma el HTML para enviárselo al cliente. Esto funciona, claro que sí, pero cuando quieras hacer una modificación en el futuro, desearás sólo haber usado ese script para enviarte los datos al cliente, y desde ahí tocarlos y meterlos en el DOM a través de JS, o quizá, dos scripts PHP distintos: uno que te trae los datos, y otro que te renderiza la vista. La cosa es separar por funciones y evitar que una sola parte de la app se encargue de 1000 cosas distintas. Es algo que funciona, pero... que es tremendamente poco mantenible.
6 - Aprende alguna tecnología puntera: en este punto, si te sientes bien, ya sí que diría que te podrías meter a aprender bien sobre JS (aprende siempre sobre los estándares ECMAscript más avanzados), y quizá formarte en algún stack (Angular, React o Vue). Mongodb también se está pidiendo mucho y te facilitará mucho la vida en muchas ocasiones.
7 - En este punto ya tendrás un conocimiento bastante majo para construir de todo. Podrás tanto desarrollar buena lógica de negocio en el backend, APIs punteras, frontends bonitos, apps móviles... pero te falta mejorar la calidad de tu código. Seguir explorando buenas prácticas y metodologías es bueno, pero creo que algo que te vendrá de puta madre en este punto, como lo es para todos los programadores, es aprender a escribir código limpio.
8 - Una vez llegado a este punto ya tendrás suficiente recorrido para buscar trabajo, especializarte en una tecnología o rol que te mole, y seguir adelante aprendiendo. Mucha gente aporta mucho a proyectos en Github, o intenta responder preguntas en StackOverflow, y son buenas prácticas para hacer mientras no tienes trabajo, ya que mejorarán tu conocimiento de la materia mientras populas tus perfiles online con datos que validan tus aptitudes.
¡Mucha suerte!