Realmente no hay camino fijo, es por eso que las respuestas discrepan, se siguen caminos distintos dependiendo de los objetivos que te pongas....
Algunos recomiendan que aprendas primero pseudocódigo, otros que empieces con un lenguaje de programación de bajo nivel, otros alto, etc.
Yo te recomendaría que empieces por uno como C/C++/ ó Java, estudia todo lo que puedas, lo que no entiendas investigalo o pregunta, investiga de varias fuentes, pero sobre todo PROGRAMA, PROGRAMA todo lo que esté a tu alcance, empieca reinventando la rueda como todos, esto te permitirá conocer algunos algoritmos que son la base lógica para otros algoritmos.
http://www.kabytes.com/programacion/20-tips-para-ser-un-mejor-programador/
Saludos.