¿Como aprendo a programar?


¿Cual es el mejor lenguaje para aprender a programar?


   Existen muy buenos motivos para aprender a programar, algunos simplemente amamos la informática, otros estudian alguna rama de las ciencias informáticas, otros aman a Lisbeth Salander, Mr. Robot, o el mundo underground de la informática, y una de las razones mas modernas es que las macro-corporaciones que dominan nuestro mundo moderno no solo están de moda, sino que realizan ofertas laborales muy jugosas (aunque en competencias bastante reñidas), y ¿porque no? últimamente Mark Zuckerberg sentencia "Todos deberían aprender a programar" (aunque si todos supieran hacerlo Facebook no existiría...).

   Antes de comenzar tenemos varios problemas, por ejemplo el pensúm de un ingeniero en informática exige que este tenga conocimientos de redes, hardware (no creas que te salvaras de física, mecánica por estudiar informática), y finalmente software que mas allá de la maquetación se refiere a la programación, pero este post no esta dirigido a quienes decidieron estudiar informática formalmente, así que mas adelante ahondaremos en ese tema; de lo que si hablaremos hoy es del proceso de elección adecuado a la hora de aprender a programar, ya sea que aspires a ser un programador amateur, de oficio, o que planees estudiarlo formalmente.

¿Entonces cual es el mejor lenguaje para comenzar?



    En el mundo de la informática existen muchos lenguajes, algunos ya están obsoletos como Cobol, Fortran, Basic y ni hablar de ¡Pascal!, aunque esto no quiere decir que no sean importantes, de hecho estudiarlos puede ser muy bueno para ti (luego explicare porque), pero hay otros lenguajes que dominan nuestro mundo actual, y son los que debes dominar para considerarte un programador, por supuesto no es necesario que los domines todos, basta con dos o tres, de hecho la mayoría de los programadores se especializan en un lenguaje especifico y dejan el resto del trabajo en manos de otros programadores (ya que las empresas suelen dividir el código en fracciones para luego ensamblarlo todo).

    Antes de enumerar los lenguajes que deberías comprender y en algunos casos dominar a día de hoy, te diré el orden en el cual pienso que deberíamos aprenderlo, yo sé que todas las personas somos distintas, y aprendemos de distintas formas, pero el motivo por el que lo considero de esta manera se debe al nivel de dificultad de los distintos lenguajes, y es cuando considero que lo mejor es ir de menor a mayor, así te será mucho mas fácil.


  • PHP es el lenguaje web por excelencia hoy en día, es un derivado de C, y es un lenguaje netamente web tanto que para poder ejecutarlo en tu computador necesitas simular un servidor (con apache), el caso con PHP es que es mas sencillo que C, pero un poco mas complejo que HTML (de hecho suele aprenderse conjuntamente HTML con PHP, pero primero concéntrate en PHP), una vez hecho esto vamos al siguiente.
  • HTML continuamos con los lenguajes de uso web, luego de aprender PHP nos viene muy bien aprender HTML, nos viene muy bien aprender HTML de forma complementaría, aunque hoy en día PHP presenta un mejor rendimiento (ganancias para el programador), HTML es mucho mas sencillo y económico, es una forma barata de montar una web simple como aquellas que se publican de forma meramente enunciativa, o con fines comerciales. Fíjate bien que he dicho HTML y no HTML5 que es lo que se maneja hoy en día. El hecho importante es que HTML es mucho mas sencillo que PHP, tanto que muchos no lo consideran un lenguaje de programación por estar basado en etiquetas, pero créeme es un lenguaje de programación aunque muy sencillo y fácil de aprender(no me maten por favor), lo que te motivara mucho después de aprender PHP, y te ayudara a organizar tus ideas antes de llegar a C.
  • CSS bueno, tampoco muchos consideran a CSS un lenguaje, pero también lo es (recalco: no me maten), y este nos sirve únicamente para crear hojas de estilo complementarias que minimizaran y agilizaran la presentación de nuestras paginas web en HTML y PHP, de hecho para considerar que dominas el HTML5 y PHP que es lo que se maneja hoy en día necesitas aprender CSS, esta trinidad puede dominarse en menos de un mes si le dedicas tiempo.
  • Lenguaje C ahora si, vamos con un lenguaje de verdad, robusto, multiplataforma, y que esta en uso, por lo que puedo decir que "no estaba muerto, sino de parranda", C es un lenguaje un poco complejo (aunque se puede aprender si tienes ganas), y es el padre de casi todos los lenguajes modernos como CPP (C++), PHP, Python, Java, Perl, etc., así que con aprender C ya podremos facilitaremos el futuro aprendizaje de sus derivados.

    Esta es la manera en la que deberían enseñarte cuando ingresas a la universidad, pero la gran mayoría comienzan por CPP considerando a C un lenguaje obsoleto, el verdadero motivo para esto no es que realmente se encuentre en el extremo de la obsolescencia, sino que es un lenguaje de alto nivel que nos permite controlar el hardware (esto le confiere mucho poder) por lo que podemos crear con el micro-controladores, modificar, y desarrollar sistemas operativos, y mucho mas, así que el verdadero motivo por el cual los pensums universitarios actuales suelen ignorar el lenguaje C es porque es un lenguaje rentable (si, tus profesores no quieren competencia), así que prefieren enfocarse en derivados que no tienen tanta potencia como Python, y PHP.

¿Cuales lenguajes debería dominar para estar al día?



    A día de hoy si quieres estar al corriente deberías tener los conocimientos básicos de HTML5, XML (si sabes HTML5 es sencillo comprenderlo), PHP, C por supuesto para facilitar el aprendizaje de otros lenguajes y ademas algunos derivados como:

  • CPP
  • Java
  • Perl
  • Python
  • Rubi

    La lista es corta y habrá quienes mencionen a .net, Javascript, C#, GO, Matlab, y hasta Hack (otro derivado de C creado por la compañía Facebook con fines netamente publicitarios...), el punto es que ¿alguien utiliza estos lenguajes?, ¿o al menos poseemos alguna aplicación o programa desarrollada en ellos?, entonces no resultan aprendizajes prácticos en la cotidianidad del programador, ademas siendo en su mayoría derivados de C (como los de la lista) su aprendizaje se facilita enormemente, por lo que podríamos entenderlos leyendo el código fuente de algún programa y ojeando el manual del lenguaje.

Lenguajes que te recomiendo aprender


   Ya te he recomendado C que es un excelente lenguaje y bastante rentable, pero sin duda alguna mi mejor recomendación es que aprendas Assembler también conocido como Ensamblador, es un lenguaje de bajo nivel que las universidades deberían tomarse la molestia de incluir en sus pensums, pero no lo hacen por el mismo motivo por el que hoy en día se ha excluido a C, y es que Assembler es el lenguaje mas rentable debido a su complejidad, el hecho de que permite controlar directamente el hardware, y no es nada limitativo, con Assembler podemos hacer micro-controladores, programas, desarrollar sistemas operativos, disminuir el espacio ocupado por el proyecto de varios gigabytes a unos cuantos KB o a veces unos pocos MB un ejemplo de ello es MenuetOS un sistema operativo moderno de 32 y hasta 64 bits que cabe en un diskette de 1.44 MB, todo es posible ya que se trata del padre de todos los lenguajes de programación. Claro, programar en Assembler es tedioso, pero muy bien vale la pena, lo que lo hace uno de los lenguajes mas rentables debido a la escasa competencia.

   Lo único mas allá de Assembler sería programar directamente en código binario pasarlo a hexadecimal con un editor, y pegarlo directamente, lo que estoy seguro requiere muchas lineas de codigo, aunque mejoraría la eficiencia reduciendo el espacio requerido ¿pero en la época de los Terabytes que importan unos cuantos megas?, pero Assembler hace que esto sea innecesario, ademas no sabría si eso llega al extremo de la curiosidad o de la barbarie (pero sigue siendo interesante).


El interesante caso de Pascal, Cobol, y Fortran



     Estos lenguajes se consideran realmente muertos y enterrados, pero hoy en día son mas rentables que nunca, y es que son lenguajes creados para aplicaciones netamente comerciales, una analogía para explicarlo es que en la época del Flash USB, la nube, y los SSD, algunos aeropuertos, y empresas en España, continúan comprando diskettes de 1.44 MB de 3½ pulgadas y hasta de 5¼, todo porque hicieron grandes inversiones tecnológicas para estar a la vanguardia hace 30 años, y aún hoy en día se niegan a renovar su inversión, algunos por tacañería, otros porque simplemente les funciona muy bien. Algo similar ocurre con estos lenguajes de programación, fueron desarrollados y orientados por y para empresas de comunicaciones, bancos (por increíble que parezca), y otros sectores industriales, hay mucho software y de gran calidad desarrollado en estos lenguajes, pero hay muy poca gente dispuesta a continuar su desarrollo, lo que hace que sean lenguajes obsoletos desde la perspectiva común, pero bastante rentables e interesantes para los nuevos talentos.

Conclusión


   ¿Quieres aprender a programar? entonces lo mejor es que comiences por los lenguajes web, son sencillos, y hay mucha información sobre ellos en todos lados, HTML, CSS, y PHP, luego aprende C, y con eso ya es suficiente para que puedas comprender todos los demás ya que casi todos son derivados de C.

   Pero si quieres ir un paso mas allá, y ser uno de los mejores, entonces aprende assembler.

0 comentarios:

Publicar un comentario

 
Top