Guía de inicio en la Programación

Aprende a programar lo que te apasiona.

¿No sabes por dónde empezar?

Si estás iniciando tu camino en la programación, o es la primera vez que visitas la página, no te preocupes, porque esta guía te mostrará los contenidos de forma ordenada.

Aprende a desarrollar aplicaciones web y móvil

La intención de esta guía de introducción a la programación es ayudarte a escoger por dónde empezar y qué camino seguir en el desarrollo en general.

Si aprendes a programar adecuadamente, podrás desarrollar aplicaciones móviles, sistemas web, videojuegos, y cualquier tipo de software en general, usando distintas tecnologías.

De hecho, una vez que aprendes a programar, tu imaginación será tu única limitante.

¿Por qué aprender a programar?

Hasta el día de hoy se han escrito miles de artículos con razones por las que debes aprender a programar.

Las razones son infinitas.

Permíteme mencionarte algunas de estas razones de forma breve:

  • El mundo avanza aceleradamente. Llegará un punto en que la mayoría de trabajos podrán ser reemplazados por un ordenador. ¿Sabes cuál sería la misión del hombre en un mundo así? Seguir investigando, y programando cada vez artefactos más inteligentes.

  • ¿Has notado que día a día muchos procesos se repiten mecánicamente? Si una tarea implica tiempo y esfuerzo de humanos, entonces, debemos optimizar esa tarea, automatizándola. ¿Cómo se logra eso? Programando.

  • Programar implica desarrollar algoritmos para resolver problemas de todo tipo. La inteligencia es la capacidad para resolver problemas. Por tanto, programar es una actividad que nos hace sentir vivos, y demuestra que somos seres inteligentes.

  • Programar, no es una actividad mecánica. Tal vez codificar ciertas características de un software lo sea. Pero es por eso que cada vez se desarrollan herramientas más sofisticadas para nostros mismos, los programadores.

Es por eso que muchas personas se enamoran de la programación.

Por todo lo que ven y escuchan de ella.

Sin embargo, una gran mayoría no se decide cuándo empezar a aprender.

O bien, desconocen por dónde empezar y lo terminan dejando.

Elige tu camino

Es importante que tengas bien en claro qué es lo que quieres desarrollar en un inicio.

Recuerda que podrás programar de todo. Pero debes empezar por una tecnología en específico.

No te preocupes si no comprendes algunos términos, porque irás aprendiendo nuevos conceptos a medida que leas este artículo.

Para empezar, te contaré de forma resumida el camino que seguí yo desde que he empezado a aprender:

  • Fundamentos de la programación: Cómo declarar variables, cómo asignar valores, cómo realizar tareas repetitivas usando bucles, cómo hacer uso de condicionales, y más conceptos generales.
  • Pseudocódigo y algoritmos: Estos ejercicios permiten desarrollar nuestra lógica de programación. Y esta fase será muy determinante para las fases siguientes, ya que la base de todo es la práctica y entender perfectamente lo que estás haciendo.
  • Programas de escritorio (en consola): Mi primer lenguaje de programación fue C++. Empecé creando programas en consola, sin una interfaz de usuario. Así es, una pantalla negra con letras blancas. Luego aprendí más lenguajes a nivel de escritorio: Java, C#, Visual Basic, Python.
  • Estructuras de datos: No es indispensable, pero sí importante comprender cómo funciona la memoria del computador. Practicar operaciones con arreglos, matrices, y aprender el paradigma de orientación a objetos (que por cierto no es el único).
  • Programas de escritorio (con interfaz gráfica): Empecé a comprender conceptos un poco más avanzados, como eventos e hilos, a la par que desarrollaba mis programas con ventanas y botones, en vez de programas basados en consola.
  • Páginas web: Tuve mi primer acercamiento con HTML, CSS y Javascript. Años atrás lucían muy diferente a las actuales versiones de HTML5, CSS3, y no existían tantos frameworks para Javascript como hoy en día.
  • Bases de datos: Es importante comprender conceptos relacionados a las bases de datos, ya que estarán presentes en todas nuestras aplicaciones. Así mismo, aprender la sintaxis de SQL, y un motor de bases de datos relacional como MySQL, PostgreSQL, Sqlite, SQL Server, Oracle. Por otro lado, también es importante aprender sobre bases de datos no relacionales (y las particularidades que tienen): por ejemplo MongoDB, Firebase Databases.
  • Aplicaciones web: Aprendí a usar PHP, y a conectar una aplicación web con una base de datos MySQL. Aquí, existían muchas alternativas, y en mi caso, escogí la opción más común entre todas.
  • Aplicaciones web (usando frameworks): Como conocía el paradigma de orientación a objetos no tuve mucha dificultad en aprender Laravel. De hecho, quedé encantado con el framework porque me facilitó mucho el trabajo.
  • Peticiones asíncronas: Uso de Ajax. Comprender cómo funcionan los formularios, qué vulnerabilidades tienen y cómo enfrentarse a ellas. Cómo hacer peticiones en segundo plano en programas de escritorio.
  • Desarrollo de APIs: Servicios web que permitirán a una aplicación web ser una aplicación moderna que no recargue el navegador constantemente, sino que solicite únicamente datos en formato JSON según se requieran.
  • Aplicaciones móviles: Existen muchas formas de desarrollar aplicaciones móviles. Una alternativa es usar el lenguaje nativo, propio de la plataforma. En mi caso empecé con Android, usando Java. En la actualidad es posible desarrollar aplicaciones nativas con otros lenguajes y tecnologías. Posteriormente aprendí a usar Swift y desarrollar aplicaciones iOS.
  • Tiempo real: Desarrollar aplicaciones en real time usando push notifications, web sockets u otra tecnología sofisticada. Sofisticada en el sentido de que comprenderlas requiere conocer bien los conceptos básicos. Pero te aseguro que no son nada complicadas.

Tu elección

La verdad, a mi me ha gustado mucho la forma en que he ido aprendiendo las cosas.

Muchos dicen que empezar aprendiendo C++ puede aterrar a la mayoría de aprendices de la programación, porque es ligeramente más complicado que aprender a desarrollar para web.

Ciertamente C++ es relativamente más estricto que Javascript. Eso tiene sus ventajas y desventajas.

Al inicio es desconcertante que los lenguajes puedan ser muy diferentes entre sí. Pero poco a poco comprenderás que existen diferencias según el tipo de lenguaje de programación y lo verás como algo de lo más normal.

Lo que te puedo decir es que si aprendes C++, los demás lenguajes te parecerán más fáciles de aprender. Ello no ocurre si empiezas aprendiendo un lenguaje amigable y luego intentas aprender uno menos flexible, porque tendrás que aprender conceptos nuevos.

No es indispensable que empieces programando en C++. Puedes empezar aprendiendo sobre desarrollo web, y luego aprender a desarrollar programas de escritorio si lo llegas a necesitar.

Existen muchos más temas de los que cité anteriormente, pero todo depende de lo que quieras lograr.

Yo personalmente te recomiendo empezar con desarrollo web, luego desarrollo móvil y por último desarrollo de videojuegos si es a lo que apuntas verdaderamente.

El desarrollo de videojuegos introduce conceptos nuevos, que no están presentes en el desarrollo de aplicaciones que no lo son.

Recapitulando, mi sugerencia es que vayas en este orden:

Con esto ya tienes conocimiento de las áreas más importantes. A partir de allí podrás aprender más tecnologías, o bien especializarte en una de ellas.

Si preguntas en foros o grupos de facebook, notarás cómo muchos te sugieren reemplazar PHP (framework Laravel) por Ruby (framework Ruby on rails), o por Node.js con MongoDB.

Eso es de lo más normal, ya que son tecnologías Backend, y se pueden aprender en distinto orden. La mayoría de personas te hará una recomendación basada en lo que aprendieron.

Yo por ejemplo, te estoy recomendando empezar con PHP y MySQL, que es con lo que empecé. Pero no por eso, sino porque considero que encontrarás mucha más ayuda si empiezas con estas tecnologías tradicionales.

De la misma forma, si vas a empezar a desarrollar aplicaciones móviles, mi sugerencia es que empieces por Android, y ya luego abordes iOS. A menos que tu interés sea aprender a desarrollar exclusivamente para iOS, pero eso es un caso extremo.

Conclusión

Si has llegado a leer hasta aquí te felicito.

Porque verdaderamente tienes ganas de aprender a programar.

Como consejo final, practica mucho. Y nunca pierdas de vista tu objetivo final.

A fin de cuentas, no importa mucho con qué tecnología empieces a programar.

Si verdaderamente te gusta, empezarás a aprender desde ya! :)

Y recuerda que:

Si tienes alguna duda puedes dejar un comentario y estaré encantado de ayudarte.

Cursos Recomendados 🚀

Imagen para el curso Laravel y Android

Laravel y Android

Curso intensivo. Incluye el desarrollo de una API, su consumo, y autenticación vía JWT. También vemos Kotlin desde 0.

Iniciar curso
Imagen para el curso Aprende Javascript

Aprende Javascript

Domina JS con este curso práctico y completo! Fundamentos, ejemplos reales, ES6+, POO, Ajax, Webpack, NPM y más.

Iniciar curso
Imagen para el curso Docker y Microservicios

Docker y Microservicios

Aprende por qué es importante y cómo funciona Docker, con este nuevo curso práctico!

Iniciar curso

Espera un momento ...

¿Te gustaría llevar mi curso de Laravel, gratis?

Sólo debes ingresar tus datos: