
Nesta primavera, publicamos uma gravação
do curso Java no canal Technostream. Por vários semestres consecutivos, ele tem lido como parte do projeto educacional da
Technosphere implementado pelo Mail.Ru Group juntamente com a Universidade Estadual de Moscou. M.V. Lomonosov. O curso inclui todos os tópicos necessários para um desenvolvedor iniciante no mundo Java. Os autores não entram nos detalhes da sintaxe, mas imediatamente realizam tarefas práticas: desenvolver um jogo com uma interface de console e bate-papo funcional. No final do curso, discutimos perguntas comuns de entrevistas para posições de desenvolvedor júnior e médio de Java.
As anotações das aulas e os
materiais do curso são gratuitos e
estão disponíveis para todos.
A maioria dos trabalhos de casa pode ser concluída e verificada no repositório do curso.
Para quem
Supõe-se que os alunos não tenham encontrado o Java, mas estejam familiarizados com qualquer linguagem de programação moderna (JS / Python / C # / C / C ++) e os conceitos básicos do OOP.
Duração
O curso é composto por 3 partes, inclui 13 palestras e 1 hackathon. A duração das palestras é de 1 a 2 horas.
Conteúdo do curso
Parte 1. Introdução ao Desenvolvimento Java
Palestra 1. Introdução ao Java 1Na primeira palestra, você se familiarizará rapidamente com a sintaxe do idioma e entenderá o HelloWorld. O curso é construído em torno do Github, portanto, na primeira lição, você aprenderá como trabalhar com o Git, criar um projeto usando o gradle e fazer uma solicitação de pull no Github.
Aula 2. Introdução ao Java 2Familiaridade com o modelo de objeto de linguagem.
Palestra 3. Genéricos e coleçõesFamiliaridade com coleções e exceções.
DZCom base nos resultados de três palestras, você receberá a tarefa: desenvolver um pequeno jogo com uma interface de console (touros e vacas). Aqueles que fazem o curso no Youtube, os autores recomendam que você definitivamente conclua esta tarefa para lidar com o material na prática. Para fazer com as mãos não é um vídeo no Youtube para assistir;)
Parte 2. Serviços da Web
Java é uma linguagem industrial que domina o campo de grandes aplicativos da web. Na segunda parte, você aprenderá como criar serviços da web.
Palestra 4. Noções básicas da WebVocê aprenderá como o HTTP funciona e como fazer solicitações HTTP de Curl e Java.
Aula 5. Primavera, Tópicos, AnotaçõesApresentando o popular framework Spring, que simplifica o desenvolvimento de aplicativos da web.
Para que os alunos pratiquem o trabalho com a Spring, um hackathon em equipe será realizado após a quinta palestra. Por um tempo limitado, você precisa desenvolver um bate-papo e torná-lo o mais funcional possível. Se você assistir ao curso no Youtube, poderá conversar pessoalmente e experimentar.
Palestras 6-7. Java + DB, HibernaçãoVocê aprenderá como trabalhar com bancos de dados. No curso de período integral, criamos bancos de dados de alunos na AWS. Para quem faz o curso on-line, recomendamos aumentar o banco de dados localmente ou usar bancos de dados na memória (H2).
Parte 3. O jogo
Você receberá uma tarefa para desenvolver um jogo cliente-servidor da Bomberman. O cliente do jogo em JS, criado com base no
projeto de Matt Scala , encontra-se em um
repositório separado .
Uma descrição formal da interação dos serviços de jogos pode ser encontrada
aqui , mas aqui está um
diagrama visual .
Palestra 8. Protocolo WebSocket full-duplexPara a comunicação entre o cliente e o servidor, o jogo multiplayer é muito melhor que o HTTP, o protocolo WebSocket full-duplex é adequado. Você aprenderá como trabalhar com ele e refazer seu bate-papo escrito anteriormente com base no HTTP no WebSocket. Infelizmente, não há vídeo desta palestra no Youtube, mas todos os materiais estão disponíveis no Github.
Palestra 9. Arquitetura de JogosVocê entenderá a estrutura do jogo e o mecanismo de interação dos serviços.
Parte 4. Tópicos Avançados
Nesta parte, analisamos dois tópicos tradicionalmente considerados avançados, mas qualquer desenvolvedor Java deve ter conhecimento básico desses tópicos.
Palestras 10-11. Tópicos de jogos, Simultaneidade práticaA aula 10 ilustra, com exemplos, os perigos do desenvolvimento multithread e, na aula 11, maneiras de contorná-los. Preste atenção ao
modelo de fluxo do serviço de jogo .
Palestra 12. Coleta de LixoVocê aprenderá como o heap funciona e como a coleta de lixo funciona. Ao mesmo tempo, o conhecimento sobre a estrutura das estruturas de dados é usado para avaliar o layout dos objetos.
Palestra 13. Perguntas da entrevistaA última aula do curso é dedicada à análise das perguntas mais populares nas entrevistas em Java (desenvolvedor júnior-médio).
Informações gerais sobre o curso
Todos os materiais do curso:
https://github.com/rybalkinsd/atomCliente do jogo Bomberman:
https://github.com/rybalkinsd/atom-bomberman-frontendCanal do curso no Telegram - aqui você pode obter respostas para todas as perguntas relacionadas ao curso.
Observe que, no final de algumas palestras, há uma descrição dos trabalhos de casa e, no código da aula, há testes. Faça uma solicitação de recebimento para o segmento de aula Se os testes para travis forem verdes, você concluiu a tarefa corretamente.
Os alunos da DZ que participam de um curso on-line não são verificados. No entanto, você pode fazer solicitações pull livremente para o projeto e ver se os testes para o travis são aprovados com êxito. Além disso, você pode fazer qualquer pergunta sobre o curso no chat. Os autores realmente apreciam o feedback, especialmente na forma de solicitações pull com sugestões e correções.
Os autores
Alexander Pomosov, engenheiro sênior no Alibaba
Sergey Rybalkin, engenheiro principal no AlibabaLembre-se: o curso está disponível para todos em nosso canal educacional
Technostream . Você pode
conversar com outros participantes e fazer perguntas aos professores nos comentários na lista de reprodução do curso e
conversar no Telegram .
Programar é engenharia, muito mais aberto à experimentação do que outras áreas da engenharia. Faça seu projeto, experimente-o e você terá não apenas experiência, mas também muita diversão!