martes, 29 de abril de 2014

Lenguajes ofertados

En OperadorTernario nos gustaría poder enseñar la mayor cantidad de lenguajes de programación posibles, sin embargo, por cuestiones prácticas se verán aquellos lenguajes más populares y posteriormente se irán agregando los demás. En este momento es preciso hacer notar la diferencia entre lo que es un lenguaje de programación y lo que no. Un lenguaje de programación define variables, estructuras de control, funciones, entre otros componentes imprescindibles para su identificación y comportamiento, y es utilizado para traducir algoritmos al lenguaje máquina. Un lenguaje que no es de programación no define variables, estructuras de control, ni otros, aún cuando sí define una sintaxis y semántica. Por ejemplo, el lenguaje HTML5 es de marcado y no de programación.

Por el momento, veremos sesiones periódicas de los siguientes lenguajes de programación:

Tanto PHP como Python son lenguajes de propósito general, sin embargo, un gran porcentaje de los desarrolladores frecuentemente los utilizan como lenguajes para programar en la web. En modo similar el lenguaje JavaScript es utilizado para manipular el DOM (Document Object Model) en páginas que utilizan HTML, es practicamente esencial en las RIA (Rich Internet Applications), aplicaciones ricas en internet y es la base de lo que hoy se conoce como AJAX, una técnica avanzada de programación que utiliza XML o JSON para generar una comunicación asíncrona con el servidor.

A la par de estos maravillosos lenguajes de programación, veremos también otros lenguajes que complementan su función tales como HTML5 y CSS3, que son utilizados para generar contenido en la web, y presentarlo de una forma agradable y hasta muchas veces con animaciones y efectos transicionales (CSS3).


Modelado en bases de datos

Un estudio más avanzado nos llevaría posteriormente a ver bases de datos y podríamos aprender implementaciones del lenguaje SQL tales como
  • MySQL
  • SQL Server
  • PostgreSQL

Aunque por ahora, nos centraremos en las páginas que no manejan bases de datos y dejaremos las demás para lo último. Finalmente, nos quedaría tiempo para ver todo lo relacionado con Frameworks y Patrones de diseño.

Se espera que después de esta breve explicación de la temática, el lector pueda vislumbrar aunque sea de manera somera el camino que se debe recorrer para llegar a ser un buen desarrollador de software. En este caso, hemos dedicado especial atención en el ambiente web ya que en los últimos años el mercado del internet ha tenido un crecimiento exponencial y según estadísticas la demanda de desarrolladores superará la oferta. Enhorabuena, un punto a nuestro favor, Hasta pronto!


Referencias

- Lenguaje de programación. (2014, 12 de junio). Wikipedia, La enciclopedia libre. Fecha de consulta: 03:48, julio 8, 2014 desde http://es.wikipedia.org/w/index.php?title=Lenguaje_de_programaci%C3%B3n&oldid=74995232.

viernes, 25 de abril de 2014

Escoger el lenguaje

En el anterior post se habló de cómo adentrarse en el mundo de la programación, en el día hoy se hablará de cuáles son los lenguajes más adecuados para empezar a programar y cuáles no. Escoger el lenguaje de programación no siempre es una tarea fácil, debe considerarse cuáles son los objetivos que se quieren lograr en la organización en la que trabajamos o a nivel personal. Algunas personas prefieren por ejemplo encaminarse por la programación web o la programación de dispositivos móviles, otros sin embargo prefieren la vieja escuela y comenzar a hacer programas compilados para plataforma.

Python
Independientemente del camino a seguir, debe tenerse en cuenta ciertas características de los lenguajes de programación que a la final definirán nuestro estilo para programar. Casi por estándar, se suele sugerir a los nuevos programadores que comiencen sus desarrollos en Python, un lenguaje limpio, que induce a las buenas prácticas de programación como las sangrías, reuso del código, es fácil de aprender, portable y de código libre. Además, Python es un lenguaje multipropósito, lo que quiere decir que lo puedes usar en entornos web, plataforma, consola, entre otros. Si dominas medianamente el idioma inglés, también puedes comenzar un curso formal en algunas universidad de Estados Unidos en la página del edX, constantemente lanzan nuevos cursos sobre programación de computadores en Python.

Java
Otro lenguaje de programación muy utilizado en las Universidades es el lenguaje Java, aunque esto es más un estándar porque personalmente no es el lenguaje más amigable para aprender desde cero. Sin embargo, Java es extremadamente poderoso y esto se debe a su grandiosa implementación de la programación orientada a objetos. Puede ser utilizado también para distintos propósitos y tiene una comunidad bastante grande de usuarios. En el portal de oferta educativa SENA puede encontrarse varios cursos virtuales de Java comenzando desde las básicas estructuras de programación hasta el manejo avanzado de memoria, bases de datos, redes y servlets. Igualmente en la página del edX existen varios cursos sobre Java en distintas universidades del mundo.

PHP
Para los que les apasiona el mundo web, PHP es el lenguaje indicado. Es un lenguaje que implementa completamente (desde la versión 5) el paradigma de programación orientado a objetos. No solo eso, permite también realizar programación estructurada con lo que permite a los usuarios un más fácil manejo y adecuación que Java no brinda. Otra variante que se recomienda, es el lenguaje Ruby, más conocido como Ruby on Rails por su framework. Personalmente, aún no he tenido tiempo de aprender este lenguaje pero tiene muy buenas referencias.

Hay muchos otros lenguajes más allá de los que hemos visto anteriormente, algunos dirán que la lista debió ser encabezada por el popular Visual Basic o el clásico Pascal, sin embargo, es precisamente este tipo de afirmaciones la que en vez de adelantarnos un paso en la programación nos atrasa dos. Existen muchos otros lenguajes excelentes para comenzar la programación desde cero, y por el contrario existe otro par de lenguajes nada recomendables para adentrarse en el mundo de la programación; podemos citar por ejemplo Visual Basic y Perl, dos lenguajes de los que hay que tener cuidado, pues requieren un nivel de programación más alto (patrones, refactorización, etc).

Visual Basic
Visual Basic no es un mal lenguaje de programción, simplemente, induce a las malas prácticas de programación en estudiantes jóvenes e inocentes. Muchos individuos habrán tenido su primer contacto con la programción con este lenguaje, y sin duda habrán hecho cosas increíbles rápidamente. Sin embargo, es esa misma flexibilidad de Visual Basic la que lo hace un lenguaje no apto para la enseñanza.

Perl
Por otro lado tenemos a Perl, un gran lenguaje de administración, que tiene la debilidad de no ser ordenado. Ocurre casi el mismo problema que con Visual Basic, además que en Perl es mucho más difícil depurar los errores. Esto se debe a la filosofía de Perl, muy encaminada al facilismo y a realizar las cosas de distintas maneras posibles. Incluye excepciones a reglas que en otros lenguajes de programación se marcan claramente, esto es contrario a lo que podríamos encontrar por ejemplo en Python, el cual no permite dejar pasar silenciosamente los errores.

Cabe anotar que ninguno de los dos lenguajes mencionados anteriormente es un mal lenguaje de programación, simplemente ninguno de los dos es el mejor lenguaje para aprender desde cero. Ocurre irónicamente todo lo contrario, parecen ser lenguajes dirigidos a programadores documentados en técnicas avanzadas,  patrones de diseño, y otros cuántos temas que solo un desarrollador experientado podría conocer. Esto con el fin de explotar el lenguaje al máximo y no divagar entre lo que se cree que está bien hecho y lo que no.

Visual Basic hoy en día, es poco más que utilizado, puesto que muchos programas empresariales están programados en este lenguaje, sin embargo, la última versión que salió al mercado fue la versión 6 publicada en 1998 para la que Microsoft extendió soporte hasta marzo de 2008. Sin embargo, en 2001 con la llegada de .NET Framework, Visual Basic obtiene una nueva oportunidad pasando a ser uno de sus principales productos denominado Visual Basic .NET, el cual, personalmente, si es un lenguaje digno para aprender a programar desde cero.

Otro lenguaje que entra en debate, pero no lo mencioné anteriormente sería Pascal. Aún hay universidades que eligen este lenguaje en sus cursos de lógica y programación. Pascal es un excelente lenguaje obviando lo obsoleto de su existencia. Sigue siendo uno de los lenguajes preferidos por profesores y estudiantes debido a que cumple el menester de la universidad, aprender a aprender. Si deseas comenzar con este lenguaje un buen lugar para ello es visitar la página de uno de sus compiladores más populares FreePascal.

Sea cual sea tu desición, lo seguro es que los primeros pasos en la programación son más que increíbles, son mágicos. La satisfacción que produce ver correr las primeras líneas de código es algo inolvidable, casi sublime. No importa el lenguaje, yo vi mis primeras lineas ejecutarse en consola con el lenguaje Pascal, y ello marcó un hito en lo que es mi vida hoy en día como programador. Es esa pasión y deseo de crear sistemas lo que marca la ideología de un buen desarrollador de software a lo largo de toda su vida. Hasta la próxima!


Referencias

- Python. (2014, 23 de mayo). Wikipedia, La enciclopedia libre. Fecha de consulta: 03:25, julio 8, 2014 desde http://es.wikipedia.org/w/index.php?title=Python&oldid=74587866.
- Java (programming language). (2014, July 5). In Wikipedia, The Free Encyclopedia. Retrieved 03:27, July 8, 2014, from http://en.wikipedia.org/w/index.php?title=Java_(programming_language)&oldid=615663189
- PHP. (2014, July 8). In Wikipedia, The Free Encyclopedia. Retrieved 03:28, July 8, 2014, from http://en.wikipedia.org/w/index.php?title=PHP&oldid=616031536
- Visual Basic. (2014, 2 de julio). Wikipedia, La enciclopedia libre. Fecha de consulta: 03:31, julio 8, 2014 desde http://es.wikipedia.org/w/index.php?title=Visual_Basic&oldid=75370190.
- Perl. (2014, June 27). In Wikipedia, The Free Encyclopedia. Retrieved 03:32, July 8, 2014, from http://en.wikipedia.org/w/index.php?title=Perl&oldid=614646366

jueves, 24 de abril de 2014

Empezando a programar

Iniciarse en el mundo de la programación no es fácil, el programador de computadoras debe ser una persona creativa y persistente para enfrentar los retos que todos los días le depara el mundo laboral. Muchos son los obstáculos que se interponen en el transcurso de vida de un programador o desarrollador de software, y aquella persona que simplemente programa. Así es, hay muchas otras personas intentando llevar una vida programando pero no lo consiguen. Como muchas otras cosas en la vida la programación requiere de práctica, pero no solo eso hace a un gran programador, se requerirá gran capacidad de análisis, abstracción, lógica, entre otras cualidades.

Tras varios años de observar como los demás programadores aprenden, y cómo aprendí yo mismo, he llegado a la conclusión de que un programador no nace, se hace. El camino por el cuál comenzar no siempre es claro, algunas personas son mucho más hábiles que otras y pueden lograr en unas cuántas semanas dominar los conceptos básicos de la programación en lenguajes como Python, PHP, o Javascript. Sin embargo, a muchas otras personas se les hace un poco más difícil esa transición del lenguaje cotidiano al lenguaje máquina, y deben comenzar con entornos más intuitivos como scratch, o lenguajes más familiares al lenguaje natural como lpp. Algunas pruebas iniciales también ayudan a entender cómo es el proceso de aprendizaje en distintos individuos, por ejemplo, puede ser más llámativo y mucho más fácil para una persona ver videos a modo de tutorial que leer decenas de páginas en un libro que hable sobre lo mismo.

Independientemente de la forma en que más se apropie el conocimiento, hoy voy a recomendar este gran libro, que a mi modo de ver nos inicia de una manera fantástica no solamente en la programación de computadoras, sino también en el análisis de problemas y diseño de soluciones.



Aunque es un libro inicialmente dedicado a los educadores, también nos va muy bien si no somos docentes. Es una excelente guía de análisis de problemas que muy seguramente servirá mucho más adelante cuando se vean temas más especializados en el desarrollo de software. Este libro lo conocí cuando cursaba el técnico en programación de software en el Servicio Nacional de Aprendizaje (SENA) en 2013.



No he encontrado un material tan completo y bien explicado (en cualquier formato multimedia) como éste sino en los cursos del MIT y la universidad de Harvard que se dictan de manera online en el edX. Pero por supuesto, este tipo de cursos son en inglés, y esto ya es un gran impedimento para la mayoría de la gente que solamente desea aprender a programar y no la doble carga de aprender inglés también.

Aclaro, que no es en esencia necesario leer un libro como el anterior antes de enfrentarse con un verdadero lenguaje de programación, sin embargo, es muy importante tener bases sólidas si queremos profundizar más rápidamente en aspectos avanzados del desarrollo de software y que marcan la tendencia hoy en día como lo son la programación orientada a objetos y los patrones de diseño.

Finalmente, quiero decirles que no se apresuren a programar, es un error muy común cuando se inicia en el mundo de la programación. Hay que darle tiempo al tiempo, es mucho más significativo analizar el problema en cuestión unos cuantos minutos y luego echarle mano al código, que comenzar digitar código y borrar las mismas líneas a modo de ensayo-error. En el próximo post (Escoger el Lenguaje) veremos qué lenguajes son los más adecuados en el proceso de iniciación de la programación y cuáles no. Hasta la próxima!

Bienvenidos

Operador ternario es un blog de programación en general, en donde se abordan diversas técnicas, patrones de diseño, anti-patrones y últimas tendencias en el desarrollo de software. También puede servir de guía para aquellas personas que aún o no se han adentrado del todo en el mundo de la programación y les falta ese último paso para dedicarse de lleno al desarrollo de software.

Nuestra Misión


Analizar y evaluar las técnicas y lenguajes de programación actuales para establecer estándares de calidad en el proceso de desarrollo de software.

Nuestra Visión


Ser una guía de referencia para desarrolladores de software con alto nivel de calidad y credibilidad mediante la cual se pueda compartir el conocimiento en una red de más de mil suscriptores en 2018.