
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 1En 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 2Conocimiento del modelo de objeto de lenguaje.
Lección 3. Genéricos y coleccionesFamiliaridad con colecciones y excepciones.
DZSegú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, AnotacionesPresentamos 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, HibernateAprenderá 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 completoPara 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 juegoComprenderá 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ácticaLa 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/atomCliente del juego Bomberman:
https://github.com/rybalkinsd/atom-bomberman-frontendCanal 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 AlibabaRecordemos: 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!