Por John Selawsky
Define tus objetivos profesionales y elige un lenguaje. Este es el consejo más importante para cualquier persona que tenga cero experiencia en programación y pretenda unirse a la comunidad de desarrolladores. Pero, ¿cómo puedes elegir sin tener ni idea de qué lenguaje se adapta mejor a tus propósitos?
¿No sería fácil si hubiera un «líder del mercado» entre todos los lenguajes de programación? Entonces todos los recién llegados podrían tener siempre una elección segura: aprende este lenguaje y seguro que estarás muy solicitado. Por supuesto, es imposible. Los lenguajes son «herramientas» para resolver numerosas tareas. Pero aún así, hay uno que puede ser considerado como una opción estelar – es Java.
Java es un lenguaje bien estructurado, orientado a objetos, que puede ser considerado fácil para los principiantes. Puedes dominarlo con bastante rapidez, ya que hay muchos procesos que se ejecutan automáticamente. No hay que profundizar demasiado en «cómo funcionan las cosas ahí». Java es un lenguaje multiplataforma. Permite a un programador crear una aplicación, que puede desplegarse en cualquier dispositivo. Es el lenguaje preferido para el Internet de las Cosas y la herramienta adecuada para construir aplicaciones de nivel empresarial.
Lo que es importante para un «novato», Java tiene una de las mayores comunidades globales y documentación de alta calidad. Si tienes un problema, es más que probable que la respuesta esté lista allí, esperándote. Otras dos ventajas de Java son las vastas colecciones y los frameworks que cubren la mayoría de los retos a los que tendrás que enfrentarte como desarrollador junior.
Por último, es un lenguaje con una trayectoria respetable y un futuro prominente. Las dos últimas versiones, mejoradas con nuevas características, fueron lanzadas con seis meses de diferencia. Esto ayuda a que Java se mantenga en primera línea y en las posiciones más altas de los respetables rankings profesionales.
Pero incluso cuando hablamos de un lenguaje de programación con una curva de aprendizaje baja, hay muchas piedras escondidas para los principiantes. Cuánto tiempo se necesita para aprender? En qué fuentes confiar? ¿Qué errores evitar? Vamos a recorrer todo el camino de tu experiencia de aprendizaje.
Asegúrate de sortear los obstáculos más comunes
Así que eres nuevo en la programación. Enhorabuena: ya que puedes aprovechar la experiencia de otros programadores y evitar los errores comunes en un autoaprendizaje. Aquí tienes algunos lapsos frecuentes.
Aprender sin fijar un objetivo concreto
Para estimar la escala y el nivel deseado de conocimientos en un determinado lenguaje de programación, en primer lugar, debes responder a una sencilla pregunta: ¿para qué necesitas programar?
Si te tomas en serio la codificación y pretendes convertirte en un desarrollador de Java, necesitarás estudiar todos los días durante al menos 4 o 5 horas. Pero si simplemente quieres ampliar tu campo de acción, puedes elegir un ritmo más relajado. De todos modos, intenta no alargar tu formación durante muchos años, porque las tecnologías evolucionan. Mientras aprendes un determinado framework o herramienta de desarrollo para conseguir un trabajo, se queda anticuado.
Leer «cualquier cosa útil» que aparezca no es la mejor estrategia de aprendizaje. Está bien hacer ajustes al plan general. Sin embargo, no seguirlo en absoluto te desmotivará inevitablemente.
Un intento de aprender demasiadas tecnologías a la vez
Este es un error posterior, que lleva a un aprendizaje sin fin. No intentes atiborrar tu plan educativo con demasiadas tecnologías y herramientas para evitar el agotamiento. Necesitarás tiempo para procesar la información y ver cómo funciona todo en la práctica.
Demasiada investigación y teoría sin práctica
La programación es una habilidad que sólo puedes adquirir con mucha práctica. Necesitarás una buena base teórica, pero mientras sólo leas (o veas) conferencias y cursos, no podrás realmente codificar. Piénsalo. Nadie puede aprender a nadar sin probarlo. Necesitas explicaciones, pero sobre todo, necesitas acción.
Sólo la práctica abundante te enseñará a lidiar con los problemas cotidianos de los programadores. Por ejemplo, adquirirás el hábito de revisar tu código con regularidad y no dejarás que los problemas conectados se acumulen. También empezarás con las soluciones más fáciles. Luego pasarás a las más exquisitas, trabajando constantemente en la mejora de tu código. Y lo más importante, te acostumbrarás a codificar a diario.
Aprender a codificar de forma aislada
Los principiantes a menudo dudan, si deben unirse a las comunidades de programación en línea o asistir a eventos, principalmente por el síndrome del impostor. Pero recuerda: nadie quiere hundirte. La comunidad de programadores es colaborativa. Así es como aparecen numerosas fuentes de datos abiertos. Están acostumbrados a trabajar en equipo y, seguramente, todos fueron principiantes en un determinado momento de la vida.
Echa un vistazo: hay multitud de foros y fuentes web sobre programación. Los desarrolladores comparten con entusiasmo sus conocimientos y están abiertos a las colaboraciones. Puedes empezar a aprender online, recibir una pista útil de colegas más experimentados y, más adelante, encontrar tu primer proyecto de codificación.
Estar seguro de que algún día entenderás por completo todos los aspectos de la programación
Si alguien descubriera una píldora para tomar y conseguir inmediatamente destreza en cualquier lenguaje de programación, sería la persona más rica del planeta (lo siento, Jeff Bezos). Pero hasta entonces, no hay un fin cierto en tu formación, si has elegido ser programador. Incluso cuando tengas un trabajo, nunca dejes de aprender. Las cosas cambian rápidamente en el mundo de la programación.
Por otro lado, cuando aún estés aprendiendo a codificar, intenta aceptar algunos hechos tal y como son. No profundices en cada tema, ya que su trasfondo podría ser demasiado «pesado».
Haz un programa de formación perfecto
Es más fácil conseguir tu objetivo paso a paso. Ahora, cuando conoces los errores más comunes, puedes evitarlos. Aquí hay cinco pasos que puedes seguir para aprender Java.
- Fija un objetivo y elige un lenguaje.
Puedes hacer prácticamente cualquier cosa con Java. Puedes construir servidores de aplicaciones, aplicaciones de escritorio y móviles, aplicaciones empresariales y ejecutar pruebas unitarias. Pero, por supuesto, un lenguaje de programación no es todo lo que necesitas saber para convertirte en un profesional. Intenta pensar en áreas de actividad específicas.
Las tendencias actuales son construir aplicaciones basadas en la nube (también tendrás que aprender los fundamentos de la computación en la nube y las herramientas específicas para el desarrollo en la nube), trabajar con el Internet de las Cosas, realizar análisis de Big data, crear juegos, etc.
2. Crea un plan educativo.
¿Estás preparado para hacer de la programación en Java tu profesión? Entonces dedica al menos de 2 a 3 (en los días laborables) a 5 horas (en los fines de semana) a estudiar diariamente. En este caso, es probable que necesites entre 3 y 6 meses para prepararte para un puesto de desarrollador junior.
En general, tu proceso de aprendizaje se dividirá en algunas etapas:
- Instalación del JDK (Java Development Kit) desde la web de Oracle e instalación del entorno de ejecución de Java (IntelliJ IDEA, Eclipse o NetBeans);
- Aprendizaje de la sintaxis de Java;
- Aprendizaje del núcleo de Java;
- Aprender las colecciones de Java;
- Aprender las bibliotecas y frameworks más populares;
- Explorar las APIs más utilizadas (por ejemplo, servlets, JSP, JDBC, JUnit);
- Dominar Git;
- Y así sucesivamente.
Intenta seguir tu plan y mantener el equilibrio entre teoría y práctica. La programación es una habilidad que necesita ser entrenada cada día. Si terminas de estudiar un determinado tema, continúa con algunas tareas de codificación (de 3 a 10, dependiendo de su dificultad).
Puedes ajustar fácilmente el conocido principio de Pareto (regla del 80/20) al aprendizaje de Java. El «20» corresponderá a la investigación y el «80» a la práctica. No es una exageración: necesitarás cuatro veces más codificación que lectura para memorizar lo aprendido y desarrollar tus habilidades de codificación. Por desgracia, si no escribes tu código de una vez, olvidarás todo lo que has leído al día siguiente. Por suerte, no necesitas inventar tu propio programa de formación, si tienes las fuentes adecuadas.
3. Elige las herramientas adecuadas y únete a las comunidades de programación.
Seamos sinceros: un curso de Java perfecto no existe. Algunos te darán un profundo conocimiento básico, otros te proporcionarán una buena cantidad de práctica. Elige unas cuantas plataformas para la educación, la comunicación y la práctica. Escoge un curso online que combine una explicación sencilla de la teoría con la codificación real.
Únete a las comunidades, donde puedes hacer cualquier pregunta sobre los aspectos de la codificación en Java, compartir tus pensamientos y encontrar personas afines. Las principales comunidades para desarrolladores de Java se enumeran a continuación.
Utiliza múltiples fuentes para aprender Java
Necesitarás muchas herramientas para lograr tus objetivos. Aquí hay un conjunto de «herramientas» para que tengas éxito.
- Estrictamente práctica: CodeAcademy
Esta es probablemente una de las plataformas online más conocidas para aprender numerosos lenguajes. Por supuesto, también hay una sección para los que aprenden Java. Aquí se empieza a codificar desde la primera lección. Hay consejos bastante útiles, que puedes obtener si una determinada tarea parece ser difícil (lo cual es normal cuando eres un principiante). La lógica es simple: lee la tarea, escribe el código y ejecútalo para ver qué sucede como resultado, y luego pasa al siguiente paso. Las tareas se van complicando poco a poco, hasta que empiezas a escribir tu código desde cero. La sección de preguntas frecuentes es bastante útil y tienes la opción de discutir cada tarea con otros estudiantes.
Este curso puede ser una gran herramienta complementaria en el aprendizaje de Java. Como se ha dicho antes, necesitas codificar para dominar la programación en Java.
2. Juega y codifica desde el principio: CodeGym.cc
Son cursos online para aprender Java con una característica especial: la gamificación. Hoy en día es habitual que los cursos online adopten elementos de gamificación, ya que aportan motivación instantánea, sensación de logros constantes y facilitan la consecución de tu objetivo.
En CodeGym’s empiezas desde el nivel 0 en un universo futurista con viajes espaciales, robots y otras cosas chulas. Tu objetivo es superar cuatro misiones educativas para subir de nivel a un personaje, un robot. Cada misión incluye 10 niveles, y cada nivel tiene hasta 10-12 lecciones, impartidas por miembros de la tripulación de una nave galáctica. Una lección consiste en una teoría mínima y un conjunto de tareas con verificación instantánea y consejos para mejorar tu código. Empiezas a codificar desde el principio, resolviendo tareas muy sencillas, hasta que estás preparado para proyectos de codificación mucho más complicados y masivos.
Toda la historia te permite no quedarte atascado en un determinado tema o tarea, avanzar y volver más tarde a los «twisters». En total, hay impresionantes 1200+ tareas en un curso. Una cantidad que se convierte en al menos 300-500 horas de codificación.
3. Desafía a los programadores: Codewars
Esta es otra plataforma online con toneladas de práctica. Aunque es más adecuada para alumnos con al menos un pequeño bagaje en programación. Codewars te faculta para afinar las habilidades en un determinado lenguaje mediante katas de entrenamiento.
Puedes escribir tu código en un navegador y utilizar casos de prueba para comprobarlo paso a paso. También puedes comparar tu solución con otras para ampliar tus conocimientos y discutir las mejores prácticas. Cada kata tiene un rango, y cada kata es un reto con otros programadores. Cuando resuelves tareas más difíciles, puedes conseguir retos más complicados para mejorar las habilidades de codificación. Lo que diferencia a esta plataforma de otras es que permite estudiar y practicar en grupo.
4. Escuchar las charlas de un nivel «pro»: EdX
EdX es una plataforma educativa fundada por la Universidad de Harvard y el MIT. Abarca muchos campos de estudio, incluyendo la programación en Java y muchos temas relacionados. Hay un montón de cursos introductorios y programas de certificación verificados, impartidos por universidades.
Cada curso tiene un tiempo definido e incluye conferencias en vídeo con una transcripción de texto. Es fácil volver a las lecciones anteriores y repasar el material. Hay decenas de cursos diferentes, algunos de ellos gratuitos. Pero aun así, esta es una fuente estrictamente para aprender la teoría de Java. Asegúrate de reforzar esos cursos con horas de codificación.
¿Quieres estar al tanto de las últimas noticias, revisiones y actualizaciones del mundo Java? Eso es lo que hay que hacer. Java evoluciona constantemente, se actualiza y trae nuevas características. Asegúrate de tener un par de medios que puedas leer a diario. Uno de los más grandes son:
- Javaworld (noticias, tutoriales útiles, «how to’s» y todo lo demás para mantenerte al día con la programación en Java);
- Java Code Geeks (un centro de recursos para los que aprenden Java con tutoriales educativos, artículos y consejos sobre cómo conseguir un trabajo como programador Java);
- DZone (multitud de artículos y guías para principiantes y desarrolladores experimentados);
- Javarevisited (un blog actualizado diariamente que cubre numerosos temas de aprendizaje de Java).
¿Recuerdas el consejo de unirte a una comunidad para que tu formación sea más efectiva? Puedes hacer cualquier pregunta en la sección de Java de Stack Overflow o en Coderanch. Además, hay al menos tres grandes comunidades en Reddit, comoelearnprogramming, java y learnjava, donde encontrarás consejos útiles para aprender Java y programación en general. Si necesitas información más específica, por ejemplo, una pista para mejorar tu código en determinadas tareas, prueba la sección de ayuda especial en CodeGym, donde otros estudiantes y «entrenadores de codificación» te ayudarán con cualquier problema. Y por último, Oracle cuenta con una amplia Comunidad Java, abierta tanto a los recién llegados como a los desarrolladores experimentados.
Ser programador significa mejorar constantemente y adquirir nuevos conocimientos. Si desarrollas la capacidad de autoformación desde el principio, triunfarás por todos los medios. ¿Estás preparado para intentarlo?