La respuesta a esta pregunta dependerá fundamentalmente de tu experiencia y de tus metas de aprendizaje.

  • ¿Eres un programador novato o sin experiencia o, por el contrario, tienes cierto nivel?
  • ¿Estás aprendiendo por hobby o tu objetivo es vivir de la programación en un periodo concreto?

Empecemos:

Mejor lenguaje de programación para novatos

Si eres un completo novato y quieres aprender tu primer lenguaje de programación, tu plan debe ser el siguiente:

Primero, tu objetivo no debe ser encontrar el mejor curso o la mejor guía, sino que debes intentar nutrirte de todas las fuentes posibles. En cada nuevo curso o libro encontrarás ciertas novedades y a la vez repetirás muchas cosas que harán más sencillo la retención de los contenidos.

No voy a mentirte, no es una tarea sencilla. El desarrollo web engloba muchos lenguajes diferentes. Si estás apunto de embarcarte en este mundillo, deberás hacerte a la idea que se requiere mucho tiempo y esfuerzo. No hagas demasiado caso de los cursos que prometen experiencias “divertidas” y “excitantes”. Tómatelo como probablemente será: duro y aburrido. Requiere trabajo duro y mucha (¡mucha!) práctica.

La mejor manera de empezar es mediante un curso bien estructurado. Si bien vas a nutrirte de diferentes fuentes, el primer curso ha de estar bien organizado. De lo contrario te perderías entre una maraña de lenguajes y metodologías diferentes.

Intentar aprender varios lenguajes de programación al mismo tiempo es un reto en sí mismo. No lo compliques más aún buscando sólo los temas que debes aprender o la secuencia correcta de aprendizaje.

Un beneficio adicional que te proporcionan los cursos es la posibilidad de comprobar tu progreso con evaluaciones continuas.

Si te defiendes en inglés puedes empezar con el maravilloso curso de Ron Percival.

Una vez superada la primera fase de aprendizaje podrás seguir aprendiendo por ti mismo de manera más autónoma. Pero por el momento es altamente recomendable aprovecharte de los beneficios de este tipo de cursos, que no son otros que:

  • Contenido estructurado en vídeos.
  • Documentación impresa de cada una de las lecciones.
  • Exámenes al término de cada capítulo.
  • Profesores que responderán las dudas que vayan surgiendo.
  • Certificación acreditativa a la finalización del curso.
  • Proyectos propios

En definitiva, los cursos recomendados te permitirán envolverte en un ambiente de estudio óptimo, permitiéndote adentrarte en el mundo de la programación acompañado. Algo muy recomendable a tenor de los abandonos recurrentes durante las primeras etapas de aprendizaje.

libro de amazon recomendaciones

Una vez uno de los cursos recomendados puedes seguir empapándote de código en los siguientes recursos:

Cursos de programación gratis para novatos

Los siguientes recursos gratuitos son ideales para novatos con una pequeña base teórica. A diferencia de los cursos recomendados, a diferencia de los primeros cursos, los siguientes links introducen contenido específico por separado, sin ningún tipo de integración. Desgraciadamente están todos en inglés.

Primero deberás aprender HTML y CSS:

A continuación deberás aprender JavaScript y un lenguaje enfocado a Back End. Es de vital importancia conocer bien JavaScript para trabajar como desarrollador web. A la hora de recomendarte un lenguaje Back End, me decantaría por Ruby o Phyton, debido a la multitud de documentación disponible y su demanda en el mercado.

El combo JavaScript – Ruby/Phyton te convertirá en un desarrollador todo terreno.

JavaScript:

Ruby (o aprende Python)

Python (aprende Ruby):

HTTP y conceptos generales:

Bases de datos y SQL:

jQuery y DOM:

Tras completar todos y cada uno de los cursos recomendados, serás capaz de trabajar con frameworks y crear aplicaciones. En el último epígrafe recomendaré una serie de cursos y libros para desarrolladores exprerimentados. Sigue leyendo.

Para maximizar tus oportunidades de trabajo puedes contemplar la posibilidad de aprender indistintamente Ruby/Python y Javascript/Node. Puede parecer demasiado si los inicios están siendo duros o un reto apasionante si estás disfrutando del proceso de aprendizaje. ¡La decisión es tuya!

Mi recomendación es que no pases de un lenguaje a otro de la misma rama hasta desenvolverte correctamente en el primero. Necesitas dominar los fundamentos y desenvolverte con soltura antes de dar el paso. Las abstracciones son muy comunes en este mundo y es muy sencillo perder el norte.  Saltar entre lenguajes sin dominar perfectamente ninguno es demasiado común. Procura seguir tu hoja de ruta. Es el mejor consejo que te puedo dar.

Programadores con experiencia en otros ámbitos

Puedes plantearte la posibilidad de aprender un lenguaje de programación que difiera mucho al que usas de forma habitual. Por ejemplo, si programas en C, aprende un lenguaje dinámico como Ruby; si desarrollas para Android usando Java puedes adentrarte en lenguajes funcionales como Clojure o Erlang/Elixir.

Estos lenguajes pueden abrirte la mente y ayudarte a crecer como desarrollador.

En cuanto a documentación, céntrate en recursos escritos por desarroladores para desarrolladores, como por ejemplo la serie “Learn Code the Hard Way” de Zed Shaw es magnífica.

Pragmatic Bookshelf y No Starch Press tienen bastante literatura orientada a desarrolladores con experiencia.

Es hora de dejar los ejercicios de lado e involucrarte en tu propio proyecto.

Con tu experiencia y con los recursos recomendados serás productivo más rápido de lo que crees.

Encientra cursos basados en proyectos reales que te lleven a practicar. Crea algo tangible con posibilidades de monetización. Como desarrollador con experiencia, probablemente estés tentado a aprender nuevas tecnologías, lo que te mantendrá motivado y entretenido, y lo que es más importante, actualizando conocimientos de manera contínua.

Si eres un programador que quiere dedicarse de manera profesional a la programación web

Si tienes experiencia como desarrollador en otros ámbitos, has de encontrar “tu lugar en el mercado” para poder contribuir en proyectos de nivel intermedio. El enfoque no es el del novato con curiosidades intelectuales que empieza a programar por diversión y crecimiento personal.

Si es posible has de escoger un lenguaje con similitudes al lenguaje que manejas en tu actual trabajo. Puedes considerar Java, JavaScript, Ruby y Python. Si tienes experiencia en alguno de ellos, puedes avanzar en su estudio. Normalmente no se encuentran fácilmente cursos online de programación más allá de nivel intermedio por lo que acabarás estudiando guías el “canonical book” del lenguaje de turno (lista al final del post).

Aprende los fundamentos del desarrollo web: HTML, CSS, JavaScript, HTTP y bases de datos. Este paso es muy importante, no des palos de ciego entre frameworks antes de esto. Hablamos de los fundamentos de todas las prácticas del desarrollo web. Si tienes una base sólida, el manejo de los diferentes frameworks será mucho más sencillo.

Udacity tiene un curso que cubre el nivel exigido para un desarrollador profesional: Web Development Online Course.

Recursos para programadores con experiencia:

“Canonical books” de lenguajes de programación:

Cursos Online Generales de desarrollo web

Cursos Online de Bases de datos y SQL

Cursos Online Development Stacks

Cursos online de mejores prácticas para crear software

Espero que el post sea de utlilidad, aprovecho para dar las gracias a los creadores del post en el que me he basado para hacer este artículo: Launch School – Is This For Me?

 

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.