Der Java-Entwicklungskurs von Mail.Ru Group auf dem Technostream-Kanal



In diesem Frühjahr haben wir eine Aufzeichnung des Java-Kurses auf dem Technostream-Kanal veröffentlicht. Seit mehreren Semestern hintereinander liest er im Rahmen des von der Mail.Ru Group zusammen mit der Moscow State University durchgeführten Bildungsprojekts Technosphere . M. V. Lomonosov. Der Kurs enthält alle Themen, die ein Anfänger in der Java-Welt benötigt. Die Autoren gehen nicht auf die Details der Syntax ein, sondern übernehmen sofort praktische Aufgaben: Entwicklung eines Spiels mit Konsolenschnittstelle und funktionalem Chat. Am Ende des Kurses diskutieren wir häufig gestellte Fragen aus Interviews für Junior- und mittlere Java-Entwicklerpositionen.

Vorlesungsunterlagen und Kursmaterialien sind kostenlos und für jedermann verfügbar.

Die meisten Hausaufgaben können im Kurs-Repository erledigt und überprüft werden.

Für wen


Es wird davon ausgegangen, dass die Schüler nicht auf Java gestoßen sind, sondern mit jeder modernen Programmiersprache (JS / Python / C # / C / C ++) und den Grundlagen von OOP vertraut sind.

Dauer


Der Kurs besteht aus 3 Teilen, umfasst 13 Vorträge und 1 Hackathon. Die Vorlesungsdauer beträgt 1-2 Stunden.

Kursinhalt


Teil 1. Einführung in die Java-Entwicklung


Vorlesung 1. Java Intro 1
In der ersten Vorlesung werden Sie schnell mit der Syntax der Sprache vertraut und verstehen HelloWorld. Der Kurs basiert auf Github. In der ersten Lektion lernen Sie, wie Sie mit Git arbeiten, ein Projekt mit Gradle erstellen und eine Pull-Anfrage für Github stellen.

Vorlesung 2. Java Intro 2
Bekanntschaft mit dem Sprachobjektmodell.

Vorlesung 3. Generika & Sammlungen
Vertrautheit mit Sammlungen und Ausnahmen.

DZ
Basierend auf den Ergebnissen von drei Vorträgen erhalten Sie die Aufgabe: ein kleines Spiel mit einer Konsolenschnittstelle (Bullen und Kühe) zu entwickeln. Diejenigen, die den Kurs auf Youtube besuchen, empfehlen Ihnen, diese Aufgabe definitiv zu erledigen, um mit dem Material in der Praxis fertig zu werden. Mit Händen zu tun ist kein Video auf Youtube zu sehen;)

Teil 2. Webdienste


Java ist eine Industriesprache, die den Bereich großer Webanwendungen dominiert. Im zweiten Teil lernen Sie, wie Sie Webdienste erstellen.

Vorlesung 4. Webgrundlagen
Sie erfahren, wie HTTP funktioniert und wie Sie HTTP-Anforderungen von Curl und Java stellen.

Vorlesung 5. Feder, Themen, Anmerkungen
Einführung des beliebten Spring-Frameworks, das die Entwicklung von Webanwendungen vereinfacht.

Damit die Schüler die Arbeit mit Spring üben können, findet nach der fünften Vorlesung ein Team-Hackathon statt. Für eine begrenzte Zeit müssen Sie einen Chat entwickeln und ihn so funktional wie möglich gestalten. Wenn Sie den Kurs auf Youtube sehen, können Sie selbst chatten und damit experimentieren.

Vorlesungen 6-7. Java + DB, Ruhezustand
Sie lernen, wie Sie mit Datenbanken arbeiten. Im Vollzeitkurs haben wir Studentendatenbanken auf AWS erstellt. Für diejenigen, die den Kurs online belegen, empfehlen wir, die Datenbank lokal zu erhöhen oder In-Memory-Datenbanken (H2) zu verwenden.

Teil 3. Das Spiel


Sie erhalten die Aufgabe, ein Bomberman-Client-Server-Spiel zu entwickeln. Der Client des Spiels auf JS, das auf der Grundlage des Projekts von Matt Scala erstellt wurde , befindet sich in einem separaten Repository .

Eine formale Beschreibung der Interaktion von Spieldiensten finden Sie hier , aber hier ist ein visuelles Diagramm .

Vorlesung 8. Vollduplex-WebSocket-Protokoll
Für die Kommunikation zwischen Client und Server ist das Multiplayer-Spiel viel besser als HTTP, das Vollduplex-WebSocket-Protokoll ist geeignet. Sie lernen, wie Sie damit arbeiten und Ihren zuvor auf HTTP in WebSocket basierenden Chat neu erstellen. Leider gibt es auf Youtube kein Video zu dieser Vorlesung, aber alle Materialien sind auf Github verfügbar.

Vorlesung 9. Spielarchitektur
Sie werden die Struktur des Spiels und den Mechanismus der Interaktion von Diensten verstehen.

Teil 4. Fortgeschrittene Themen


In diesem Teil analysieren wir zwei Themen, die traditionell als fortgeschritten gelten. Jeder Java-Entwickler sollte jedoch über Grundkenntnisse in diesen Themen verfügen.

Vorlesungen 10-11. Spielthreads, Praktische Parallelität
Vorlesung 10 zeigt anhand von Beispielen die Gefahren der Multithread-Entwicklung und in Vorlesung 11 Möglichkeiten, diese zu umgehen. Achten Sie auf das Stream-Modell des Spieledienstes .

Vorlesung 12. Müllabfuhr
Sie erfahren, wie Heap funktioniert und wie die Speicherbereinigung funktioniert. Gleichzeitig wird das Wissen über die Struktur von Datenstrukturen verwendet, um das Layout von Objekten zu bewerten.

Vorlesung 13. Interviewfragen
Die letzte Vorlesung des Kurses ist der Analyse der beliebtesten Fragen bei Java-Interviews (Junior-Middle-Entwickler) gewidmet.

Allgemeine Kursinformationen


Alle Kursmaterialien: https://github.com/rybalkinsd/atom

Bomberman Game Client: https://github.com/rybalkinsd/atom-bomberman-frontend

Kurskanal in Telegramm - hier erhalten Sie Antworten auf alle Fragen zum Kurs.

Bitte beachten Sie, dass am Ende einiger Vorlesungen eine Beschreibung der Hausaufgaben steht und im Vorlesungscode Tests enthalten sind. Stellen Sie eine Pull-Anfrage an den Vorlesungsthread. Wenn die Tests für Travis grün sind, haben Sie die Aufgabe korrekt abgeschlossen.

DZ-Studenten, die einen Online-Kurs belegen, werden nicht überprüft. Sie können jedoch frei Pull-Anfragen an das Projekt stellen und prüfen, ob die Tests für Travis erfolgreich bestanden wurden. Darüber hinaus können Sie im Chat Fragen zum Kurs stellen. Die Autoren schätzen das Feedback sehr, insbesondere in Form von Pull-Anfragen mit Vorschlägen und Korrekturen.

Die Autoren



Alexander Pomosov, leitender Ingenieur bei Alibaba


Sergey Rybalkin, Hauptingenieur bei Alibaba

Rückruf: Der Kurs steht allen auf unserem Bildungskanal Technostream zur Verfügung . Sie können mit anderen Teilnehmern chatten und den Lehrern in den Kommentaren unter der Kurswiedergabeliste Fragen stellen und im Telegramm chatten .

Programmierung ist Ingenieurwesen, viel offener für Experimente als andere Bereiche des Ingenieurwesens. Machen Sie Ihr Projekt, experimentieren Sie damit und Sie erhalten nicht nur Erfahrung, sondern auch viel Spaß!

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


All Articles