InicioCiencia Educacion¿Qué lenguaje de programación debería aprender para empezar?

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

Ciencia Educacion11/23/2015

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

Programacion


Esta es probablemente una de las preguntas más populares entre las personas que quieren adentrarse en el mundo de la programación. Puedes preguntar cuál es el mejor lenguaje para empezar a diez programadores, y te darán diez respuestas diferentes. A continuación, os ofrecemos algunos consejos y sugerencias para intentar ayudaros a decidir.

Hay miles de opciones, y el mejor lenguaje de programación para empezar no solo depende de lo intuitivo, o no, que sea, también depende del tipo de proyectos que quieras hacer, por qué quieres programar, o si quieres dedicarte a ello profesionalmente. Ahí va una pequeña guía.


¿Por qué quieres aprender a programar?
lenguajes

Es probable que, dependiendo de lo que quieras programar o para qué, la elección ya esté tomada aunque tú todavía no lo sepas. Para programar páginas web, por ejemplo, deberías aprender HTML, CSS, JavaScript y quizás PHP para la interactividad. Si tu objetivo es solo desarrollar aplicaciones móviles, lo que deberías aprender, para empezar, sería Objective-C para iOS o Java para Android.

Si lo que quieres es ir más allá de un proyecto específico, o quieres aprender varios lenguajes, lo mejor para empezar es aprender fundamentos de programación, y aprender a 'pensar como un programador'. En este sentido hasta las aplicaciones y métodos para enseñar a programar a los niños pueden serte útiles.


Los lenguajes de programación más recomendados para principiantes
programar

aprendiz


La mayor parte de lenguajes de programación populares como C, Java, C#, Perl, Ruby, o Python, sirven para hacer más o menos las mismas cosas. Java, por ejemplo, es un sistema multiplataforma utilizado para aplicaciones web y applets. Ruby también sirve para hacer grandes aplicaciones web, y las de Python corren igualmente en Linux o Windows.

Como indica SOA World, el hecho de que los lenguajes estén desarrollados unos sobre otros hace que muchas veces la sintaxis entre ellos sea idéntica o muy parecida, así que aprender uno de ellos hará que te sea más fácil aprender el siguiente. Por ejemplo, imprimir la expresión 'Hello World' en Java y C# es similar, como también lo es entre Perl y Python.

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


Estos lenguajes, sin embargo, se diferencian en lo fácil o difícil que es comenzar a operar con ellos. Mirando el ejemplo anterior, hay lenguajes que necesitan más comillas, otros menos. En general, SOA World recomienda empezar con lenguajes sintácticamente más simples, o sea, que tengan menos reglas sintácticas o lógicas. Así podremos ir de menos a más. A continuación os ofrecemos un breve resumen de los lenguajes más comunes.


C: Te enseña a programar de manera eficiente
Programacion

lenguajes


C es uno de los lenguajes de programación más usados y esta popularidad tiene sus razones. En palabras del programador Joel Spolsky: "C es el equivalente a aprender anatomía básica en medicina"". C es un lenguaje que funciona a nivel de máquina, así que sirve para entender cómo interacciona un programa con la capa de hardware.

Con C se aprende a hacer cosas como depurar código, o a gestionar la memoria. También ofrece una visión panorámica de cómo funciona un ordenador que no ofrecen otros lenguajes. En ese sentido C es el 'abuelo' de otros lenguajes de alto nivel como Java, C# o JavaScript.

Dicho esto, programar en C también es más rígido y su curva de aprendizaje no es muy fácil. Si no tienes pensado trabajar en programas que interactúan con la capa de hardware (utilizando, por ejemplo, unidades de disco, o extensiones del sistema operativo) C quizá prolongue de manera innecesaria tu tiempo de aprendizaje.

Personalmente, me alegra haber aprendido algo de C, pero no creo que sea un lenguaje especialmente amistoso con el principiante. Ayuda a convertirte en un programador minucioso y disciplinado, pero su rigidez y el largo tiempo que pasará antes de que puedas crear algo realmente útil puede acabar frustrándote.


Java: Uno de los lenguajes más útiles de aprender
programar

aprendiz


Java es el segundo lenguaje de programación más popular, y es el protagonista del célebre curso gratuito Introducción a la programación de la Universidad de Stanford. Java es muy útil para aprender los principios de la programación orientada a objetos que se usa en otros lenguajes modernos como C++, Perl, Python, o PHP. Una vez que has aprendido Java, es más fácil aprender estos otros lenguajes.

Java tiene la ventaja de que es un lenguaje muy maduro y con una larga trayectoria. Hay infinidad de plantillas y tutoriales, y se usa en una gran cantidad de entornos, incluido el desarrollo de aplicaciones en Android, así que es un lenguaje muy práctico. Con Java no aprenderás control de dispositivo a nivel de hardware como con C, pero aprenderás a acceder y gestionar las partes más importantes como el sistema de archivos, los gráficos o el sonido.


Python: Fácil y divertido de aprender
¿Qué lenguaje de programación debería aprender para empezar?

Programacion


Mucha gente recomienda Python para empezar por sus amplias capacidades y su simplicidad. Su código es fácil de leer y también ayuda a desarrollar un estilo de programación limpio sin necesidad de ser muy estricto con la sintaxis (cosas como olvidar un paréntesis al final de una línea). Patrick Jordan, de Ariel Computing , compara el tiempo que se tarda en escribir una instrucción simple en distintos lenguajes (Basic, C, J, Java y Python) y concluye que:

Aunque los demás lenguajes no deben ser descuidados, Python lleva menos tiempo, menos líneas de código, y menos conceptos que aprender para alcanzar un determinado objetivo. Programar en Python es divertido, y eso genera interés y confianza en el alumno, lo que siempre es bueno para animarle a continuar con su formación en otros lenguajes más austeros.

En la SOA consideran a Python como un auténtico imprescindible para principiantes, sobre todo para los que ya estén un poco familiarizados con entornos Linux. Python está, además, creciendo debido a su uso en sites tan populares como Pinterest o Instagram.


Javascript: Para dar el salto a la programación web
lenguajes

programar


A pesar de su nombre, Javascript no tiene mucha relación con Java. Su puesta en marcha es relativamente sencilla ya que prácticamente está integrado ya en todos los navegadores. O'Reilly Media recomienda empezar con JavaScript porque es bastante flexible en sintaxis, puedes ver inmediatamente los resultados de lo que has hecho, y no es necesario aprender muchas herramientas. En su propia escuela nocturna O'Really utiliza JavaScript para enseñar lo más básico como las variables o las funciones. Si quieres programar elementos interactivos para una página web, JavaScript es un imprescindible.

Elegir tu camino
aprendiz

Una última consideración es tener en cuenta si quieres programar solo por Hobby, o vas a convertir esa actividad en algo profesional. En Dev/Code/Hack han separado los lenguajes y conocimientos más necesarios según a qué parte de la programación te quieras dedicar.

Programador de Servidores o Back-end: Python, Rubyy, PHP, Java o .Net. Conocimientos de bases de datos y posiblemente de administración de sistemas.
Programador de clientes o Front-end: HTML, CSS, Javascript. Posiblemente sean necesarios conocimientos de diseño.
Programador móvil: Objective C o Java (para Android). HTTML / CSS para sitios web móviles. Posibles conocimientos sobre servidores.
Programador 3D o de videojuegos : C/C++, OpenGL, Animación. Es recomendable tener buenas dosis de conocimientos de diseño y artísticos.
Programador de alto rendimiento: C/ C++, Java, conocimientos en matemáticas y análisis cuantitativo.
Al final, no hay una única vía para iniciarse en el arte de la programación. Lo más importante es aprender los fundamentos, y para ello lo mejor es devanarse los sesos intentando realizar un proyecto concreto o una aplicación que queramos construir. Tener un objetivo concreto ayuda mucho. Como dicen en el blog Programming is terrible :

El primer lenguaje de programación que aprendas será el más duro. Elegir un proyecto pequeño, sencillo y divertido hará de este proceso algo menos duro y más una pequeña aventura. Realmente no importa mucho desde donde empieces siempre y cuando no lo abandones. Sigue leyendo código, sigue escribiendo código, no te olvides de probar lo que hace. Una vez te encuentres cómodo en un lenguaje, avanzar en el siguiente será más sencillo y te aportará nuevas habilidades.


Una vez te hayas decidido, la web Bento es un buen punto en el que localizar fácilmente nuevos recursos para continuar programando.

Personalmente comence a programar con C++ y la verdad fue muy util, pasar a otro lenguaje es muy facil luego de haber dominado c++


Pero si tienes alguna idea de algun proyecto en especifico...
¿Qué lenguaje de programación debería aprender para empezar?

Quiero aprender programar videojuegos web como los de Facebook.

Lenguaje recomendado: Javascript.

El futuro de los videojuegos web tipo Farmville es sin duda alguna Javascript. Sin embargo, Flash sigue siendo el principal lenguaje para desarrollar este tipo de videojuegos . La gran mayoría de los juegos en Facebook utilizan Flash, pero poco a poco están siendo desplazados por juegos escritos en Javascript.

ActionScript (el lenguaje de programación de Flash) necesita una actualización urgente, ya que la versión 3 se está quedando corta con respecto a las iteraciones veloces de Javascript.

El principal problema de Flash es que Adobe ya no dará soporte a dispositivos móviles y recientemente anunció que no desarrollará ActionScript 4, por lo que aprender Flash tiene menos sentido día con día. Es una tecnología en decadencia y solamente deberías aprenderlo si necesitas mantener proyectos legados.

Javascript por el otro lado ha ganado un gran impulso en el area de los videojuegos . El dúo dinámico de HTML5 y Javascript cada día toma mas fuerza, y con la rápida aceptación de la plataforma Node.js las casas desarrolladoras de videojuegos web, están empezando a desarrollar sus videojuegos en Javascript.

Dado que el lenguaje tiene una penetración de mercado muy alta, virtualmente todos los dispositivos que se conectan al internet pueden correr javascript, por lo que tiene mucho sentido desarrollar videojuegos en Javascript. Además, el lenguaje en sí mismo se presta para la programación de videojuegos .

Verás, los videojuegos son programas muy complejos. Generalmente un programa corre secuencialmente, es decir, una instrucción después de la otra. Sin embargo, los videojuegos raramente son secuenciales, y los procesos que deben ejecutarse dependen de eventos. Por ejemplo:

El jugador cambió de pantalla? Entonces dibuja una nueva escena por completo.

El jugador entro en modo de batalla? Entonces carga un nuevo motor de juegos.

El jugador murió durante la batalla? Entonces muestra la pantalla de Game Over.

De primer instancia, el ejemplo anterior suena sencillo, pero ponte a pensar en los miles de eventos que están sucediendo al mismo tiempo, y cada evento determina las acciones del videojuego, entonces las cosas se empiezan a poner feas.

Es precisamente en éste tipo de situaciones donde Javascript saca todo su potencial, ya que el paradigma de Javascript es el de programación dirigida por eventos (Event-driven programming).

En Javascript, dos bloques de código escritos uno después del otro, puede que se ejecuten en diferentes tiempos, o no se ejecuten en lo absoluto. Todo depende de los eventos que el navegador produzca, y que el programa de Javascript sepa como responder ante esos eventos. Este paradigma es muy apropiado para el desarrollo de videojuegos , ya que en lugar de tener un sin fin de "if...else" anidados, simplemente se escriben bloques de código que deban ejecutarse cuando un evento arbitrario se produzca. Los frameworks en javascript para esta labor están alcanzando una madurez impresionante. Incluso existen simulaciones del primero juego de Doom escritas totalmente en Javascript.

Si la programación de videojuegos para web es lo que te llama la atención, entonces enfoca tu esfuerzo en Javascript.

Quiero aprender a programar videojuegos para computadora/consolas.

Lenguajes recomendado: C#

C# es un buen lenguaje para que te inicies en la programación de videojuegos , existen librerías y frameworks muy maduros que te facilitarán el aprendizaje demasiado.

No te dejes llevar por quienes te recomiendan que aprendas C/C++

A menos de que te especialices en el desarrollo de motores de gráficos o motores de inteligencia artificial, aprender C/C++ solo será pérdida tiempo para adentrarte al mundo de la programación de videojuegos .

La realidad es que para conseguir un trabajo en el mundo de los videojuegos tienes que tener experiencia con lenguajes de alto nivel y tienes que tener un videojuego terminado.

Hace años, Microsoft liberó el framework XNA para desarrollo de videojuegos en Windows y Xbox. Mis primeros videojuegos complejos los escribí en C# y XNA, y fue un placer trabajar con ambas tecnologías. Años atrás había intentado desarrollar un videojuego en C++ con Allegro y posteriormente con DirectX. En éste último, tuve que invertir meses para aprender como funcionaba la API de Windows, ya que DirectX depende mucho de la misma. No pude lograr nada material con ninguna tecnología.

A diferencia de C o C++, C# es un lenguaje mucho más sencillo de aprender, y el Visual Studio es un IDE bastante avanzado y potente. La cantidad de recursos online y en español de C# es inmesurable, por lo que no faltará alguien que te saque de dudas cuando ocurra algún problema.

Quiero aprender a programar aplicaciones móviles

Lenguajes recomendados: Java, C# y Objective-C/Swift.

Java es el lenguaje de programación predilecto para aplicaciones Android. A pesar de que existe soporte para Python, la mayoría de los trabajos que contratan para desarrollo en Android asumen que sabes programar en Java.

La razón de porque Java se prefiere sobre Python para desarrollar aplicaciones Android es porque Android sufre un problema muy grande que se conoce como Fragmentación de dispositivos. Eso quiere decir que Android tiene un ecosistema muy grande de versiones en producción. Docenas de marcas de celulares y tables, cientos de diferentes resoluciones, diferente hardware, diferentes dispositivos. Por lo tanto utilizar un lenguaje como Java tiene sentido porque todo lo que necesitas para Java es la maquina virtual de Java y listo, no tienes que preocuparte del resto.

Si vas a desarrollar apps de Windows, entonces tienes que aprender C#. A decir verdad, en éstos días si quieres desarrollar cualquier cosa que toque algún servicio de Microsoft, lo más seguro es que tengas que aprender C#. Es el lenguaje estándar de Microsoft.

Si quieres aprender a desarrollar apps para iOS (iPhone/iPad), tienes que aprender Objective-C o Swift. Objective-C es C con clases, cualquier cosa que compile en C, compila en Objective-C.

Sin embargo, Apple recientemente introdujo Swift. El nuevo lenguaje de programación para desarrollar en iOS. La sintaxis es mucho más sencilla que la de Objective-C. Swift es un lenguaje más moderno, a diferencia de Objective-C que solamente es un superset de C.

No obstante, la gran mayoría de las librerías de Apple aun están escritas en Objective-C, y Apple le seguirá dando el soporte al lenguaje. Pero si eres nuevo en el mundo de las apps, y estás decidido en desarrollar para Apple, primero aprende Swift y después preocúpate de Objective-C. Swift es el futuro.

Quiero aprender a programar aplicaciones web.

Lenguajes recomendados: PHP, Ruby o Javascript.

Hay muchos detractores de PHP, pero la verdad es que PHP es un lenguaje muy maduro. Y a partir de la version 5.3, PHP es un lenguaje bastante bueno.

No se puede ignorar el hecho de que existen 244 millones de sitios en el Internet que utilizan PHP. Y sabes que significa eso? Que no falta trabajo como programador en PHP. El stack de PHP ha sido estudiado y revisado hasta el cansancio. Ha sido optimizado hasta el límite y el desarrollo al core de PHP está mas activo que nunca.

PHP tiene frameworks muy maduros y robustos como Zend o Symfony que hacen del desarrollo en PHP un verdadero placer. PHP por fin tiene un administrador de paquetes que vale la pena: Composer y finalmente la comunidad ha creado una convención para escribir código llamada PSR.

Si quieres dedicarte profesionalmente al ambiente web, TIENES que aprender PHP.

Por otro lado, en el ambiente web tenemos dos lenguajes que han ido agarrando mercado. Ruby y Javascript.

Ruby se popularizó mucho por basecamp, ya que la empresa 37signals desarrolló el framework "Rails", que hizo que el desarrollo web en Ruby fuera extremadamente fácil. Posteriormente, la primera iteración de Twitter fue creada en Ruby, y fue ahí donde Ruby tomó mucha popularidad.

A decir verdad, Ruby es un lenguaje muy fácil de aprender, en mi opinión es el lenguaje de programación más fácil de aprender. Esta muy bien diseñado, y es muy potente. Día con día hay mas posiciones que requieren programadores con experiencia en Ruby, con o sin Rails.

Con respecto a Javascript, si te dedicas al desarrollo web te vas a encontrar pedazos de Javascript en el front-end y en el back-end.
Tradicionalmente Javascript había sido considerado un lenguaje que solamente se ejecutaba en el navegador de Internet, es decir un lenguaje del lado del cliente. Sin embargo con la creación de la plataforma Node.js, se introdujo la posibilidad de poder programar del lado del servidor con Javascript.

Conforme Node.js fue madurando, fue ganando aceptación al nivel Enterprise, que es donde realmente se define que lenguajes se quedan y cuales se van. Paypal recientemente anunció que toda su plataforma será re-escrita en Node.js lo cual dice mucho acerca de la madurez y seriedad de Node.js

Al igual que Ruby, la oferta y demanda de programadores que sepan Node.js incrementa día con día. Ésta plataforma se ha convertido en la favorita de las startups aunque realmente no sepan como utilizarla correctamente. En mi experiencia desarrollando aplicaciones Node.js que sirven cientos de miles de requests por segundo, te puedo decir que es un placer trabajar con Node.js, pero dista mucho de ser perfecto.

En otras plataformas diferentes a Node.js, por cada interacción que el lenguaje de programación tiene con el servidor, el servidor se bloquea por cada request que recibe. En Node.js esto no sucede.

Ademas de que incorpora el paradigma de programación dirigida por eventos. Eso quiere decir que tus programas no corren secuencialmente (osea una instrucción después de otra), sino que hay ocasiones en las que bloques de tu programas van a correr antes que otros, o al mismo tiempo, o realmente no puedes predecir cuando van a ser ejecutados, o si en algún momento serán ejecutados.

Sin embargo es muy común en Node.js que tengas condiciones de carrera, es decir, que un bloque de código que depende de otro bloque de código, se ejecute antes de que el primer bloque de código termine, produciendo una cantidad infinita de errores. Para evitar ese tipo de problemas, los ingenieros de Node.js recomiendan utilizar funciones llamadas callbacks, o utilizar Promesas, pero ambos conceptos acarrean otro sin fin de problemas por si solos. Hay mucha gente que evangeliza el mundo ante lo maravilloso que es Node.js (por ejemplo, los tipos de mejorando.la), y si, es una excelente herramienta, si la sabes utilizar.

Quiero aprender a "hackear".

Lenguajes recomendados: Ninguno. Aprende ciencias de la computación primero.

Uggh. Es precisamente en ésta area donde leo las peores recomendaciones! Todos los programadores tienen una opinión y generalmente es equivocada.

Es precisamente aquí donde escuchas inmediatamente los lenguajes como C/C++ o incluso Ensamblador.

Para empezar, quiero aclarar que "Ensamblador" no es un lenguaje de programación, es la manera coloquial de referirse a un conjunto de lenguajes de programación de bajo nivel.

La ensamblación es un proceso que consiste en traducir instrucciones en codigos operacionales para un determinado procesador. Asi que a cualquier tarado que te diga "tienes que aprender Ensamblador" tienes mi permiso de llamarlo ignorante.

Dato curioso: Pregúntale a alguien que dice saber Ensamblador para que procesador/arquitectura programa y observa como cambia su semblante de inmediato.

De regreso a la pregunta, para ser "hacker" necesitas saber mucho más que programar. A decir verdad la programación es de las últimas cosas que un "hacker" necesita saber. Para ser hacker, necesitas tener un fundamento teórico muy sólido ya que los "hackers" generalmente no escriben programas, sino "abusan" programas.

Antes de llegar a la programación, para ser "hacker" necesitas un conocimiento muy sólido de como funciona una computadora a un nivel muchísimo más bajo que el del lenguaje de programación. Primero enfócate en aprender como funciona la memoria y el procesador, aprende los diferentes tipos de arquitecturas, que set de instrucciones utilizan, familiarizate con los diferentes ciclos de ejecución. Aprende como funciona un sistema operativo, no solo Linux o Unix, sino cualquier sistema operativo. Hay llamados "hackers" que no entienden la diferencia entre SO, kernel y shell.

A un nivel de red, tienes que saber que algoritmos utilizan los ruteadores y los switches, necesitas aprenderte las especificaciones de los diferentes protocolos de red, y no solamente memorizarlas, sino entenderlas. Necesitas aprenderte las capas del modelo OSI, y no solamente aprenderte los nombres, sino todo el stack y como va incrementando el payload de un paquete conforma atraviesa el stack.

Todo eso es teoría, y observación. Naturalmente necesitarás aprender a utilizar algunas herramientas como debuggers, profilers, sniffers, etc...

Aprender a ser "hacker" no es algo que lograrás en 1 o 2 años , es algo que te tomará, si bien te va, 5 años en aprender bien. Los universitarios tienen una frase muy común que dicen: "La teoría no es nada sin la práctica."

Están equivocados.

Necesitas entender la teoría para ejecutar la práctica eficientemente. Esos que dicen que la teoría no esnada sin la práctica, son los que terminan siguiendo malas prácticas de programación e ingresando vulnerabilidades a sus programas que comprometen la seguridad de sus organizaciones.

Para ser "hacker" realmente no necesitas saber programar, para ser hacker necesitas ser un cientifico de la computación.

Quiero aprender a programar robots.

Lenguajes recomendados: C/C++ o Python.

Esta área es complicada ya que puedes utilizar un sin fin de lenguajes. Sin embargo, está de moda que te inicies en el mundo de la robótica con plataformas como Raspberry Pi o Arduino. En mi experiencia solamente he jugado un poco con Raspberry Pi y el lenguaje predilecto es Python.

Dado que la audiencia de Raspberry Pi es primordialmente entusiastas de la robótica, era importante elegir un lenguaje de programación sencillo de aprender. Como Python es el lenguaje predilecto de la comunidad científica, y la robótica es un hobby de muchos científicos la elección fue bastante obvia.

Para Arduino, lo único que sé es que el lenguaje predilecto es C y existe soporte para C++. Supongo que si quieres programar en Arduino, es necesario que aprendas alguno de esos lenguajes.

Soy biólogo/químico/físico/zapatero y necesito aprender a programar.

Lenguaje recomendado: Python.

Python es definitivamente donde necesitas empezar. No porque sea intrínsecamente mejor que los demás sino porque la comunidad científica que se ha construido alrededor de éste lenguaje es bastante grande. La razón es sencilla, Python provee un lenguaje de programación interpretado, que abstrae muchas de las complejidades de lenguajes de nivel mas bajo (como C o C++) y también provee una plataforma que puede integrarse fácilmente con otros programas, escritos en otros lenguajes de programación.

Por lo tanto Python soluciona 2 problemas enormes que la comunidad científica tiene (tenía): la necesidad de tener un lenguaje de programación que permitiera manipular y controlar programas existentes, así como un lenguaje que funcionara como "pegamento" para combinar diferentes sistemas.

La capacidad de python de incorporar subrutinas de C en el lenguaje, lo hace un lenguaje único y maravillos. Ademas Python tiene excelentes librerías para el análisis científico y matemático:

NumPy. Una librería que extiende Python para dar soporte a matrices y arrays de dimensiones grandes, así como métodos que permiten hacer operaciones sobre esas estructuras de datos.
BioPython. Librería con algoritmos específicos de la bio computación.
SAGE. Imagina MATLAB o Octave, en Python.
Así que si lo tuyo es la ciencia y la investigación, sin duda te recomiendo ampliamente que inicies con Python.

Programacion

¡Visita mis otros posts!














programar

Dejame algunos puntos amigo

aprendiz

¿Qué lenguaje de programación debería aprender para empezar?
Datos archivados del Taringa! original
727puntos
9,018visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

a
anthony952🇦🇷
Usuario
Puntos0
Posts509
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.