Schüler und Lehrer unterscheiden sich völlig voneinander. Einige wollen das Leben genießen, andere stören sich ständig daran. Sie zwingen sich alle sechs Monate, sich wieder hinzusetzen, die Vorträge erneut zu lesen, mehrere Tage nicht zu schlafen und Kaffee intravenös zu injizieren.
Natürlich sind die Menschen anders, es spricht eher von Stereotypen. Als ich ein Student war, hätte ich nie gedacht, dass ich anfangen würde zu unterrichten, und ich hätte nicht gedacht, dass ich zur Graduiertenschule gehen würde und hätte mir überhaupt nicht viel vorgestellt. Aber 8 Stunden am Tag am Arbeitsplatz zu sitzen und dann nach Hause zu kommen und durch das Sofa zu schieben, ist zu langweilig. So wird das ganze Leben damit verbracht, die nächste Staffel des Game of Thrones oder eine Party in Dotka zu sehen.
Meine Erfahrung als Lehrer ist bescheiden - nur 2 Jahre. Aber in den 2 Jahren gab es eine interessante Erfahrung, die ich teilen wollte. Der Artikel erwies sich als lang und ungeduldig kann bis zum Ende schauen, wo der trockene Rückstand, der als Ergebnis von Versuch und Irrtum erhalten wurde, angegeben wird.
Wie repräsentieren Menschen normalerweise einen Universitätsprofessor? Ein Erwachsener, eine ernsthafte Person mit großer Lebenserfahrung, deren Autorität unerschütterlich ist. Dies ist besonders bei Lehrern der exakten Wissenschaften zu spüren. Ein neuer Student passt jedoch überhaupt nicht zu dieser Beschreibung. Das hat aber nichts zu bedeuten. Warum nicht die Stereotypen brechen und stattdessen mit großen Augen die Erfahrungen dieser hoch entwickelten Lehrer betrachten, gehen Sie Ihren eigenen Weg? Sich zu weigern, die besten Praktiken zu lernen, ist eine dumme Idee, aber es gibt etwas in diesen Menschen, von dem es sich zu lernen lohnt. Aber es gibt noch einen anderen, den Hauptfeind der Neuheit - Gewohnheiten.
Programmierung ist keine Mat. Analyse. (Kappe ist irgendwo in der Nähe). Die mathematischen Wissenschaften sind ein viel reiferes Gebiet. Die meisten Gesetze sind bereits bekannt. Es gibt viel weniger offene Fragen als bei der Programmierung. Das Programmieren ist ein sehr dynamischer Bereich, es gibt keinen Platz für Gewohnheiten. Es ist zu viel, um sich an etwas zu halten, und Sie fallen einfach aus der Realität heraus.
Ich hatte Glück, dass unsere Gruppe im 2. Jahr, als uns objektorientiertes Programmieren beigebracht wurde, einem jungen Lehrer zugewiesen wurde. Er war aktiv, prinzipiell, perfektionistisch und ziemlich kompetent im Schreiben von Code. Anstatt nur die Labore zu akzeptieren, die funktionieren, ließ er ihn Code schreiben, für den er sich jetzt nicht schämt.
Wenn er nicht gewesen wäre, hätten wir alle bei der Arbeit gelernt, was „magische Konstanten“ sind, warum Sie eine Variable zurückgeben müssen (und den unären Operator nicht dorthin schieben müssen), warum Sie währenddessen keine kräftigen Konstrukte schreiben können, wie man mit der Benutzeroberfläche arbeitet Warum sollte in Java in C ++ alles mit einem konstanten Zeiger übergeben werden? Im Allgemeinen handelt es sich bei den meisten Beispielen im Internet um einen seltenen Bydcode, der in der Produktion nicht verwendet werden kann. Und das ist normal, weil er ein Beispiel dafür ist, um die Code-Arbeit so klar wie möglich und ohne Komplikationen zu zeigen.
Und selbst wenn wir in der Nacht vom 30. auf den 31. Januar die ganze Nacht nicht geschlafen und den Code geschrieben haben und am 31. Januar in die Labore gegangen sind, konnte unsere Gruppe dem Rest des Streams weit voraus sein.
Es war keine primitive Nacherzählung eines Lehrbuchs, keine nicht initialisierte Übernahme von Laborbüchern, es war genau das, was Sie brauchten - Interessanterweise, schwierig, haben Sie verstanden, wie viel Sie gepumpt haben. Sie hatten Lust, an Steroiden zuzunehmen.
Nachdem ich Lehrer geworden war, beschloss ich, das Beste von allen zu übernehmen und mit meinem „Trick“ hinzuzufügen.
Federtest
Du kommst zur Schule und sie sagen dir, du sollst die Pest vergessen, die deine Eltern dir beigebracht haben, du kommst zur Universität, sie sagen dir - vergiss alles, was dir in der Schule beigebracht wurde, du kommst zur Arbeit, sie sagen dir - vergiss alles, was dir an der Universität beigebracht wurde.
Erinnern wir uns daran, was uns nach dem Studium bei der Arbeit beigebracht wurde.
Hier ist eine Liste, die ich über mich selbst erstellt habe:
- Git
- Jira \ Redmine \ Trello
- Codeüberprüfung
- Abhängigkeitsinjektion
- Unit Testing
- CI \ CD
- Arbeiten Sie mit der Datenbank (wir haben gelernt, Abfragen zu schreiben, aber nicht in Java zu verwenden).
- Datenbankmigration
- ORM
Aber das ist es, was an der Oberfläche liegt, und wenn Sie tiefer graben, wird die Liste erweitert:
- Docker
- K8S
- Micro Service-Architektur
Einiges davon wurde erzählt, andere nicht. Ja, uns wurde gesagt, wie die Post-Anfrage angeordnet ist. Zu irgendeinem Thema wurde über Json gesprochen. In Java haben wir sogar mit Sockets gearbeitet. Aber alles hatte nichts mit echten Aufgaben zu tun. Und ein gewöhnlicher Schüler würde diese Dinge mit seiner üblichen Methode stopfen, eine Prüfung ablegen und dann vergessen und sich dann wieder in Stücken daran erinnern, wann er zur Arbeit kam.
Wir können sagen, dass die Schüler selbst schuld sind. Aber dann können wir sagen, dass die Programmierer selbst für Fehler verantwortlich sind. Schlagen Sie sie im Allgemeinen mit einer Peitsche und lassen Sie sie dies sofort auf normale Weise tun.
Aber nein, das ist Realität, es ist nicht perfekt, und deshalb stellen sie Tester ein und zwingen sie, Unit-Tests zu schreiben. Wenn ein Ding nicht ausgerottet wird, bleibt es nur, sich daran anzupassen.
Ein weiterer wichtiger Punkt ist die Begeisterung des Lehrers. Viele lehren bereits durch Trägheit. Sie sind daran gewöhnt: Von Jahr zu Jahr passiert dasselbe. Aber die Schüler spüren es. Und deshalb fällt ohne diese schwache Motivation die 0-Marke unter. Wenn sich die Sitzung nähert, beginnt diese Leiste zu wachsen. Es ist schade, dass nicht alle Schüler rechtzeitig die volle Tiefe ihrer Situation erkennen.
Insgesamt gibt es 2 globale Probleme:
- Motivationsproblem
- Irrelevanz / Fragmentierung des bereitgestellten Wissens
Wir werden entscheiden! Nicht alles war wie geplant erfolgreich, aber letztendlich erfolgreich.
Als ich in der ersten Stunde ankam, zwang ich alle, sich für bitbucket anzumelden. Zu dieser Zeit war es der erste Kurs. Das Fach hieß "Informatik". Der Vortragende selbst sagte, dass wir über alles sprechen können, was dieses Wort wiedergibt.
Das Thema war, kleine Labore auf * nix Shell zu betreiben. Die Schüler spucken lange darüber, wie man den Git benutzt. Besonders Konsolengit. Aber wie es mir am Ende des Semesters schien, haben sie Feuer gefangen.
Wir haben einen Chatroom in VK eingerichtet, dort habe ich Artikel zu diesem Thema abgeladen, Fragen beantwortet. Und es ist wirklich praktisch. Nicht 100500 Mal wiederholen. Und wenn sich eine Person nicht die Mühe macht zu lesen, senden Sie einfach die Nachricht an sie.
Zu diesem Thema habe ich beschlossen, ein wenig über CI \ CD, Unit Testing, Code Review zu sprechen. Es war schwierig, ich musste 1000 Mal eine Frage stellen - hast du das verstanden? Ich musste mich von meinen Ansichten leiten lassen. Für die Antwort war immer "Ja". Aber in den Augen lesen Sie einen völligen Mangel an Verständnis.
Die Paare, auf denen ich am Computer saß und deutlich etwas zeigte, liefen viel besser. Es scheint einen kleinen PowerShell-Befehl zu schreiben, der Chrome schließt. Eine Kleinigkeit, aber für einen Neuling sieht es nach Magie aus. In solchen Momenten wurden die Jungs interessiert.
Eine weitere Bedingung des Dozenten - es war notwendig, Präsentationen zu halten. Ich persönlich wollte dies nicht für das ganze Semester mit ein paar Notizen darüber verlängern, wer bestanden hat und wer nicht.
Ich hatte den Vorschlag, die Präsentation der Präsentationen zentral zu gestalten. Wir wählen die Zeit, zu der es für alle günstig ist. Wir reservieren ein Büro für den gesamten Samstag / Freitag. Ich habe Pizza \ Kuchen \ Tee \ Kaffee von den Präsentationsleuten. Überraschenderweise war die Frau, mit der ich mich auf den Vorbehalt des Kabinetts geeinigt hatte, nicht dagegen. Dieses Format war besonders bei den Jungs beliebt. Alle sechs Monate 2-3 Tausend zu verbringen ist kein gutes Geld, und die Jungs erinnerten sich für immer.
Füllkegel
Nach dem Ende des ersten Kurses wurde ich von den Jungs aufgefordert, sich zu organisieren und eine Art Spielzeug zu schreiben. Und dann kamen die Jungs auch auf diese Idee. Die Umsetzung ist aber leider nicht. Zur Umsetzung des Plans wurde die Unreal Engine ausgewählt. Das Argument ist einfach: Es verwendet eine Syntax, die C ++ sehr nahe kommt, und da die Jungs sie im nächsten Semester hätten studieren sollen, hilft es ihnen zumindest im nächsten Semester, wenn sie nichts Wertvolles schreiben.
Ich habe angeboten, kleine Vorlesungen über C ++ in einem Online-Format zu halten und dann mit der Implementierung fortzufahren. Das Problem ist, dass ich mich selbst auf .Net entwickle und C ++ völlig vergessen habe. Ich musste mich erinnern, es dauerte einige Zeit. Ehrlich gesagt gab es auch nicht genug Zeit, um Unreal zu lernen. Aber in diesem Sommer begannen viele der Leute, die nach und nach reagierten, sich zusammenzuschließen. Aber die Routine zog mich auch an: Reparaturen im Landhaus meiner Eltern, Wunsch, den Sommer zu genießen, der Wechsel der Firma fiel auch mit dieser Zeit zusammen, Urlaub. Im Allgemeinen stellte sich heraus, dass ich meine ganze Energie für andere gleich wichtige Angelegenheiten aufgewendet habe. Das Ergebnis waren ein paar magere Vorträge, ein paar Zeilen toten Codes, in die Sie keinen Zauberstab stecken wollen.
Betroffen und die Verteilung des Teams. Alle sind zu unterschiedlichen Zeiten verfügbar, jemand ignoriert nur Nachrichten usw. Um Menschen im Internet zu motivieren, benötigen Sie im Allgemeinen: erstens andere Mittel, zweitens Erfahrung mit einem verteilten Team (das ich nicht habe) und drittens viel mehr Begeisterung. Nun, mangelndes Ergebnis ist auch ein Ergebnis. Ich für meinen Teil möchte mich bei den Jungs bedanken, Sie sind großartig, aber ich habe Schlussfolgerungen gezogen und werde versuchen, Fehler nicht zu wiederholen.
Trotzdem ist Informatik nicht ganz das Thema, das ich gerne leiten würde. Die Position des Dozenten und des Dekanats ist sehr loyal, auch wenn der Student etwas getan hat, sah er aus wie ein Paar. Im Allgemeinen ist dies richtig, die Themen sind nicht alle gleich wichtig. Und die Wichtigkeit hängt von der Spezialität ab. Es wäre seltsam zu bedenken, dass die Kultur der Sprache für Programmierer genauso wichtig ist wie Mat. Analyse oder OOP. Oder um Geisteswissenschaftler zu zwingen, tagelang an Physiklabors teilzunehmen. Aber ich wollte eine verantwortungsvollere Rolle.
Schwung gewinnen
Der OOP-Unterricht hat also begonnen. Wie in der Informatik haben sich die Studenten bei Bitbucket angemeldet. Es gab jedoch noch einige Neuerungen.
Jetzt haben die Jungs Pull-Anfragen erstellt und als Antwort Code-Kommentare erhalten. Und ja, sie mussten das erste Labor für 2 Monate in Anspruch nehmen, bis es die Mindestanforderungen für das Code-Design erfüllte
Wir haben Trello für jede Aufgabe ein eigenes Board (es gab 5 davon). Der Name der Aufgabe ist der vollständige Name des Schülers. Als Ergebnis stellte sich heraus, dass die Jungs eine Vorstellung vom Task-Tracker und den Kanban-Boards haben.
In Paaren lag der Fokus nicht nur darauf, wie man seine Klasse schreibt. Im Gegenteil, wie man eine solche Architektur so macht, dass sie leicht erweitert werden kann. Viel Aufmerksamkeit wurde den Prinzipien von OOP, SOLID Prinzipien gewidmet. Mehrmals musste ich das Prinzip der virtuellen Funktionen wiederholen.
Zu Beginn des Paares - ein kleiner Test zu den vorherigen Themen. Ich habe keine Bewertungen abgegeben. Dies ist für die Motivation notwendig. Wenn ein Schüler abschreibt, ist es schließlich wahrscheinlich, dass er sich daran erinnert, es versteht und es in seinem Kopf aufschiebt. Hier hat mir geholfen, dass ich selbst vor nicht allzu langer Zeit an ihrer Stelle war und ich erinnere mich, wie das alles funktioniert. Im Allgemeinen sind 5 Minuten eine gute Sache, und für mich ist es eher eine Motivation als eine Art der Kontrolle.
Irgendwann ging mir das Wissen aus und es war notwendig, etwas zu erzählen - es gab das Gefühl, dass viele weitere ungesagt waren.
Ok Google, Fragen für ein C ++ - Interview. Wählen Sie eine Liste für Junior. Wir lesen die Fragen und Antworten. Voila, pumpte sich, pumpte Studenten.
Aufgrund der Arbeit wurden einige Paare vermisst. Sie mussten wiederhergestellt werden, da sich die Änderung hinzog. Der gleiche Pizzaempfang kam zur Rettung. Wir waren uns einig, dass wir einen Ort und eine Zeit wählen würden, um uns hinzusetzen, Essen zu bestellen, den ganzen Tag zu überspringen und dadurch die Pässe wiederherzustellen, und die Studenten hätten theoretisch +1 für die Labore erhalten müssen, die sie übergeben hatten. Ich half, beantwortete Fragen.
Infolgedessen stellte sich heraus, dass es nicht ganz so war, es wurde problematisch, den ganzen Tag zuzuteilen, sie dauerten 2 bis 0,5. Es ist auch nicht schlecht, obwohl ich erwartet habe, dass es mehr Antrieb geben wird. Trotzdem war und war es 1-2 mal nicht schlecht. Schließlich macht es nicht jeder gleich beim ersten Mal richtig, oder? Ok, noch eine kleine Erfahrung.
Unterwegs brachte er die Jungs für +1 Punkte dazu, sich mit Dependency Injection in C ++ zu befassen. Ich muss sagen, einige haben es herausgefunden. Im Allgemeinen sind die Schüler gut gemacht. Die beiden machten sogar sehr coole Spielzeuge mit einer GUI-Oberfläche und guter Architektur. Und man hat sogar Qt herausgefunden. Am Ende habe ich es geschafft, alle Schüler zusammenzudrücken und sie dazu zu bringen, alles zu bestehen, was für die Zulassung zu den Prüfungen erforderlich ist. Die Statistiken sind ziemlich gut geworden.
Ein neues Semester begann und es begann mit einem Paar im Mitap-Format. Die erste Aufgabe des Dozenten war das Säen. Primitiver Datei-Parser und Ausgabe im CSV-Format.
Sie kamen, schalteten den Projektor ein und war 1,5 Stunden lang zusammen auf dem Knie. Sie warfen eine Lösung, in der es noch etwas zu straffen gab, aber im Allgemeinen war der Rahmen fertig. Meiner Meinung nach sollten die Schüler sehen, wie es funktioniert, wie man darüber nachdenkt usw. Das Mitap-Format ist genau das, was Sie brauchen. Aus diesem Grund beobachteten Erstsemester mit großem Interesse, wie der Browser nach dem nächsten Befehl in der Konsole geschlossen wird. Es ist klar und interessant. Für mich ist dieses Format eine Entwicklung wert.
Zusammenfassend
Dies ist nur meine Vision, es mag nicht wahr sein, aber den Schülern hat es gefallen:
- Wir verwenden Git und sorgen dafür, dass es mit Zweigen, Pull-Anfragen usw. funktioniert.
- Erstellen Sie Trello und verfolgen Sie dort Aufgaben. Wir bringen den Schülern bei, die Aufgabe in CR zu verschieben, da sie sonst nicht überwacht wird.
- Wir verbringen 5 Minuten damit, die Schüler zu motivieren, sich an das zu erinnern, was sie nicht wussten. Es ist nicht für alle angenehm zu denken, aber für manche ist es sogar schmerzhaft, aber es ist besser, sich während des Semesters daran zu gewöhnen.
- Fragen zur Vorbereitung == Fragen für ein Vorstellungsgespräch für eine Juniorposition
- Wir bringen Sie dazu, sich mit Abhängigkeitsinjektion, Unit-Tests und anderen Realitäten der modernen Entwicklung zu befassen
- Wir führen paarweise Mitaps durch. Lassen Sie die Schüler nach dem Seminar wiederholen, bevor Sie ein Meisterwerk zeichnen. Der Künstler muss zeichnen, was andere hunderte Male gemalt haben.
- Wir organisieren Mini-Hackathons, kaufen Pizza / Säfte und bringen den Schülern bei, eine tolle Zeit zu haben
- Im Allgemeinen versuchen wir alles wie im Leben zu tun.
So etwas stelle ich mir ein Training in Entwicklung vor. Was denkst du? Immer offen für neue Ideen, machen wir es noch besser!