Consejos para empezar a programar

coding1

En la fantástica LifeHacker nos ofrecen algunos consejos para aprender a construir nuestros propios programas y sobre todo cómo empezar a programar.

Lo primero de todo un consejo, no te atasques al elegir un lenguaje de programación. Es un error común para principiantes pensar y complicarse en no saber qué lenguaje utilizar. La respuesta es simple, NO IMPORTA DEMASIADO. Comprender la estructura de los datos, control de flujo y patrones de diseño es mucho más importante. Todos los lenguajes de programación tienen algunos de estos  componentes que utilizarás en otros. Resumiendo, cambiar o usar otro lenguaje de programación se reduce a cambiar de sintáxis. Si tienes clara la metodología de programación, la elección de los lenguajes en secundaria. De todas formas, yo personalmente recomiendo siempre el lenguaje C.

¿Qué puedo programar y en qué plataforma/entorno?

Scripting de Escritorio. Es la forma más fácil para programar en entornos Windows y Mac, ya que realmente estas creando macros para automatizar y repetir tareas en dichas plataformas. No es programar realmente, pero te familiarizas con muchos  conceptos básicos  y además verás resultados espectaculares rápidamente. Puedes probar AutoHotKey para Windows (Automator para Mac), el cual es un lenguaje script capaz de hacer pequeños programas automáticos. Aquí tienes un tutorial por si te animas.

Desarrollo Web.  Programar aplicaciones web tiene alguna ventajas, puedes poner tu código en un navegador y ver directamente los resultados que además son compatibles en todas las plataformas que usen ese mismo navegador. Programar aplicaciones web es todo un mundo, estos son algunos lenguajes :

  • HTML y CSS: lo primero para saber construir cualquier web es aprender HTML y CSS. No son realmente lenguajes de programación, básicamente es la estructura de la página y el estilo de mostrar la información. Digamos que es el esqueleto principal para luego perfeccionar tu página web. Aquí tienes algunos tutoriales de HTML y otros de CSS.
  • JavaScript: una vez que ya sepas algo de HTML y CSS, la cosa se vuelve divertida ya que es hora de aprender JavaScript, que es el lenguaje de programación para los navegadores (el que hace las páginas web bonitas). Es la base para otros componentes y scripts como Greasemonkey y Ajax. Aquí un tutorial.
  • Scripting Server-Side (tareas administrativas y dinámicas): ya tenemos la página web, ahora tenemos que poner un poco de acción dinámica detrás. Para esto usaremos PHP, Python, Perl o Ruby. Por ejemplo si queremos hacer una página web con un formulario de contacto que envía un email a la persona que lo rellena, es necesario un lenguaje script dinámico. PHP es ideal para comunicarse con bases de datos de tu página web, por ejemplo. En Webmonkey tienes muchos tutoriales de varios lenguajes de programación web (mira los de PHP para principiantes). Luego no estaría mal empezar a estudiar PHP y MySQL (tutorial aquí).  Son muchos, te toca elegir el que más te guste.
  • Web Frameworks ó estructuras de soporte Web. Para evitar el trabajo repetitivo de escribir el mismo código para construir páginas web dinámicas, se han inventado algunas estructuras de soporte o frameworks. La más conocida hoy día es Ruby on Rails, es un lenguaje de programación que ofrece estructuras especifícas para páginas web para llevar a cabo tareas comúnes de forma correcta. Mira este tutorial de cómo contruir un sitio web desde cero sin experiencia. Otros frameworks son Django, JQuery y CakePHP.
  • Web Api. una API es una forma práctica de hacer que diferentes piezas de software hablen entre ellas. Por ejemplo, si quieres poner un mapa dinámico en un sitio web, puedes usar la API de Google que hace mucho más fácil incluir un mapa en una página con JavaScript. Casi cualquier servicio moderno que existen en la Red tiene una API, como Twitter, Facebook, Google Docs, Google Maps, etc ... Interacturar con estas APIs enriquece muchísimo el contenido de tu página web. Aquí tutorial para las APIs de Google.

Scripting de línea de comandos. Es de lo más útil que puedes aprender dentro de la programación. No es bonito, el resultado no es espectacular pero puedes crear tareas administrativas automáticas que de otra forma serían muy pesadas de realizar. Algunos de estos lenguajes sería Perl, Python y PHP.  Estos lenguajes son especialmente potentes bajo entornos Linux/Unix (aunque puedes usarlos también en entornos Windows), aunque el mejor de todos ellos es sin duda es el mítico bash (junto al C, son ya de mi familia), con el que puedes hacer lo que quieras, copias de seguridad o incluso crear aplicaciones con interacción del usuario. Aquí un libro sobre Python y un tutorial de bash.

Add-ons (complemento o extensiones). Todas las aplicaciones web y navegadores puede ampliarse usando add-ons. El desarrollo de estos add-on es también una buena forma de ganar popularidad, ya que si el add-on es efectivo y funciona bien, se expande como la pólvora. Un ejemplo sería FireFox o Wordpress. Usando JavaScript, HTML y CSS podrás hacer casi seguro cualquier add-on para cualquier aplicación que los permita (aquí uno para aprender a programar add-on en FireFox) y este otro para WordPress.  Este otro tutorial es para construir un Robot de Google Wave usando Python (en castellano).

Desarrollo Web para el Escritorio. Aprendiendo desarrollo web en primer lugar  es una buena forma para luego aplicar estos conocimientos en otras aplicaciones de escritorio ya que los lenguajes de programación son prácticamente los mismos. Por ejemplo Adobe AIR es una plataforma en tiempo real que te permite construir tu aplicación y luego ejecutarla en cualquier escritorio que tenga ejecutándose también AIR. Aquí 10 aplicaciones para instalar en Adobe AIR. Programar gadgets/widgets  para Vista y Google Sidebar también entrarían dentro de esta categoría. Aprender Flash tampoco estaría mal para este tipo de aplicaciones.

Aplicaciones para móviles. Todos conocemos la popularidad de iPhone y Android, y lo fácil que puede ser si programas una buena aplicación, sacarte unas pelas al subirla al Android Market o iTunes. En cambio no fácil de aprender para el programador novato, ya que requiere cierto manejo previo con lenguajes de programación como Java o Objetive C. Lo mejor para aprender este tipo de aplicaciones es ver otras y examinar el código (esta aplicación es un ejemplo para desarrollo en  iPhone). Aquí un video para programar un típico "Hello Android".

Y por último, paciencia, estudiar y mucho ensayo/error.

Artículo original de Gina Trapani, LifeHacker.