viernes, 22 de enero de 2016

Introducción a la programación: ¿Es difícil programar?

Creo que una buena forma de inaugurar un blog sobre programación es situarla en el tiempo y eliminar los tópicos que alejan a la mayoría de la gente de ella. Con esta primera entrada del blog, tengo como principal objetivo el animar a la gente que está interesada en introducirse en ella, pero por uno u otro motivo todavía no se ha decidido.

Introducción a la programación

Entender las bases teóricas de la programación es uno de los requisitos fundamentales para ser un buen programador. Es cierto que podemos ver vídeos en Youtube sobre cómo programar, más directos, pero, ¿qué pasará cuando queramos dar un paso más y desarrollar una aplicación más complicada?

Como en todo, en la programación hay una parte aburrida y esa es la teoría, pero si nos la saltamos más tarde o más temprano seremos conscientes de nuestras carencias y de los malos hábitos reflejados en nuestro código que lo harán ilegible, poco eficiente e indeseable para optar a puestos de trabajo dignos en el sector.

Contexto: ¿Qué es la programación?


Ya sea para modificar el comportamiento de nuestra página web, para añadir funcionalidades a nuestro teléfono móvil o para hacer más sencillas algunas tareas en nuestro ordenador, debemos establecer contacto con el ordenador. Tenemos que decirle instrucción a instrucción lo que queremos que haga por nosotros y, aunque parezca mentira a veces, siempre que haya un error en la ejecución de nuestro código la culpa será solo nuestra.

Los computadores (todas las máquinas con un procesador: ordenadores, tablets, móviles, etc) solo son capaces entender código binario (largas listas de 0's y 1's muy difíciles de leer para el ser humano) y hasta hace relativamente poco, eramos nosotros los que teníamos que hacer un esfuerzo para establecer comunicación con ellos: programar la aplicación más sencilla se tornaba en una lucha con el código máquina de ceros y unos y es por ello que todavía se entiende la programación como un conocimiento solo disponible para unos pocos.

Lenguajes de programación


Para facilitar la tarea del programador, nacieron los lenguajes de programación, que no son más que un intermediario entre el idioma que nosotros entendemos (inglés, español, etc)  y el que son capaces de procesar los computadores (código binario).

Existen decenas de lenguajes de programación entre los que se encuentran Java, C, C++ o Python y cada uno de ellos es más adecuado para programar ciertas aplicaciones que otro, aunque nos sea posible realizar la misma tarea con un lenguaje que no fue diseñado para ello (lo que nos costará más tiempo, más esfuerzo y a la larga nos hará ver que nos equivocamos a la hora de elegir el lenguaje de programación). Esto no debe convertirse en un quebradero de cabeza, pues en Internet podemos encontrar recomendaciones de uno u otro lenguaje dependiendo del software que queramos desarrollar y en la gran mayoría de casos tendremos unos cuantos entre los que elegir. 

Un lenguaje de programación se distingue de otro en la sintaxis (palabras reservadas por el lenguaje) y la semántica (que definirá la estructura de las aplicaciones y de nuestro código). Aunque os adelanto que después de conocer un lenguaje a fondo, el resto son bastante parecidos y a pesar de las diferencias entre ellos se aprenden con mucha más facilidad.

¿Qué es la programación?


Entendemos la programación como un proceso en el que debemos diseñar, escribir, depurar y mantener el código que da lugar a una aplicación determinada y que tiene un objetivo en concreto: podemos programar una calculadora, un videojuego o una aplicación móvil, entre otras muchas cosas.

En la práctica, las diferentes tareas de un programador (diseñar, escribir, depurar y mantener el código) pueden repartirse entre un equipo, en el caso de tratarse de una empresa, o realizarse por una sola persona como sucede en los proyectos personales o en los freelance (proyectos de bajo coste desarrollados en su mayoría de forma individual).

Para entendernos mejor, programar es escribir el código en un editor de texto o entorno de programación (que es un editor de texto, pero decora las palabras con uno u otro color dependiendo de su tipología y añade formato a nuestro código para hacerlo más legible: facilita la programación).

Situación actual de la programación


Desde sus inicios hasta la actualidad, la programación (aplicaciones, programas y en general las nuevas tecnologías) ha ido tomando cada vez más importancia. Cualquier negocio local tiene ahora su propia página web o aplicación para Android e iOS sin necesidad de tener un departamento de informática.Esto se debe a la facilidad que ofrecen los lenguajes de programación de alto nivel (en muchas ocasiones se clasifican los lenguajes de programación dependiendo de la distancia con el código máquina que guardan: los lenguajes de bajo nivel se escriben en números o con sentencias complicadas (por ejemplo: Ensamblador o C) mientras que los de alto nivel son muy parecidos al lenguaje humano y ahorran 'trabajo sucio' al programador (como podría ser Java o Ruby)).

Clasificación lenguajes alto y bajo nivel
Los lenguajes de programación de alto nivel tienen una sintaxis más humana

Programar es hoy más fácil que nunca, ya que no es necesario entender cómo funciona el hardware de un ordenador para crear nuestra propia aplicación, así como tampoco lo es entender el funcionamiento de las librerías (depósitos de código ya escrito que podremos incluir en nuestra aplicación para realizar ciertas tareas) que todos los programadores usamos en nuestros proyectos, pues perderíamos mucho tiempo reescribiendo algo que ya está recogido.

Si hay algún momento para iniciarse en este mundillo es ahora que está al alcance de todos gracias a toda la información que circula en Internet y a las incontables oportunidades de negocio que surgen en la red: cada día conocemos nuevos casos de aplicaciones móviles exitosas que hacen a sus creadores ganar cantidades de dinero que parecen ficticias o de empresas que tras crear un perfil en la web han aumentado sus ganancias sustancialmente.

Conclusión: ¿Es difícil programar?


Si has llegado hasta el final de esta entrada ya tienes la mayor parte del camino hecha jeje. Es normal sentirse completamente perdido debido a la cantidad de términos que se emplean en torno a la programación, pero no debemos confundir lo abrumador que resulta plantarse ante tal cantidad de información con la dificultad de la misma. A no ser que nuestro objetivo sea programar algo realmente complicado, como puede ser un compilador, un sistema operativo o un motor gráfico, no encontraremos nuestros límites en cuanto a complejidad (lógica necesaria, matemáticas, física, principios de computación, etc).

Programar no es una tarea difícil, pero requiere de motivación por parte del que empieza, así como de una dedicación constante: no es una de esas cosas que pueden mirarse un día y al año siguiente dedicarle otro par de horas. Si queremos aprender a programar tenemos que echarle ganas y trabajarlo un poco todas las semanas. Además, basta con mirar toda la gente que se ha sumado a la programación en cuanto salieron las aplicaciones móviles. Si ellos han podido aprender estoy seguro de que tú también eres capaz.

Mi recomendación final para introducirse en la programación es rechazar los vídeos de Youtube, que pueden parecer útiles en un principio e inclinarse por fuentes de autoridad escritas por profesionales del sector: los libros. Existen libros que empiezan desde cero y repiten una y otra vez los conceptos.

El primer libro sobre programación que leí fue "Cómo programar en C++" (editorial Deitel) recomendado por la Universidad de Valencia como material de apoyo para la asignatura de programación. Si de verdad estás interesado en la programación, entra en ella de la mejor forma y descubre que detrás de todas esas palabras en inglés, todo es mucho más sencillo de lo que parece.