Cuando alguien comienza a aprender a programar, ya sea solo o mediante cursos en línea, es muy importante enfatizar algún dominio y estructurarlo todo. En este artículo, presentamos nuestra estructura: tareas de Java para principiantes, con una indicación de cuánto se representa un tipo particular de tarea en el curso de programación en línea de CodeGym, junto con enlaces útiles.
Practica con la sintaxis del lenguaje.
Estas son las primeras tareas de programación de Java para principiantes, la base, desde "Hola, mundo" hasta bucles y matrices. CodeGym tiene muchos de ellos: están especialmente concentrados en los primeros seis niveles de la búsqueda de sintaxis de Java . Es poco probable que necesite buscar más de ellos en otro lugar. Ciertamente tenemos suficiente para dominarlos. Además, cuando tienes alguna tarea más difícil, automáticamente revisas la sintaxis. Pero si de repente te encuentras en necesidad, cualquier libro de texto de Java para principiantes contiene problemas similares. Pero a diferencia de CodeGym, estos libros de ejercicios no tendrán verificación de tareas instantánea.Practica con colecciones
Las colecciones son el primer tema "serio" que los programadores novatos encuentran en sus estudios. Las tareas para principiantes dedicadas a las colecciones de Java también están bien representadas en CodeGym, en los niveles séptimo y octavo de la búsqueda de sintaxis de Java. Aquí es donde el estudiante escuchará por primera vez sobre Java Collections Framework y trabajará un poco con las interfaces Set, List y Map junto con algunas de sus implementaciones. Sin embargo, en esta etapa solo obtendrá una introducción a esta útil herramienta y tareas simples de Java. Estudiarás las colecciones más a fondo durante la búsqueda de colecciones de Java . Puedes ver lo importante que es este tema: ¡una misión completa lleva su nombre!Practica con excepciones
Java proporciona un mecanismo especial para manejar situaciones excepcionales, lo que simplifica significativamente el proceso de "captura" de errores de aplicación. Pero para aprovecharlo al máximo, debe descubrir cómo funciona el manejo de excepciones en Java. CodeGym tiene montones de tales tareas. Incluso los encontrarás en la primera misión: sintaxis de Java.Practica con la conversión de tipos
Este grupo de tareas podría, por supuesto, clasificarse como tareas básicas de sintaxis. Sin embargo, en nuestra humilde opinión, las personas a menudo subestiman tales tareas y los novatos se tambalean en ellas. Es por eso que rompemos el molde: no estudiamos las tareas de conversión de tipos primitivos desde el principio como otros suelen hacer. En su lugar, los abordamos un poco más tarde, al final de la búsqueda de la sintaxis de Java. Y luego aprenderemos a emitir tipos no primitivos (objetos) cuando estudiemos OOP en la búsqueda de Java Core . CodeGym tiene suficiente de estas tareas. No necesitas buscar más.Practica con POO
OOP no es el tema más difícil, pero es extremadamente importante. Y esconde muchas sutilezas que a los entrevistadores les gusta usar para atrapar a los posibles desarrolladores junior. El curso CodeGym contiene tareas prácticas de programación para principiantes para ayudarlo a comprender la filosofía orientada a objetos. Pero para comprender realmente la programación orientada a objetos, le recomendamos que lea literatura relacionada (por ejemplo, "Core Java" de Cay Horstmann y Gary Cornell, "Análisis y diseño orientados a objetos" de McLaughlin u otros libros ) .Practica con flujos de entrada/salida
Empezamos a usar flujos de E/S mucho antes de entenderlos. ¡Este es Java, mi joven saltamontes! Explicar System.out, y mucho menos System.in, es difícil e innecesario cuando se comienza por primera vez. Pero a medida que avanza en la búsqueda de Java Core , sabe lo suficiente para comprender este tema un tanto confuso, y hablamos no solo de E/S de la consola, sino también de cómo trabajar con el sistema de archivos. Lo principal es no saltarse estas tareas (CodeGym tiene bastantes) y profundizar constantemente en la teoría.Rompecabezas
Por "acertijos", nos referimos a tareas de mayor complejidad que no tienen tanto que ver con el conocimiento como con la capacidad de aplicar lo que sabes de formas no convencionales. Estas son tareas comunes para un desarrollador Java junior. A las empresas les gusta mucho preguntarlas durante las entrevistas, pero en el trabajo real, estos acertijos no se encuentran muy a menudo. Así que CodeGym tiene algunos, pero no muchos (usualmente los verás en las lecciones de Captain Squirrels). ¿Dónde puedo encontrar acertijos?- https://javahungry.blogspot.com/2014/03/java-programming-puzzles-tackling-brainteaser-in-java-interv...
- https://howtodoinjava.com/java-interview-puzzles-answers/
- https://www.codechef.com/
- https://www.codewars.com/?language=java
Algoritmos y estructuras de datos
En cuanto a los algoritmos y las estructuras de datos, existe un debate constante sobre cuánto los necesita un futuro programador. Responderemos una vez más: son esenciales para establecer la mentalidad correcta, pero rara vez se requieren directamente para el trabajo. Esto se debe a que Java, así como otros lenguajes de programación, tienen bibliotecas con implementaciones de todos los algoritmos imaginables para ordenar, buscar y más. Aún así, escribir su propia implementación de un algoritmo puede ser muy útil y puede darle una idea de su complejidad. Especialmente para las personas que estudiaron matemáticas solo en la escuela secundaria. Básicamente, estas tareas se pueden intercambiar con acertijos con la única diferencia de que todos han sido descritos y resueltos en línea repetidamente. Ni siquiera necesita una herramienta de validación. Elija cualquier curso de, digamos, la Universidad de Princetono una universidad en California . Practica con estructuras de datos:subprocesos múltiples
Cualquiera puede escribir un "¡Hola, mundo!" programa. Pero, ¿qué tal usar la API de subprocesos de Java para mostrar la famosa frase de un subproceso separado? O qué tal mostrar "¡Hola, mundo!" cinco veces de cinco hilos diferentes sin mezclar las cuerdas? Multithreading será la mejor "prueba de tu fuerza" mientras estudias Java Core. Toda una búsqueda de CodeGym, llamada Java Multithreading , está dedicada a este tema, que está lejos de ser fácil. Contiene una gran cantidad de tareas que permiten a los estudiantes sentir el "dolor y la belleza" del procesamiento paralelo. Los primeros proyectos "reales" de los estudiantes suelen contener algún nivel de subprocesos múltiples. Por ejemplo, juegos simples.
Practica con subprocesos múltiples Cinco filósofos silenciosos se sientan en una mesa redonda. Un plato de espagueti está frente a cada uno de ellos. Hay tenedores en la mesa entre cada filósofo (uno a la izquierda y otro a la derecha). Cada filósofo puede comer o pensar pensamientos profundos. Pero él o ella puede comer solo si sostiene dos tenedores, es decir, tomando el de la izquierda y el de la derecha. "Recoger el tenedor" y "dejar el tenedor" son acciones distintas que se realizan secuencialmente. |
Practica con genéricos
La generalización es la esencia misma de la automatización, por lo que en cierto sentido es la esencia de la programación. En consecuencia, no podemos ignorar el tema de los genéricos en Java. CodeGym tiene tareas de programación que involucran genéricos (principalmente en la búsqueda de colecciones de Java, comenzando en el nivel 5). ¿Dónde puedo encontrar ejercicios y materiales útiles sobre genéricos?- https://docs.oracle.com/javase/tutorial/java/generics/QandE/generics-questions.html
- https://www.geeksforgeeks.org/generics-in-java/
- http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html
- "Java efectivo" de Bruce Eckel
Practica con patrones de diseño.
En algún momento (dos tercios del curso de CodeGym), los programadores principiantes deben comenzar a observar las reglas para lograr una buena forma en la programación. Estamos hablando de formato de código adecuado (más simple) y patrones de diseño (más difícil). CodeGym tiene tareas para esto. Necesitarás más y puedes encontrarlos en " Head First Design Patterns " de Elisabeth Freeman y Kathy Sierra. O puede pensar en cómo podría aplicar patrones de diseño a tareas resueltas previamente.Examen de la unidad
Una habilidad importante para cualquier programador, a menudo erróneamente atribuida únicamente a los evaluadores, es la capacidad de escribir pruebas unitarias para su propio código. CodeGym tiene algunas tareas relacionadas con las pruebas unitarias, pero realmente no necesita molestarse en buscar más. Cuando sepa cómo escribir pruebas unitarias, acostúmbrese a cubrir su código (en proyectos propios, en sus estudios) con ellas. Esto es mucho más útil que realizar comprobaciones con la salida de la consola, una práctica que suele afectar a los estudiantes de programación. Además, muy a menudo, lo primero que se les asigna a los nuevos desarrolladores junior en las empresas es escribir pruebas unitarias para el código de otra persona.Practica con expresiones regulares
Este es un tema simple que casi ningún principiante entiende, porque no está familiarizado y son perezosos. Realmente vale la pena pasar unos días estudiando el tema, llegar al fondo de "regex" y obtener una ventaja sobre aquellos que no lo han hecho. Esto también es útil porque las expresiones regulares son casi independientes del idioma: si las aprende una vez, podrá usarlas en todas partes. CodeGym no tiene tareas dedicadas a las expresiones regulares, aunque algunas pueden resolverse con su ayuda. Aquí hay recursos adicionales para comprender este tema:- regex101.com : un sitio web donde puede verificar expresiones regulares en línea
- "Introducción a las expresiones regulares" de Mike Fitzgerald: una introducción concisa y sencilla.
GO TO FULL VERSION