Aprender a programar es un objetivo que se plantea mucha gente y que no todos alcanzan. Hay que tener claro que aprender programación no es tarea de un día ni de una semana: aprender programación requiere al menos varios meses y, si hablamos de programación a nivel profesional, varios años. No quiero con esto desanimar a nadie, ya que en un plazo de unos pocos días se puede estar haciendo los primeros programas y ver los primeros resultados, pero aprender a programar es mucho más que eso. Voy a intentar brindar mi visión sobre una forma adecuada de enfrentarse al aprendizaje de la programación.
En primer lugar diré que “aprender a programar” es una expresión bastante indefinida. Existen cientos de lenguajes de programación y de variantes, versiones, modificaciones, etc. así como distintos enfoques en cuanto a los objetivos (programación web, aplicaciones de gestión, aplicaciones de bases de datos, etc.). Por tanto “aprender a programar” es bastante ambigüo: es como decir “quiero aprender a dibujar”. Nos permitiría centrarnos mejor definir un objetivo más específico: “Quiero aprender a dibujar comics estilo manga”.
Cabe aclarar que aprender a programar no es el dominio de un lenguaje de programación; aunque debamos elegir uno para iniciarnos. Frente a esta situación, y para todos aquellos que quieren empezar a programar, sabiendo o no hacia qué lenguaje se van a orientar, mi propuesta es que usen este sitio, como sitio de referencia a través del cual poder dar los primeros pasos en programación. Una vez adquiridos los fundamentos y sentadas las bases, será más fácil buscar información y elegir entre las distintas plataformas y lenguajes existentes.
- Introducción
- Historia
- Fundamentos
- Estructuras
- Tipos
- Estructuras de decisión o condicionales.
- Estructuras de repetición (Bucles)
- Modificación directa del flujo de Programas
- Subrutinas y Funciones
- Recursividad
- Estructuras de datos
- Arreglos
- Pilas
- Colas
- Grafos
- listas
- Arboles
- Archivos
- Análisis de algoritmos
- Complejidad
- Análisis asintótico
- Resolución de ecuaciones de recurrencia (o recursivas)
- Análisis Amortizado
- Herramientas para la programación