
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 1In 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 2Bekanntschaft mit dem Sprachobjektmodell.
Vorlesung 3. Generika & SammlungenVertrautheit mit Sammlungen und Ausnahmen.
DZBasierend 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. WebgrundlagenSie erfahren, wie HTTP funktioniert und wie Sie HTTP-Anforderungen von Curl und Java stellen.
Vorlesung 5. Feder, Themen, AnmerkungenEinfü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, RuhezustandSie 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-ProtokollFü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. SpielarchitekturSie 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ätVorlesung 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üllabfuhrSie 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. InterviewfragenDie 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/atomBomberman Game Client:
https://github.com/rybalkinsd/atom-bomberman-frontendKurskanal 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 AlibabaRü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ß!