Ir al contenido principal

¿Qué lenguaje de programación elegir?

Elegir lenguaje de programación es el primer paso para realizar un proyecto, pero para ello hay que saber lo que queremos conseguir con nuestro programa.

elegir-lenguaje-de-programacion
Existen una inmensa variedad de lenguajes de programación que podemos elegir para satisfacer distintas necesidades. Si bien es cierto que muchos de ellos se pueden utilizar en diferentes ámbitos, siempre suele haber algún lenguaje que destaque entre los demás para dicha área. Para alguien novato en el desarrollo de programas, elegir lenguaje de programación no suele ser tarea fácil y si pregunta las opiniones que encontrará al respecto serán muy diferentes.
Este artículo pretende ser una guía básica para que toda persona interesada enaprender a programar en un área concreta sepa por qué lenguaje o página web podría empezar. Como me es imposible mencionar todas las opciones que existen, sería fantástico que las personas que tengan experiencia en dichas áreas nos compartan su experiencia en los comentarios, siempre hay algo nuevo que aprender.

Desarrollo web

Cuando queremos hacer páginas o aplicaciones web hay que diferenciar si queremos hacer para frontend (lado del usuario) o backend (lado del servidor).
  • Frontend: lo primero es aprender el lenguaje que servirá como estructura para la interfaz, su nombre es HTML y es un lenguaje de marcado, no de programación. Con el podremos poner títulos, negrita, subrayado, enlaces... etc. Para darle estilos (colores, dimensiones) usaremos CSS. Para interacción y efectos como animaciones podremos aprender JavaScript, y una vez que tengamos unos conceptos básicos de cómo funciona este claros, probablemente nos pasaríamos a librerías que con funciones de JavaScript listas para usar como JQuery para agilizar el trabajo, pero hay más alternativas.
  • Backend: aquí necesitamos un lenguaje de programación que genere páginas de forma dinámica. Pensad el inmenso trabajo que sería tener que hacer una página individual para cada enlace que se pulsa. Estos lenguajes del lado del servidor buscarán en una base de datos la información que buscamos y la mostrarán en la interfaz. Un ejemplo para el lenguaje podría ser PHP, aunque Python (usando Django) o Ruby (usando Ruby on Rails) entre otros, también son otras opciones válidas. Para la base de datos también tenemos muchas opciones MySQLSQlite o MongoDB son algunas que se me ocurren.

Para escritorio

Por cada sistema operativo pueden existir diferentes lenguajes específicos que solo servirán para dicha plataforma. Sin embargo, sería sabio pensar en desarrollar con lenguajes multiplataforma, es decir, hacer programas que se podrán utilizar en distintos sistemas. Hay una gran variedad en este aspecto, pero aquí mi opción personal para alguien que se inicia en este mundo sería el lenguaje de programación Python, principalmente por su enorme versatilidad y lo fácil que es de aprender. Podemos hacer aplicaciones que se usen en unaterminal o con interfaz gráfica si lo combinamos con GTK+ o Qt entre otros. También existen distintas opciones para utilizar aplicaciones web como programas de escritorio.
Usar lenguajes multiplataforma nos permitirá** crear versiones de nuestro programa para una mayor variedad de plataformas** diferentes. Si aún así queremos que sea específico para la plataforma, os dejo un enlace paradesarrollar en Windows y otro para desarrollar en Mac OS X. Para Linux no se me ocurre un lenguaje específico (¿existe?), así que os dejo un enlace paracrear aplicaciones con GTK+, que servirá para los tres anteriores.

Para móvil

De la misma forma que para el escritorio, aquí también existen lenguajes específicos. También podemos usar HTML para hacer aplicaciones para móvil pero de momento al menos, la experiencia no es tan fluida como podría ser una aplicación nativa.
Hace poco descubrí Kivy, que sirve para hacer aplicaciones multitouch multiplataforma, incluso para el escritorio. Tiene buena pinta, no le perdáis la pista.

Para las ciencias

Para ciencias el lenguaje estrella yo diría que es Pyhon. La comunidad ha creado tantas librerías que se puede interactuar desde este con webs sobre bioinformática, astronomía, meteorología... etc. De hecho, incluso se pueden llamar a otros lenguajes desde este. De esa forma, podríamos utilizar el lenguaje de programación para estadística R dentro de Python y usar las herramientas citadas anteriormente como Qt para crear una aplicación gráfica que nos haga estadísticas. Un ejemplo de esto último es lo que han hecho los desarrolladores de open-meta. Cuando se necesita un lenguaje de programación más potente se suele recurrir a C++.

Videojuegos

En lugar de ponernos a programar todo desde el principio, podemos echarles un vistazo a los diferentes motores de juego que existen, los cuales nos permitirán desarrollar juegos sin recurrir a la programación en un principio. Una vez que aprendamos a usar el motor, estaría bien echarle un vistazo a los lenguajes de programación que soporta y crear así nuestras propias implementaciones. Unreal Engine y Unity son dos ejemplos de motores multiplataforma. En cuanto a lenguajes de programación, veremos sobretodoC++.

Dónde aprender a programar

La primera parada que recomiendo hacer es en Codecademy, una página que ofrece cursos totalmente gratuitos. La interfaz es maravilloso y muy cómoda de usar. Tiene cursos sobre crear páginas y aplicaciones web, APIs, PHP, Python. Ruby, JavaScript, JQuery y cursos creados por la comunidad.
Otros enlaces de interés
He mencionado distintas opciones que podemos usar según el objetivo que se busca. ¿Me ayudáis a completar la lista?

Comentarios

Entradas más populares de este blog

Sailfish OS certificado como alternativa a Android en Rusia

Los finlandeses de  Jolla  están de enhorabuena, especialmente si recordamos que no hace mucho estaban casi en la bancarrota, tras embarcarse en una aventura algo arriesgada para la fabricación de tablets. Ahora la vida les sonríe: las autoridades rusas  han certificado  el  sistema operativo Sailfish OS  para su uso por parte del gobierno y corporaciones del país. Se trata de un sistema con base open source ( Linux ), pero con una  capa privativa  presente en algunos de sus componentes como puede ser la interfaz o determinadas aplicaciones. La gran ventaja de Sailfish respecto a otros competidores en el mercado del smartphone –como el ya desaparecido  Firefox OS  o  Ubuntu –, es su  compatibilidad con las aplicaciones de Android. Las intenciones de Rusia es  reducir el uso de sistemas operativos extranjeros  (Android, iOS) en móviles del 95% actual  a la mitad en 2025 . Disminuir la  dependen...

Iproute2 la Sustitución completa de ifconfig

Adios net-tools, Bienvenido iproute2 Un poco de historia El aprender del pasado, nos prepara para el futuro La mayoría de las distribuciones de Linux, y la mayoría de los UNIX, usan todavía algunas de ellas las venerables órdenes arp, ifconfig y route. Aunque funcionan, muestran cierto comportamiento inesperado a partir de Linux 2.2. Por ejemplo, los túneles GRE son parte integral del enrutado hoy día, pero precisan herramientas completamente diferentes. Los núcleos Linux 2.2 y superiores incluyen un subsistema de red completamente rediseñado. Este nuevo código de red proporciona a Linux un rendimiento y características con poca competencia en el panorama general de los SO. En realidad, el nuevo código de enrutado, filtrado y clasificación tiene más posibilidades que el que proporcionan muchos enrutadores y cortafuegos dedicados y productos de control de trafico. Actualmente las principales distribuciones de Linux, han sustituido la instalación predeterminada de estas aplicacio...

3 tácticas para gestionar el tiempo que te ayudarán a aumentar tu productividad

Uno de los grandes problemas que tenemos y del que no siempre somos conscientes los profesionales de marketing online es que  necesitamos pautas para gestionar nuestro tiempo y ser más eficientes . De nada sirve ocupar buena parte de tu jornada leyendo las últimas novedades y actualizaciones si no te queda tiempo para ponerlas en práctica. Trabajar con información no es fácil Hoy me gustaría explicarte  3 reglas de oro  que te ayudarán a ser mucho más productivo en todo lo que hagas y a  eliminar bloqueos mentales , que muchas veces es el  verdadero problema encubierto de la gestión del tiempo . # 1. Simplifica Simplificar es una cuestión de prioridades . ¿Cuántas horas pasas delante del ordenador atendiendo las tareas menos importantes mientras las importantes las retrasas un día tras otro hasta que dejan de serlo? Por ejemplo, te conectas a Facebook o Twitter en cuanto recibes una notificación, respondes al email que acaba de llegar, buscas conten...