jueves, 22 de mayo de 2014

Codeacademy, la web gratuita para aprender a programar, ya en español + ¿Con qué lenguaje de programación empezar?


Codeacademy, la web gratuita para aprender a programar, ya en español

Codeacademy, la web gratuita para aprender a programar, ya en español
Existen casi infinitos recursos online para aprender a programar, pero no tantos bien organizados, en español y gratis. 
A partir de hoy mismo, la página Codeacademy es uno de ellos.
 Junto a Code SchoolLynda.com o Stack OverflowCodeacademy es una de las mejores webs para iniciarse en programación. Y ahora buena parte de su contenido está en español.
La compañía ha anunciado hoy la iniciativa en su blog, explicando que, además de en español, los contenidos se han traducido ahora a francés y portugués. 
Codeacademy, que ya cuenta con más de 24 millones de usuarios (de los cuales el 70% está fuera de EE.UU., donde tiene la sede la organización), está firmando también acuerdos con diferentes ciudades y gobiernos para llevar la programación a las escuelas. 
El primero de estos acuerdos lo han firmado con las autoridades de Buenos Aires.
Puedes darte de alta y acceder a los contenidos de Codeacademy aquí. Pero si antes necesitas un poco de orientación sobre cuál es la mejor forma de empezar a programar, no te pierdas esto.

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

¿Qué lenguaje de programación debería aprender para empezar?SEXPANDIR
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?

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.
Por poner un ejemplo, el primer curso formal de programación al que asistí más allá de Basic fue Harvard CS50. Se puede acceder a este curso de forma gratuita desde proyectos interactivos como Codeacademy
Este principio, sin embargo, nos sigue dejando con la duda de qué lenguaje es el mejor para empezar. Veamos las recomendaciones contrastadas con los lenguajes más populares.

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

¿Qué lenguaje de programación debería aprender para empezar?SEXPANDIR
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?SEXPANDIR
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

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

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, Pyython, 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

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

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

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.
Fotos: spaxiax y isak55 / Shutterstock

No hay comentarios:

Publicar un comentario