Realmente la respuesta debería ser 'depende', según cual sea tu plan y lo que esperas obtener. Pero si estás realizando la pregunta en esta comunidad y en este foro, supongo que te refieres a programación web, de manera que si ese es tu objetivo final, te recomendaría la siguiente curva de aprendizaje:
HTML/CSS >> Javascript >> PHP/MySQL >> jQuery (como punto extra, por eso va al final, no por complejo)
y con eso te deberías defender. Es importante no perder de vista que HTML/CSS no es programación, sino maquetación, que es distinto.
Ahora, si realmente te refieres a Programación en el sentido estricto de la palabra, entonces puedes pasar por alto HTML/CSS si así lo deseas, y comenzar primero por las bases como menciona Pandroso, entender lo que son los algoritmos, la estructura de datos, el álgebra relacional y la Programación Orientada a Objetos.
Ya luego pasar a aprender un lenguaje no tan complejo de entender, y aqui mi sugerencia de curva de aprendizaje sería:
Python >> SQL >> Java >> C++ >> C >> C# y el entorno ASP.NET en general como punto extra.
Lamentablemente la información en español no suele ser tan actualizada o abundante en comparación a lo que se encuentra en inglés, pero es cuestión de buscar. Para empezar date una vuelta por Youtube y revisa lo que hay ahí (Edu4Java, Código Facilito, etc.), y si deseas aprender más entonces ve a las cursos en línea en inglés.