Aprender a programar

¿Cómo (y por que) aprender a programar? La guía definitiva

Nuestro mundo esta gobernado por la tecnología, y mientras cada vez es más comun encontrar objetos con un chip (El llamado Internet de las Cosas), es innegable que la importancia de la programación va en aumento, y no es en vano, pues aprender esta habilidad agrega un plus importante a tu vida, ya sea en el ámbito profesional, escolar o incluso personal. A su vez, cada vez es más fácil aprender a programar, tanto por los miles de recursos que podemos encontrar gratuitamente en Internet, como por los nuevos lenguajes de programación mucho más amigables que los de antaño; actualmente la programación se ha diversificado tanto y aprender se ha hecho tan accesible, que no hay excusa para no empezar a programar.

Antes de continuar, te dejo un vistazo al contenido:

Beneficios de aprender a programar

Aprender a programar
Aprender a programar conlleva una serie de beneficios que mejorarán tu productividad y tu forma de resolver problemas.

Si estas leyendo este artículo, probablemente ya tengas una idea del porque aprender a programar. Aún así, me gustaría realizar un repaso de algunos de los mayores beneficios de aprender a programar, no sin antes mencionar que aprender a programar no implica pasar una excesiva cantidad de tiempo leyendo documentaciones, foros y libros, de hecho, si no buscas dedicarte al área de Ciencias de la Computación, puedes vivir utilizando unicamente las funciones del lenguaje relevantes para tu trabajo y poco más, sin preocuparte por los métodos, librerias, clases y demás de cada lenguaje.

En resumen, puedes aprender a programar sólo para lo que necesites, y esa es una de las mayores virtudes de esta habilidad en cualquier labor, pues en relativamente poco tiempo, serás capaz de aumentar tu productividad drásticamente. Así pues, te muestro una pequeña lista de cosas que puedes hacer programando si NO buscas dedicarte a la computación:

  • Contestar correos electronicos automáticamente
  • Filtrar grandes cantidades de datos
  • Gestionar grandes cantidades de archivos según sus caracteristicas
  • Automatizar operaciones matemáticas
  • Automatizar descarga de archivos
  • Modificar hojas de cálculo
  • Crear histogramas
  • Encontrar patrones y valores importantes en una base de datos
  • Automatizar cualquier acción repetitiva en una computadora

Además de otros beneficios menos explicitos, como decía Steve Jobs: “Programar te ayuda a pensar“, pues esta comprobado que aprender a programar mejora la capacidad de cálculo y lógica, así como a identificar problemas y descomponerlos en otros más pequeños para resolverlos efectivamente (abstracción); y por supuesto, saber programar implica tener una ventaja laboral frente a otros profesionistas, tanto por poseer una “habilidad extra” para tu curriculum, como por poder ser mucho más productivo gracias a tal habilidad, en resumen, aprender a programar puede ayudarte mucho en todos los ámbitos.

Ahora que ya conoces un poco de esto salta la siguiente pregunta…

¿Qué necesito antes de programar?

Dibujo de Programación
Antes de comenzar a programar, es necesario que cuentes con algunas habilidades fundamentales.

Como con todo, antes de poder programar es necesario que tengas ciertos conocimientos para no perderte en las explicaciones (Aunque por supuesto, siempre puedes comenzar sin saber nada, aprendiendo sobre la marcha, y es igualmente válido), aunque esto puede variar según a quien le preguntes, yo considero importantes principalmente estos puntos:

Inglés

Persona hablando inglés
Contar con conocimientos básicos de inglés es fundamental en programación.

Obligatorio, no necesariamente al nivel de un nativo, pero si lo básico para entender las expresiones utilizadas en los lenguajes de programación (pues estas están en inglés), como while, for, print, etc. Además, si sabes suficiente inglés podrás acceder a muchos más recursos para aprender a programar, pues buena cantidad de cursos, libros, foros y documentación no se encuentran disponibles en español.

Aritmetica y Algebra

Operadores matemáticos
El concepto de variable, así como operaciones matemáticas básicas son requeridos en cualquier entorno de programación.

Muchas veces he leído que se requiere una importante base matemática para comenzar a programar. La verdad es que, aunque no necesitas ser un experto en la materia, si son necesarios ciertos conocimientos matemáticos, nada muy especializado: operaciones básicas, exponentes, raíces y uso de variables son suficientes para poder comenzar a crear aplicaciones en la mayoría de las situaciones, sin embargo, esto puede cambiar según el área en que te especialices y las tareas que busques resolver.

Conceptos básicos de computación

Computadora icono
Antes de comenzar a programar, es recomendable que estes algo familiarizado con la computación.

Si quieres aprender a programar, primero es necesario que conozcas algo de computación; conceptos como Sistemas Operativos (OS), Entorno de Desarrollo Integrado (IDE), editor de texto, archivo ejecutable, compilación, lenguaje de programación de alto nivel, lenguaje de programación de bajo nivel o bug son algunos de los conceptos con los que más frecuentemente te encontrarás al leer sobre programación. Desconocerlos puede desconcertarte cuando recurras a cualquier fuente de información, aunque nada que no se solucione consultando el diccionario en turno.

Diagramas de Flujo

Diagrama de flujo
Aunque la programación te enseñará mucho sobre computadoras, es recomendable que estes familiarizado con su uso general.

Para terminar, es importante que sepas realizar correctamente un diagrama de flujo y su simbología básica; aunque puedes comenzar a programar sin conocerlos, estos te ayudarán mucho a diseñar el algoritmo del programa y programar de forma más ordenada, menos redundante y a prever la salida del código antes de comenzar a teclear.

Las habilidades mencionadas arriba no son especialmente complicadas y cualquiera puede aprenderlas en el tiempo respectivo, una vez hecho esto, puedes continuar con la programación con toda confianza, y preguntarte lo siguiente…

¿Cuánto me tomará aprender a programar?

Tiempo
No todos tardamos lo mismo en aprender a programar…

Hago un pequeño parentesis en esta pregunta por que es bastante comun, sin embargo, no hay una respuesta clara porque, sencillamente, nunca dejas de aprender. Constantemente aparecen nuevos lenguajes, paradigmas, dispositivos, entornos de desarrollo y plataformas que pueden revolucionar el mundo de la programación, además de que, por supuesto, te dedicarás a perfeccionar las habilidades que ya posees. Si buscas aprender a programar para realizar algunas tareas especificas, puedes tomar cursos o leer un libro y tardar de 2 a 6 meses en llegar a tu objetivo, por el contrario, si buscas dedicarte a la programación o lo haces por “amor al arte”, entonces pasarás años estudiando, prácticando e incluso inventando sin llegar a tu tope, y es que la programación no tiene limites.

También es importante mencionar que, como en todo, la práctica hace al maestro, y mientras más práctiques programaras más rápido y mejor, mientras aumentas la complejidad y legibilidad de tus programas. Dedicar 1 o 2 horas diarias a programar no es un mal comienzo.

Aclarados estos puntos, continuamos con…

¿Qué lenguaje elegir para comenzar a programar?

Lenguajes de programación
Cada lenguaje de programación tiene su propia sintáxis y existen mayores diferencias entre muchos de ellos.

Esta es otra de las preguntas más comunes que se realiza todo recien llegado al mundo de la programación, sin embargo, no tiene la importancia que se suele creer. ¿Por qué? Pues porque todos los lenguajes de programación de proposito general tienen la misma lógica detrás: Variables, funciones (o métodos), estructuras de repetición y valores Booleanos son una constante, lo que es bueno, pues significa que puedes exportar tus conocimientos de programación a cualquier lenguaje, tan sólo adaptandote a su sintáxis. Esta es la razón por la que en los diferentes cursos de programación se insiste en aprender la lógica, y no únicamente la sintaxis del lenguaje en turno.

Captura de PseInt
Aplicaciones como PseInt te permiten crear aplicaciones sencillas a la vez que te muestran individualmente que hace cada parte del código por medio de un diagrama de flujo.

 

Sin embargo, también hay que reconocer que existen lenguajes de programación muy populares, lo que ha hecho que sea más facil encontrar recursos para aprender a programar en estos, volviendolos ideales para novatos. Algunos de los lenguajes de programación que recomendaría para comenzar son:

Icono de Python

  • Python: Mi favorito personal, actualmente en su versión 3; es un lenguaje de alto nivel desarrollado para tener una sintaxis similar al inglés y facilitar las cosas al usuario. Python es uno de los lenguajes más populares de la actualidad, tanto en el ámbito laboral como el educativo, y además de contar con una sintaxis más sencilla que otros lenguajes, no pierde cuando hablamos de potencia. Esto, aunado a su versatilidad han permitido que contemos con miles de cursos, libros y tutoriales en todos los idiomas.

Te puede interesar: Recursos gratuitos para comenzar a programar con Python.

Libros recomendados:

 

Icono de C++

  • C y C++: Dos viejos conocidos omnipresentes en las universidades de todo el mundo y con un amplio uso laboral, prácticamente todos los programadores conocen uno de estos lenguajes. C fue desarrollado en los años 70 como un lenguaje altamente eficiente, posteriormente surgiría C++ como una evolución del mismo. En ambos casos, cientos de lenguajes de programación se derivan de estos, por lo que aprender a programar con C y/o C++ te ayudará a tener una imagen general de este panorama.

Libros recomendados:

Icono de Java

  • Java: Lenguaje de Programación Orientada a Objetos (OOP) con la intención de poder ejecutar programas en cualquier dispositivo. Recientemente Java se ha convertido en el lenguaje de programación más popular para el ámbito laboral y es esencial para el portafolio de cualquier desarrollador, además, es el principal lenguaje de programación utilizado en Android, por lo que es indispensable si buscas dedicarte a la programación móvil.

Libros recomendados:

Antes de continuar, quiero hacer notar que:

  • En la lista superior he mencionado únicamente lenguajes de programación de próposito general (Y que recomiendo en base a mi experiencia); existen otros lenguajes como PHP o Javascript ampliamente utilizados y enfocados a la creación de aplicaciones web que también pueden ser de interes para cualquier programador, así como SQL para manejo de bases de datos, R para estadistica, etc..
  • También es importante no confundir el término de lenguaje de programación (Como los que ya mencioné) con lenguaje de marcado (Como HTML o XML). La diferencia rádica en que los segundos no cuentan con variables o funciones aritméticas, además de ser completamente diferentes de usar y tener otros própositos.

Enseñar programación a los niños

Logotipo de Scratch
Scratch es un lenguaje diseñado por el MIT para enseñar a programar a los más pequeños.

Si lo que buscas es enseñar a programar a los menores, también existen soluciones que te ayudarán en esta tarea, siendo uno de los más populares el lenguaje de programación Scratch, diseñado por el MIT buscando crear una plataforma amigable para enseñar a los niños a programar y que su propia popularidad ha permitido que surjan cientos de tutoriales para hacer de todo en este lenguaje, incluso esta instalado de serie en Raspbian, el Sistema Operativo diseñado para la Raspberry Pi.

Star Wars Hour of Code en Code.org
Code.org es una fundación con decenas de tutoriales para enseñar a programar desde pequeños, desde el hogar o la escuela.

Pero quizás no haya mejor ejemplo que Code.org, fundación apoyada por Facebook, Microsoft, Google y otras grandes empresas, con muchos cursos interactivos para aprender y enseñar a programar a gente de todas las edades. Los tutoriales de Code.org se dividen por edades y se enfocan en la enseñanza por medio de la creación de juegos y aplicaciones visualmente atractivas y amigables.

Te puede interesar:

Niños y programación: consejos y recursos para que este verano se inicien | Xataka

10 herramientas para que los niños aprendan a programar | Hipertextual

Software para comenzar a programar

Herramientas para ayudarte a programar
Existen herramientas que te facilitarán el trabajo de programar en diversas formas.

Un último paso: Antes de comenzar a programar requerirás de Software especializado para esta tarea (Aunque puedes escribir código hasta en el bloc de notas, son necesarias herramientas adicionales para el proceso de compilación que lo convertirá en un programa ejecutable).

Esto puede variar según el lenguaje que hayas elegido: En el caso de Python, deberás descargar el interprete, en el de C/C++, software como GCC y Code::Blocks, si hablamos de Java, requerirás de Netbeans o Eclipse con OpenJDK. En cualquier caso, podrás descargar los archivos necesarios de los sitios web oficiales de cada proyecto, además de existir miles de tutoriales para estas tareas.

En este punto es cuando te encontrarás con los Editores de texto y los Entornos de Desarrollo Integrados (IDE), en ambos casos, son programas que te ayudarán a codificar en algún lenguaje determinado, sin embargo existen varias diferencias entre estos. Brevemente:

  • Tanto el IDE como el editor de texto cuentan con resaltado de sintáxis para el lenguaje de programación (Es decir, cambiar el color de la palabra según indique una variable, bucle, entero, etc.)
  • Un IDE cuenta con herramientas avanzadas para el lenguaje en cuestión, como un depurador, creador de interfaces gráficas, uso del compilador, etc. (Estas pueden variar en función del software)
  • Un editor de texto es más ligero y permite un flujo de trabajo más rápido, soporta más lenguajes y permite editar el código más fácilmente, pero carece de herramientas avanzadas.

No hay una regla general que indique que un IDE es mejor que un editor de texto ni viceversa, pues son herramientas diferentes y eso dependerá de la situación en la que te encuentres. No todos los lenguajes cuentan con IDE de uso “general”, pues no todos son compilados, sino interpretados, es decir, pueden escribirse con un editor de texto y después ejecutarse desde la línea de comandos.

Eclipse IDE
Los IDE son completas herramientas capaces de detectar errores, sugerencias para mejorar el código y ejecución de un programa bajo diferentes situaciones.

Ejemplos populares de IDE son Code::Blocks (Para C, C++ y FORTRAN), Eclipse y Netbeans (Para Java).

Editor de texto Atom
Los editores de texto son aplicaciones más ligeras enfocadas a la escritura.

Ejemplos de editores de texto son Atom y Sublime Text, con soporte para decenas de lenguajes en ambos casos.

En Windows, uno de los IDE más completos que podemos encontrar es Visual Studio, de Microsoft, aunque cuenta con muchas capacidades, puede ser excesivo para quienes comienzan. Puedes descargarlo gratis en su versión Express desde su sitio oficial, aunque eso sí, preparate para una instalación larga.

Recursos para aprender a programar

Para terminar, te dejo libros, cursos, videocursos en Youtube y sitios web para aprender a programar en Python, C/C++ y Java, espero que te sirvan:

con Python

Youtube:

Cursos:

Libros:

con Java

Youtube:

Cursos:

Libros:

con C

Youtube:

Cursos:

Libros:

Existen comunidades donde los usuarios comparten libremente su código para que cualquiera pueda examinarlo, corregirlo y adaptarlo, como Github, que además cuenta con un compendio para estudiantes mayores a 13 años que ofrece varias herramientas de pago de forma totalmente gratuita, así como StackOverflow, uno de los foros anglosajones más populares donde los usuarios podrán auxiliarte ante cualquier duda que tengas (aunque antes de preguntar recuerda usar el buscador).

De igual forma, dispositivos como la Raspberry Pi o las placas Arduino UNO pueden ayudarte a familiarizarte con la programación y su aplicación en el mundo real, la primera es una PC ultrabarata que cuenta con todo lo necesario para enseñar a programar, incluyendo una versión especial de Minecraft enfocada en programación además de que puedes encontrar miles de proyectos para implementar usando una Raspberry Pi, mientras el segundo es utilizado para todo tipo de proyectos de electronicos y robotica.

Como continuar…

Camino
Si buscas convertirte en un maestro de la programación, tendrás que recorrer un largo viaje.

Algo que puede pasarte una vez aprendas lo básico de la programación es encontrarte con un “vacío” sobre como continuar con el proceso de aprendizaje, pues aunque existen muchos libros para aprender a programar, y otros tantos de nivel avanzado, aquellos de “nivel medio” no son tan fáciles de encontrar. ¿Qué hacer entonces? La respuesta es: Continuar con tus propios proyectos.

Aplicar lo aprendido y diseñar tus propias aplicaciones te llevará a aprender progresivamente y por tu cuenta lo que más te interese, con el tiempo podrás definir las áreas que te interesan y posteriormente te encontrarás leyendo aquellos libros avanzados que parecían indescifrables cuando comenzaste a programar.

Colaborar con algún proyecto de Software Libre o en algún negocio local puede servirte para obtener mucha experiencia, que posteriormente podrás materializar en tu propio software.

La clave es continuar aprendiendo y accediendo a nuevas fuentes de información, llegará un momento en que te encontrarás leyendo directamente la documentación del lenguaje en lugar de buscar cursos o libros relativos al tema.

De igual forma, escribir tus propias funciones, aprender algoritmos y conocer los diferentes paradigmas de programación son una gran forma de continuar prácticando después de aprender lo básico de cualquier lenguaje.

El resto lo decides tú.

Recomendaciones personales

Cuaderno
En ocasiones, una pluma y un cuaderno serán tus mejores aliados.

Como actual estudiante, tengo algunos consejos que dar a cualquiera que vaya comenzando, como siempre, esto es totalmente personal y subjetivo, quizás muchos ya lo tengan en cuenta, pero nunca sobra decirlo:

  • Organizate. Crear diagramas de flujo te permitirá tener un flujo de trabajo organizado y conciso. No dejes código que no utilices y esfuerzate en comprender completamente como funciona lo que escribes antes de pasar al siguiente tema.
  • No te desesperes. Quizás al principio pueda ser dificil comprender la programación o te abrumes al leer la cantidad de código que hay en muchos programas, pero dominar la programación lleva tiempo. Otro aspecto comun es no entender cuando vas a aplicar los conocimientos que adquieres en un curso o leyendo algún libro, no te preocupes, aprender a programar es como armar un rompecabezas, al comenzar no podrás ver el panorama completo, pero conforme avances, te darás cuenta que cada parte tiene su próposito.
  • No memorices. ¿Cuántas veces no habré visto a alguien intentando memorizar todas las palabras reservadas, métodos y clases de un lenguaje? Lo cierto es que esto sirve de poco. No sólo porque sería una gran labor, si no porque memorizarte algo en un lenguaje es totalmente inútil si en algún momento tienes que trabajar con uno distinto al acostumbrado.
    Como ya mencioné, lo que deberás aprender es la lógica detrás de la programación, esto te permitirá después adaptarte a la sintáxis del lenguaje que ocupes sin quebrarte la cabeza.
  • Más lineas de código no significa mejor programa. Antes de mostrar al mundo orgulloso tu programa de 30,000 lineas de código, analizalo y preguntate si puedes hacerlo más corto (y legible para otros programadores). Cuando llegue el momento, aprende sobre funciones y métodos y aplicalos. Al hacer esto en todos tus programas, irás ganando buenos hábitos de programación.
  • Práctica. Y mucho. Programa todo lo que puedas, pues la práctica hace al maestro, no hay otra opción. Pon en práctica tus conocimientos, aprende más y sigue prácticando.

Para terminar, diría que pruebes los IDEs y editores de texto más famosos para quedarte con el que se adapte a tu forma de programar. Yo recomendaría el editor de texto Atom gracias a ser Software Libre, multiplataforma y contar con una buena cantidad de complementos para aligerar la carga de trabajo. Recuerda que el software donde escribas tu código será una de tus mayores herramientas de trabajo, elegirlo bien puede ahorrarte mucho tiempo y dolores de cabeza en el futuro.

Conclusión

Código en Jquery

Comenzar a programar no tiene que ser una tarea exhaustiva ni un martirio, al contrario, es un ejercicio que puede ser muy entretenido y para todas las edades, gracias a lenguajes como Scratch, perfecto para enseñar a los niños, o Python, para poder programar sin tener que preocuparte por todo lo que ocurre detrás, ideal para aquellos ajenos a las ciencias de la computación.

Con cada vez más ventajas, demanda y recursos para aprender, programar se ha convertido en una habilidad esencial para destacar y mejorar tu productividad en todos los ámbitos (Especialmente si sueles realizar tareas repetitivas o trabajas con grandes cantidades de datos), además de que diseñar tus propios programas, adaptados a tus necesidades y totalmente funcionales es una de las tareas más compensadoras que puedes realizar en un equipo de computo.

En resumen, aprender a programar te traerá una serie de beneficios que sólo tu descubrirás cuando lo realices y que pueden ayudarte más de lo que crees.

Espero que te este artículo te haya servido para aclarar el tema y encontrar nuevos recursos para iniciarte en el hermoso mundo de la programación. Te mando mis mejores deseos.

Noé Reyes Guerra

Soy un jóven aficionado a la tecnología, felíz usuario de Linux, Firefox y Android, partidario del software libre.

2 comentarios en “¿Cómo (y por que) aprender a programar? La guía definitiva

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *