El curso de desarrollo Java del grupo Mail.Ru en el canal Technostream



Esta primavera, publicamos una grabación del curso de Java en el canal Technostream. Durante varios semestres seguidos, ha estado leyendo como parte del proyecto educativo Technosphere implementado por Mail.Ru Group junto con la Universidad Estatal de Moscú. M.V. Lomonosov. El curso incluye todos los temas necesarios para un desarrollador novato en el mundo Java. Los autores no profundizan en los detalles de la sintaxis, sino que inmediatamente realizan tareas prácticas: desarrollar un juego con una interfaz de consola y chat funcional. Al final del curso, discutimos preguntas comunes de entrevistas para puestos de desarrollador de Java junior y medio.

Las notas de clase y los materiales del curso son gratuitos y están disponibles para todos.

La mayoría de las tareas se pueden completar y verificar en el repositorio del curso.

Para quien


Se supone que los estudiantes no se encontraron con Java, pero están familiarizados con cualquier lenguaje de programación moderno (JS / Python / C # / C / C ++) y los conceptos básicos de OOP.

Duración


El curso consta de 3 partes, incluye 13 conferencias y 1 hackathon. La duración de las conferencias es de 1-2 horas.

Contenido del curso


Parte 1. Introducción al desarrollo de Java


Lección 1. Introducción a Java 1
En la primera clase, se familiarizará rápidamente con la sintaxis del lenguaje y comprenderá HelloWorld. El curso se basa en Github, por lo que en la primera lección aprenderá cómo trabajar con Git, crear un proyecto usando gradle y realizar una solicitud de extracción en Github.

Lección 2. Introducción a Java 2
Conocimiento del modelo de objeto de lenguaje.

Lección 3. Genéricos y colecciones
Familiaridad con colecciones y excepciones.

DZ
Según los resultados de tres conferencias, recibirás la tarea: desarrollar un pequeño juego con una interfaz de consola (toros y vacas). Aquellos que toman el curso en Youtube, los autores le aconsejan que definitivamente complete esta tarea para tratar el material en la práctica. Hacer con las manos no es un video en Youtube para ver;)

Parte 2. Servicios web


Java es un lenguaje industrial que domina el campo de las grandes aplicaciones web. En la segunda parte, aprenderá cómo hacer servicios web.

Lección 4. Conceptos básicos de la web.
Aprenderá cómo funciona HTTP y cómo realizar solicitudes HTTP desde Curl y Java.

Lección 5. Primavera, Hilos, Anotaciones
Presentamos el popular marco Spring, que simplifica el desarrollo de aplicaciones web.

Para que los estudiantes practiquen trabajar con Spring, se realizará un hackathon en equipo después de la quinta conferencia. Por un tiempo limitado, necesita desarrollar un chat y hacerlo lo más funcional posible. Si miras el curso en Youtube, puedes chatear tú mismo y experimentar con él.

Conferencias 6-7. Java + DB, Hibernate
Aprenderá a trabajar con bases de datos. En el curso de tiempo completo, planteamos bases de datos de estudiantes en AWS. Aquellos que toman el curso en línea, recomendamos elevar la base de datos localmente o usar bases de datos en memoria (H2).

Parte 3. El juego


Recibirá una tarea para desarrollar un juego cliente-servidor Bomberman. El cliente del juego en JS, creado sobre la base del proyecto de Matt Scala , se encuentra en un repositorio separado .

Puede encontrar una descripción formal de la interacción de los servicios del juego aquí , pero aquí hay un diagrama visual .

Lección 8. Protocolo WebSocket dúplex completo
Para la comunicación entre el cliente y el servidor, el juego multijugador es mucho mejor que HTTP, el protocolo WebSocket full-duplex es adecuado. Aprenderá cómo trabajar con él y rehacer su chat escrito anteriormente basado en HTTP en WebSocket. Desafortunadamente, no hay un video de esta conferencia en Youtube, pero todos los materiales están disponibles en Github.

Lección 9. Arquitectura del juego
Comprenderá la estructura del juego y el mecanismo de interacción de los servicios.

Parte 4. Temas avanzados


En esta parte, analizamos dos temas que tradicionalmente se consideran avanzados, pero cualquier desarrollador de Java debe tener un conocimiento básico de estos temas.

Conferencias 10-11. Temas de juego, concurrencia práctica
La clase 10 ilustra, con ejemplos, los peligros del desarrollo multiproceso, y en la clase 11, formas de solucionarlos. Presta atención al modelo de transmisión del servicio del juego .

Lección 12. Recolección de basura.
Aprenderá cómo funciona el montón y cómo funciona la recolección de basura. Al mismo tiempo, el conocimiento sobre la estructura de las estructuras de datos se utiliza para evaluar el diseño de los objetos.

Lección 13. Preguntas de la entrevista.
La última conferencia del curso está dedicada al análisis de las preguntas más populares en las entrevistas de Java (desarrollador junior-medio).

Información general del curso


Todos los materiales del curso: https://github.com/rybalkinsd/atom

Cliente del juego Bomberman: https://github.com/rybalkinsd/atom-bomberman-frontend

Canal del curso en Telegram : aquí puede obtener respuestas a todas las preguntas relacionadas con el curso.

Tenga en cuenta que al final de algunas conferencias hay una descripción de la tarea, y en el código de la conferencia hay exámenes. Haga una solicitud de extracción al hilo de lectura. Si las pruebas para travis son verdes, completó la tarea correctamente.

Los estudiantes de DZ que toman un curso en línea no son revisados. Sin embargo, puede realizar libremente solicitudes de extracción al proyecto y ver si las pruebas para travis pasan con éxito. Además, puede hacer cualquier pregunta sobre el curso en el chat. Los autores realmente aprecian los comentarios, especialmente en forma de solicitudes de extracción con sugerencias y correcciones.

Los autores



Alexander Pomosov, ingeniero sénior en Alibaba


Sergey Rybalkin, ingeniero principal en Alibaba

Recordemos: el curso está disponible para todos en nuestro canal educativo Technostream . Puede chatear con otros participantes y hacer preguntas a los maestros en los comentarios debajo de la lista de reproducción del curso y chatear en Telegram .

La programación es ingeniería, mucho más abierta a la experimentación que otras áreas de la ingeniería. Haga su proyecto, experimente con él y obtendrá no solo experiencia, ¡sino también mucha diversión!

Source: https://habr.com/ru/post/es420693/


All Articles