
Ce printemps, nous avons posté un enregistrement
du cours Java sur la chaîne Technostream. Pendant plusieurs semestres consécutifs, il a lu dans le cadre du projet éducatif
Technosphère mis en œuvre par Mail.Ru Group en collaboration avec l'Université d'État de Moscou. M.V. Lomonosov. Le cours comprend tous les sujets nécessaires pour un développeur novice dans le monde Java. Les auteurs n'entrent pas dans les détails de la syntaxe, mais entreprennent immédiatement des tâches pratiques: développer un jeu avec une interface console et un chat fonctionnel. À la fin du cours, nous discutons des questions courantes des entretiens pour les postes de développeur Java junior et intermédiaire.
Les notes de cours et les
supports de cours sont gratuits et accessibles à tous.
La plupart des devoirs peuvent être complétés et vérifiés dans le référentiel de cours.
Pour qui
Il est supposé que les étudiants n'ont pas rencontré Java, mais connaissent bien tout langage de programmation moderne (JS / Python / C # / C / C ++) et les bases de la POO.
La durée
Le cours se compose de 3 parties, comprend 13 conférences et 1 hackathon. La durée des conférences est de 1 à 2 heures.
Contenu du cours
Partie 1. Introduction au développement Java
Conférence 1. Java intro 1Dans la première leçon, vous vous familiariserez rapidement avec la syntaxe du langage et comprendre HelloWorld. Le cours est construit autour de Github, donc dans la première leçon, vous apprendrez à travailler avec Git, à construire un projet à l'aide de gradle et à faire une demande d'extraction sur Github.
Conférence 2. Java intro 2Connaissance du modèle objet langage.
Conférence 3. Génériques et collectionsConnaissance des collections et des exceptions.
DZSur la base des résultats de trois conférences, vous recevrez la tâche: développer un petit jeu avec une interface console (taureaux et vaches). Ceux qui suivent le cours sur Youtube, les auteurs vous conseillent de bien terminer cette tâche afin de traiter le matériel en pratique. A voir avec les mains ce n'est pas une vidéo sur Youtube à regarder;)
Partie 2. Services Web
Java est un langage industriel qui domine le domaine des grandes applications Web. Dans la deuxième partie, vous apprendrez à créer des services Web.
Conférence 4. Bases du WebVous apprendrez comment HTTP fonctionne et comment effectuer des requêtes HTTP à partir de Curl et Java.
Conférence 5. Spring, Threads, AnnotationsPrésentation du framework Spring populaire, qui simplifie le développement d'applications Web.
Afin que les étudiants s'entraînent à travailler avec Spring, un hackathon en équipe aura lieu après la cinquième conférence. Pour un temps limité, vous devez développer un chat et le rendre aussi fonctionnel que possible. Si vous regardez le cours sur Youtube, vous pouvez faire un chat vous-même et l'expérimenter.
Conférences 6-7. Java + DB, HibernateVous apprendrez à travailler avec des bases de données. En cours à temps plein, nous avons augmenté les bases de données des étudiants sur AWS. Ceux qui suivent le cours en ligne, nous recommandons d'augmenter la base de données localement ou d'utiliser des bases de données en mémoire (H2).
Partie 3. Le jeu
Vous recevrez une tâche pour développer un jeu client-serveur Bomberman. Le client du jeu sur JS, créé sur la base du
projet de Matt Scala , réside dans un
référentiel séparé .
Une description formelle de l'interaction des services de jeux peut être trouvée
ici , mais voici un
diagramme visuel .
Conférence 8. Protocole WebSocket en duplex intégralPour la communication entre le client et le serveur, le jeu multijoueur est bien meilleur que HTTP, le protocole WebSocket full-duplex convient. Vous apprendrez à travailler avec et à refaire votre conversation écrite plus tôt sur la base de HTTP sur WebSocket. Malheureusement, il n'y a pas de vidéo de cette conférence sur Youtube, mais tous les documents sont disponibles sur Github.
Conférence 9. Architecture du jeuVous comprendrez la structure du jeu et le mécanisme d'interaction des services.
Partie 4. Sujets avancés
Dans cette partie, nous analysons deux sujets qui sont traditionnellement considérés comme avancés, mais tout développeur Java doit avoir une connaissance de base de ces sujets.
Conférences 10-11. Fils de jeu, accès simultané pratiqueLa leçon 10 illustre, avec des exemples, les dangers du développement multithread et, dans la leçon 11, les moyens de les contourner. Faites attention au
modèle de flux du service de jeu .
Conférence 12. Collecte des orduresVous apprendrez comment fonctionne le tas et comment fonctionne la collecte des ordures. Dans le même temps, les connaissances sur la structure des structures de données sont utilisées pour évaluer la disposition des objets.
Conférence 13. Questions d'entrevueLa dernière conférence du cours est consacrée à l'analyse des questions les plus populaires lors des entretiens Java (développeur junior-middle).
Informations générales sur le cours
Tous les supports de cours:
https://github.com/rybalkinsd/atomClient du jeu Bomberman:
https://github.com/rybalkinsd/atom-bomberman-frontendChaîne de cours dans Telegram - ici vous pouvez obtenir des réponses à toutes les questions liées au cours.
Veuillez noter qu'à la fin de certaines conférences, il y a une description des devoirs, et dans le code de la conférence, il y a des tests. Faites une demande de tirage au fil de la conférence. Si les tests pour travis sont verts, vous avez correctement effectué la tâche.
Les étudiants DZ suivant un cours en ligne ne sont pas vérifiés. Néanmoins, vous pouvez librement faire des demandes d'extraction au projet et voir si les tests de travis réussissent. De plus, vous pouvez poser des questions sur le cours dans le chat. Les auteurs apprécient vraiment les commentaires, en particulier sous la forme de demandes de tirage avec suggestions et corrections.
Les auteurs
Alexander Pomosov, ingénieur principal chez Alibaba
Sergey Rybalkin, ingénieur principal chez AlibabaRappel: le cours est accessible à tous sur notre chaîne pédagogique
Technostream . Vous pouvez
discuter avec d'autres participants et poser des questions aux enseignants dans les commentaires sous la liste de lecture du cours et
discuter dans Telegram .
La programmation est de l'ingénierie, beaucoup plus ouverte à l'expérimentation que les autres domaines de l'ingénierie. Faites votre projet, expérimentez-le et vous obtiendrez non seulement de l'expérience, mais aussi beaucoup de plaisir!