Les élèves et les enseignants sont complètement différents les uns des autres. Certains veulent profiter de la vie, tandis que d'autres interfèrent constamment avec cela. Ils forcent tous les six mois à se rasseoir, relisent les conférences, ne dorment pas pendant plusieurs jours et injectent du café par voie intraveineuse.
Bien sûr, les gens sont différents, cela parle plutôt de stéréotypes. Quand j'étais étudiant, je n'ai jamais pensé que je commencerais à enseigner, et je ne pensais pas que j'irais aux études supérieures et je n'imaginais pas grand-chose du tout. Mais rester assis au travail 8 heures par jour, puis rentrer à la maison et pousser à travers le canapé est trop ennuyeux. Ainsi, toute la vie sera consacrée à regarder la prochaine saison de Game of Thrones ou une fête à Dotka.
Mon expérience en tant que professeur est modeste - seulement 2 ans. Mais au cours des 2 années, il y a eu une expérience intéressante que je voulais partager. L'article s'est avéré long et impatient peut regarder à la toute fin, où le résidu sec obtenu à la suite d'essais et d'erreurs est donné.
Comment les gens représentent-ils généralement un professeur d'université? Un adulte, une personne sérieuse, avec une grande expérience de vie, dont l'autorité est inébranlable. Cela se ressent surtout chez les professeurs de sciences exactes. Mais un étudiant récent ne correspond pas du tout à cette description. Mais cela ne veut rien dire. Pourquoi ne pas briser les stéréotypes et, à la place, avec des yeux exorbités pour regarder les expériences de ces enseignants très sophistiqués, suivre votre propre chemin? Refuser d'apprendre les meilleures pratiques est une idée stupide, mais il y a quelque chose chez ces personnes qui mérite d'être appris. Mais il y en a un autre, le principal ennemi de la nouveauté: les habitudes.
La programmation n'est pas un Mat. Analyse. (Cap est quelque part à proximité). Les sciences mathématiques sont un domaine beaucoup plus mature. La plupart des lois sont déjà connues. Il y a beaucoup moins de questions ouvertes que dans la programmation. La programmation est un domaine très dynamique, il n'y a pas de place pour les habitudes. C’est trop de s’en tenir à quelque chose, et tu tombes de la réalité.
J'ai eu de la chance, en 2e année, quand on nous a enseigné la programmation orientée objet, notre groupe a été assigné à un jeune professeur. Il était actif, de principe, perfectionniste et assez compétent pour écrire du code. Au lieu d'accepter simplement les laboratoires qui fonctionnent, il m'a forcé à écrire du code, pour lequel ce n'est pas dommage même maintenant.
Si ce n'était pas pour lui, nous tous au travail aurions appris ce que sont les «constantes magiques», pourquoi vous devez renvoyer une variable en retour (et ne pas y pousser l'opérateur unaire), pourquoi vous ne pouvez pas écrire de constructions lourdes pendant, comment travailler avec l'interface utilisateur en Java, pourquoi en C ++ tout devrait être passé par un pointeur constant. En général, la plupart des exemples sur Internet sont un bydcode rare qui ne peut pas être utilisé en production. Et c'est normal, car il en est un exemple, afin de montrer le code le plus clairement possible sans complications.
Et même si nous ne dormions pas et écrivions le code toute la nuit dans la nuit du 30 au 31 janvier, et que nous allions dans des laboratoires le 31, cela permettait à notre groupe d'être bien en avance sur le reste du flux.
Ce n'était pas un récit primitif du manuel, pas une adoption non initialisée de manuels de laboratoire, c'était juste ce dont vous aviez besoin - Fait intéressant, difficile, vous avez compris combien vous pompiez. Vous aviez envie de commencer à prendre du poids avec des stéroïdes.
Et donc, devenu professeur, j'ai décidé d'adopter le meilleur de tout le monde et d'ajouter avec mon «truc».
Test de plumes
Vous venez à l'école et ils vous disent d'oublier tout le fléau que vos parents vous ont enseigné, vous venez à l'université, ils vous disent - oubliez tout ce qu'on vous a enseigné à l'école, vous venez travailler, ils vous disent - oubliez tout ce qu'on vous a enseigné à l'université.
Rappelons-nous ce qu'on nous a enseigné au travail après l'université.
Voici une liste que j'ai faite de moi:
- Git
- Jira \ Redmine \ Trello
- Examen du code
- Injection de dépendance
- Tests unitaires
- CI \ CD
- Travailler avec la base de données (on nous a appris à écrire des requêtes, mais pas à les utiliser en Java)
- Migration de la base de données
- ORM
Mais c'est ce qui se trouve à la surface, et si vous creusez plus profondément, la liste s'allongera:
- Docker
- K8S
- Architecture de micro-service
Une partie de cela a été racontée, mais d'autres non. Oui, on nous a dit comment la demande de poste est organisée. Sur un sujet parlé de Json. Et en Java, nous avons même travaillé avec des sockets. Mais tout était déconnecté des tâches réelles. Et un étudiant ordinaire entasserait ces choses de la manière habituelle, passerait un examen, puis oublierait, puis se souviendrait de nouveau morceau par morceau quand il serait venu travailler.
On peut dire que les étudiants eux-mêmes sont à blâmer. Mais alors nous pouvons dire que les programmeurs eux-mêmes sont à blâmer pour les bugs. En général, battez-les avec un fouet et laissez-les le faire immédiatement de manière normale.
Mais non, c'est la réalité, ce n'est pas parfait, et donc ils embauchent des testeurs et les forcent à écrire des tests unitaires. Si une chose n'est pas éradiquée, il ne reste plus qu'à s'y adapter.
Un autre point important est l'enthousiasme de l'enseignant. Beaucoup enseignent déjà par inertie. Ils y sont habitués: d'année en année, la même chose se produit. Mais les étudiants le ressentent. Et donc sans cette faible motivation tombe en dessous de la marque 0. À mesure que la session approche, cette barre commence à grandir. Il est dommage que tous les élèves à temps ne réalisent pas toute la profondeur de leur situation.
Au total, il y a 2 problèmes mondiaux:
- Problème de motivation
- Non pertinence / fragmentation des connaissances fournies
Nous déciderons! Tout n'a pas réussi comme prévu, mais a finalement réussi.
En arrivant à la première leçon, j'ai forcé tout le monde à s'inscrire à bitbucket. À cette époque, c'était le premier cours. Le sujet s'appelait "Informatique". Le conférencier lui-même a dit que nous pouvons parler de tout ce qui fait écho à ce mot.
Le sujet consistait à exécuter de petits laboratoires sur le shell * nix. Les élèves crachent sur la façon d'utiliser le git pendant une longue période. Surtout console git. Mais comme il me semblait à la fin du semestre, ils ont pris feu.
Nous avons créé une salle de chat en VK, là j'ai jeté des articles sur le sujet, répondu aux questions. Et c'est vraiment pratique. Ne répétez pas 100500 fois. Et si une personne ne prend pas la peine de lire, envoyez-lui simplement le message.
Sur le sujet, j'ai décidé de parler un peu de CI \ CD, tests unitaires, révision de code. C'était difficile, j'ai dû poser une question 1000 fois - avez-vous compris cela? Je devais être guidé par mes opinions. Car la réponse était toujours «oui». Mais dans les yeux lire un manque total de compréhension.
Les couples sur lesquels je me suis assis devant l'ordinateur et ont clairement montré quelque chose, se sont beaucoup mieux passés. Il semble écrire une petite commande PowerShell qui ferme Chrome. Un peu, mais pour un étudiant de première année, cela ressemble à de la magie. À de tels moments, les gars se sont intéressés.
Une autre condition du conférencier - il était nécessaire de faire des présentations. Personnellement, je ne voulais pas étirer cela pendant tout le semestre avec un tas de notes sur qui a réussi et qui n'a pas réussi.
J'ai proposé de centraliser la présentation des présentations. Nous choisissons le moment où cela convient à tout le monde, nous réservons un bureau pour tout le samedi \ vendredi, j'ai des pizzas \ gâteaux \ thé \ café, des gars de la présentation. Étonnamment, la femme avec qui j'étais d'accord sur la réserve du cabinet n'était pas opposée. Ce format était particulièrement populaire pour les gars. Dépenser tous les six mois, 2 à 3 000 personnes, ce n'est pas beaucoup d'argent, et les gars s'en souviennent pour toujours.
Cônes de farce
Après la fin du premier cours, j'ai été incité par les gars à essayer de s'organiser et d'écrire une sorte de jouet. Et puis les gars ont aussi eu cette idée. Mais la mise en œuvre, malheureusement, ne l'est pas. Pour mettre en œuvre le plan, le moteur Unreal a été choisi. L'argument est simple - il utilise une syntaxe très proche de C ++, et puisque les gars auraient dû l'étudier au prochain semestre, alors s'ils n'écrivent rien de valable, alors au moins cela les aidera au prochain semestre.
J'ai proposé de donner de petites conférences sur C ++ dans un format en ligne, puis de procéder à la mise en œuvre. Le problème est que je développe moi-même sur .Net et j'ai complètement oublié C ++. Je devais me souvenir, ça prenait du temps. Franchement, il n'y avait pas non plus assez de temps pour apprendre Unreal. Mais cet été, de nombreux gars qui ont répondu ont progressivement commencé à fusionner. Mais la routine m'a aussi entraîné: des réparations dans ma maison de campagne par mes parents, une envie de profiter de l'été, un changement de société a également coïncidé avec cette période, des vacances. En général, il s'est avéré que j'ai consacré toute mon énergie à d'autres questions tout aussi importantes. Le résultat a été quelques maigres conférences, quelques lignes de code mort, dans lesquelles vous ne voudrez pas pousser la baguette.
Affecté et répartition de l'équipe. Tous sont disponibles à des moments différents, quelqu'un ignore simplement les messages, etc. En général, pour motiver les internautes, il faut: premièrement, d'autres moyens, deuxièmement, une expérience avec une équipe distribuée (que je n'ai pas), et troisièmement, beaucoup plus d'enthousiasme. Eh bien, le manque de résultat est aussi un résultat. Pour ma part, je veux dire merci aux gars, vous êtes super, mais j'ai tiré des conclusions et j'essaierai de ne pas répéter les erreurs.
Néanmoins, l'informatique n'est pas tout à fait le sujet que j'aimerais aborder. La position du professeur et du bureau du doyen est très fidèle, même si l'étudiant a fait quelque chose, il ressemblait à un couple. En général, c'est correct, les sujets ne sont pas tous également importants. Et l'importance dépend de la spécialité. Il serait étrange de considérer que la culture de la parole est aussi importante pour les programmeurs que Mat. Analyse ou POO. Ou pour forcer les étudiants en sciences humaines à passer des laboratoires de physique pendant des jours. Mais je voulais un rôle plus responsable.
Prendre de l'élan
Ainsi, les cours sur la POO ont commencé. Comme pour l'informatique, les étudiants se sont inscrits sur Bitbucket. Mais il y avait encore quelques innovations.
Maintenant, les gars ont créé des demandes Pull et ont reçu des commentaires de code en réponse. Et oui, ils ont dû prendre le premier laboratoire pendant 2 mois, jusqu'à ce qu'il commence à satisfaire aux exigences minimales de conception de code
Nous avons obtenu Trello, pour chaque tâche, son propre tableau (il y en avait 5), le nom de la tâche est le nom complet de l'élève. En conséquence, cela s'est avéré clairement, et maintenant les gars ont une idée du tracker de tâches et des tableaux de kanban.
En binôme, l'accent n'était pas seulement sur la façon d'écrire votre classe. Au contraire, sur la façon de faire une telle architecture pour qu'elle puisse facilement être développée. Une grande attention a été accordée aux principes de la POO, principes SOLIDES. Plusieurs fois, j'ai dû répéter le principe des fonctions virtuelles.
Au début de la paire - un petit test sur les sujets précédents. Je n'ai donné aucune note. C'est nécessaire pour la motivation. Après tout, si un élève radie, il est probable qu'il s'en souviendra, le comprendra et le remettra dans sa tête. Ici, j'ai été aidé par le fait que j'étais moi-même à leur place il n'y a pas si longtemps et je me souviens comment tout cela fonctionne. En général, 5 minutes, c'est une bonne chose, et pour moi c'est plus une motivation qu'un moyen de contrôle.
À un moment donné, mes connaissances ont commencé à s'épuiser, et il était nécessaire de dire quelque chose - il y avait le sentiment que beaucoup d'autres n'étaient pas dites.
Ok Google, questions pour un entretien C ++. Sélectionnez une liste pour Junior. Nous avons lu la question et les réponses. Voila, se pompait, pompait les étudiants.
En raison du travail, un certain nombre de paires ont été manquées. Il était nécessaire de les restaurer, car le changement s'éternisait. La même réception de pizza est venue à la rescousse. Nous avons convenu que nous choisirions un endroit et une heure pour nous asseoir, commander de la nourriture, nous sauterions toute la journée, rétablissant ainsi les laissez-passer, et les étudiants auraient théoriquement dû recevoir +1 aux laboratoires qu'ils avaient remis. J'ai aidé, répondu aux questions.
En conséquence, il s'est avéré que ce n'était pas tout à fait le cas, il est devenu difficile d'allouer toute la journée, ils ont pris 2 à 0,5. Ce n'est pas mal non plus, même si je m'attendais à ce qu'il y ait plus de route. Néanmoins, c'était et n'était pas mauvais pour 1-2 fois. Après tout, tout le monde ne comprend pas bien la première fois, non? Ok, une autre petite expérience.
En cours de route, il a conclu un accord de +1 point avec l'injection de dépendances en C ++. Je dois dire que certains ont compris. En général, les élèves sont bien faits. Les deux ont même fait des jouets très cool avec une interface graphique et une bonne architecture. Et on a même compris Qt. Finalement, j'ai réussi à serrer tous les étudiants et à leur faire passer tout ce dont ils ont besoin pour être admis aux examens. Les statistiques se sont avérées plutôt bonnes.
Un nouveau semestre a commencé et il a commencé avec un couple au format mitap. La première tâche du conférencier était de semer. Analyseur de fichiers primitif et sortie au format CSV.
Ils sont venus, ont allumé le projecteur, ensemble sur le genou pendant 1,5 heures, ils ont jeté une solution dans laquelle il y avait encore quelque chose à resserrer, mais en général le cadre était prêt. À mon avis, les étudiants devraient voir comment cela fonctionne, comment en raisonner, etc. Le format mitap est ce dont vous avez besoin. C'est pourquoi les étudiants de première année ont observé avec un tel intérêt la fermeture du navigateur après la prochaine commande dans la console. C'est clair et intéressant. Pour moi, ce format mérite d'être développé.
Pour résumer
Ce n'est que ma vision, ce n'est peut-être pas vrai, mais les étudiants l'ont aimé:
- Nous utilisons Git et le faisons fonctionner avec des succursales, des demandes de tirage, etc.
- Créez Trello et suivez les tâches. Nous enseignons aux étudiants à déplacer la tâche en CR, sinon elle ne sera pas regardée.
- Nous passons 5 minutes, ils motivent les élèves à se souvenir de ce qu'ils ne savaient pas. Ce n'est pas agréable à penser pour tout le monde, mais pour certains c'est même douloureux, mais il vaut mieux s'y habituer au cours du semestre.
- Questions pour la préparation == questions pour un entretien pour un poste junior
- Nous vous faisons gérer l'injection de dépendance, les tests unitaires et d'autres réalités du développement moderne
- Nous réalisons des mitaps par paires. Laissez les étudiants répéter après le séminaire, avant de dessiner un chef-d'œuvre, l'artiste doit dessiner ce que les autres ont peint des centaines de fois.
- Nous organisons des mini-hackathons, achetons des pizzas / jus de fruits et enseignons aux étudiants à passer un bon moment
- En général, nous essayons de tout faire comme dans la vie.
Quelque chose comme ça, j'imagine une formation au développement. Que pensez-vous? Toujours ouvert à de nouvelles idées, faisons-le encore mieux!