lunes, 15 de febrero de 2016

¿Qué lenguaje de programación debería aprender?

¿Qué lenguaje de programación debería aprender?

Es posible que estás empezando en el maravilloso mundo de la programación pero te has dado cuenta de todos los lenguajes y las plataformas existentes por lo que no tienes idea dónde comenzar.

Si este es tu caso, déjame contarte un poco de mí.

Cuando entré a la medio superior  (nivel preparatoria pues) me enlisté a la especialidad "Técnico programador" aun cuando no tenía ni computadora pero los pocos encuentros que tuve con una en la secundaria me enamoraron de la computación por lo que decidí tener algo que ver con ella  y en especial con la programación.   

Según el plan de estudios teníamos que ver muchos lenguajes por lo que comenzó la travesía.

La verdad es que no recuerdo todos pero el primero fue Basic, que de verdad fue muy básico. Debido a que era de alto nivel era muy entendible y qué bueno pues comenzábamos a programar y fue aquí cuando todas las estructuras de control tomaron mucho sentido fuera del papel pues antes de pasar a programar nos llenaron de la teoría pertinente. Mi cerebro comenzaba a estructurarse.

Le secundó Visual Fox Pro que ya tenía un aspecto un tanto diferente pues no era el típico fondo azul o negro de la típica "consola" pero que al fin al cabo era basicamente lo miso (salvo la sintaxis claro) pero recuerdo que en este me salían mejor las cosas. 

A continuación vino Pascal, lenguaje un tanto más estructurado que me gustó mucho por sus "procedures" que serían un equivalente a las funciones del C/C++ pues podían escribirse por separado pero invocarlas cuando así lo necesitaras. En este me atreví a meterme más y logré hacer incluso conexiones a bases de datos que eran archivos generados y gestionados por este mismo lenguaje por lo que no eran tanto como los conocemos ahora. 

Después conocí al "amor de mi vida" el hermoso lenguaje C.
Como muchos saben, en este lenguaje la programación es más estructurada y se homologa la programación orientada a objetos pues no lo es en sí. Aquí mi cerebro se estructuró mucho, la forma en cómo te hace pensar y la lógica que requiere hace que tu cerebro empiece a ser más de "programador" por lo completo que era el lenguaje en ese momento. Las estructuras de control se hacían muy lógicas y entendibles  y algo que ayuda mucho a ver y entender el código eran dos cosas que para muchos son unos dolores de cabeza. Las llaves {} y el no tan querido punto y coma ;
A mí en lo personal me gustó mucho, me adapté muy fácil y vi que el uso de librerías podían hacerlo cada vez mejor por lo que difícilmente podría preferir otro, o al menos eso pensé muy poco pues pronto conocí su evolución: El C++. Este lenguaje se hizo mi fiel amigo por muchos años pues aprendí mucho de él una vez entrando a la universidad. Éste ya es más orientado a objetos o también conocido como híbrido por contar con programación estructurada y orientada a objetos.
Hacer el cambio "structs" a "class" no fue tan complicado aunque sí me tuvieron que llenar de ejemplos y el manejo de punteros y los tipos de clases fue algo en lo que tuve que centrarme mucho pero una vez habiendo abundado en ello super el gran potencial que tiene y por  qué sigue siendo tan usado en la actualidad. 

Ya a finales de la preparatoria terminamos conociendo al Visual Basic  en Visual Studio 6 que lo novedoso era el uso de la interfaz gráfica más en forma con etiquetas, botones  y cajas de texto. Tenía una sintaxis similar salvo la acepción de las llaves y puntos y comas y la manera en cómo se declaraban variables y constantes pero básicamente el flujo y la estructura del código era muy similar. Lo que vino a hacerlo muy interesante fue la integración con Acces como base de datos lo cual llevaba a otro nivel el desarrollo pues se podía hacer cosas más interesantes.

En algún punto de la preparatoria estudié HTML por mi cuenta, que no es lenguaje en su totalidad pero que fue y es útil para muchas cosas y con lo que libré varios proyectos escolares. 

Y como ya lo mencioné, al entrar a la universidad retomé el C++ y todas sus capacidades que eran muchas. Conocí otras variantes como el Visual C++ y su evolución; el C#, lenguaje que actualmente más uso y a decir verdad es mi preferido y me actualicé en lo nuevo de Visual Basic. También fue aquí donde conocí mejor las bases de datos con MySQL y SQL Server, cosas que a decir verdad no son mi hit pero que debo aprender a amar :/

Ya en el ámbito laboral conocí otros como el PHP, JQuery, XAML, Javascript entre otros pero estos son los más relevantes y más usados en el desarrollo web.

Y, volviendo a la premisa de qué lenguaje o lenguajes debería aprender con toda certeza, bajo mi experiencia diría que C++. Este lenguaje es el "abuelo" de muchos actuales y muy utilizados (sé que debería ser el C pero el C++ maneja mejor el concepto de POO). Dado que muchos heredaron su sintaxis y su estructura, si eres bueno en C++ será más fácil aprender de sus "nietos" pues tan sólo con conocer dicho lenguaje ya podrías entender Java(incluyendo por obvias razones el lenguaje para Android), Javascript, C#, PHP, JQuery y Objective C (iOS) pero sobre todo tu lógica se hará fuerte y otros lenguajes también serían fáciles de aprender. Además, el C++ es muy usado para la programación de microcontroladores y microprocesadores, me tocó programar algunos de estos a lo largo de la carrera.
Aquí no debemos descartar al HTML que podría ayudarte a aprender XML, XAML y CSS, pero esto depende de que tipo de desarrollador quisieras ser (web, escritorio, móvil) pero sin duda alguna son de mucha utilidad conocerlos, pues es casi seguro que los vas a necesitar.  

Así que si estás en la incógnita de con qué lenguaje empezar esa es mi recomendación. Si es por hobbie pues no te hará mal intentarlo con calma y cuando puedas intentar con otros pero si tú lo que quieres que te hable en plata, empieza con Java que es de los más pagados seguidos de los .Net y los scripts y no olvides las bases de datos, nunca te vas a deshacer de ellas.

Lo que si te recomendaría es que siempre elijas populares pues su popularidad asegura que sigan siendo opción en el mercado por mucho tiempo y que lo que aprendas no se discontinue tan rápido. También elige los que tienen mucha documentación y mucho soporte pues lo vas a necesitar. Atrévete a aprender otros y si trabajas por tu cuenta o pretendes hacerlo esto te va a abrir tu panorama ampliamente.

Puedes visitar a "San Google" y preguntarle cuáles son los lenguajes más utilizados y los mejor pagados para que te des una idea del mundo real. 

Espero que esto ta hay sido de utilidad y si tienes algún comentario no dudes en compartirlo.

El extraño caso de Samuel Boings

Hola soy Sam y esta es mi historia

Soy Ingeniero en comunicaciones y Electrónica, egresado de la Escuela Superior de Ingeniería Mecánica y Eléctrica (ESIME Zacatenco) del Instituto Politécnico Nacional (IPN).

Dado que soy técnico programador elegí la especialidad de computación por lo que ahora me dedico al desarrollo de software. Me gusta la programación pero creo que no soy muy bien correspondido.

El nombre surgió de mis anécdotas en mi trabajo anterior. Estaba en una empresa muy pequeña. Era el tercer programador de tres contratados. El empleo lo conseguí gracias a la recomendación de un amigo y ex compañero de clase. A este amigo en realidad le debo muchas cosas, desde la oportunidad de entrar a ese trabajo hasta estar actualizado en todos los asuntos relacionados a la programación y en especial a lo referente al .Net.

Todo surgió debido a que como él era mi jefe de proyecto, me proporcionaba todas las configuraciones y archivos que yo tenía que manipular y los proyectos que tenía que completar y escalar pero no siempre fue tan sencillo. 

Por alguna extraña razón, las cosas no funcionaban de la misma manera como la hacían en su computadora. Aparentemente todo estaba de la misma manera; configuraciones, conexiones, actualizaciones y software eran iguales por lo que no había mucho dónde corregir u homologar. No me salvé de formatear, de reinstalar, de actualizar y todas esas cosas que se hacen para invocar a los dioses que acaban con los bugs y otras amenazas de los programadores. Después de muchos intentos y de poner en práctica esa grandiosa cualidad que las vacantes de programador piden (Tolerancia a la frustración) lográbamos resolver los detalles, siempre acompañado de la gran frase de mi colega "Samuel Boings, las computadoras no te quieren".

Por si se lo preguntan, nadie sabe de dónde salió el mote de "Boings" pero suena bien :P  

En realidad es muy difícil identificad cuáles realmente fueron los problemas que producían tantas fallas pero afortunadamente siempre encontré una solución a cada detalle por lo que tomé la decisión de documentarlas. Muchas de ellas son ridículas o al menos resueltas aparentan serlo pero mientras no sabíamos qué era lo que pasaba parecían ser el fin del mundo. 

Para muchos programadores expertos de verdad son ridículas pero para los no expertos podrían salvarles la vida y como tal vez haya más inexpertos que expertos creo que podrían ser de mucha utilidad. 

Me gusta tomar cursos de You Tube de programación en varios lenguajes por lo que podría hacer entradas de varias cosas pero en general prefiero el .Net por lo que quizás haya más de las tecnologías de Microsoft que de otras.

Espero poder ayudar y si no, al menos que veas que no eres el único al que le pasan "tantas cosas raras".