¿Y cómo ves la educación en TI?

Los estudiantes y los maestros son completamente diferentes entre sí. Algunos quieren disfrutar de la vida, mientras que otros interfieren constantemente con esto. Forzan cada seis meses a sentarse de nuevo, volver a leer las conferencias, no dormir durante varios días e inyectarse café por vía intravenosa.

Por supuesto, las personas son diferentes, más bien habla de estereotipos. Cuando era estudiante, nunca pensé que comenzaría a enseñar, y no pensé que iría a la escuela de posgrado y no imaginé mucho en absoluto. Pero sentarse en el lugar de trabajo durante 8 horas al día y luego volver a casa y empujar a través del sofá es demasiado aburrido. Así que pasará toda la vida viendo la próxima temporada del Juego de Tronos o una fiesta en Dotka.

Mi experiencia como maestra es modesta, solo 2 años. Pero durante los 2 años hubo una experiencia interesante que quería compartir. El artículo resultó ser largo e impaciente puede mirar al final, donde se da el residuo seco obtenido como resultado de prueba y error.

¿Cómo suelen representar las personas a un profesor universitario? Un adulto, una persona seria, con gran experiencia de vida, cuya autoridad es inquebrantable. Esto se siente especialmente entre los profesores de ciencias exactas. Pero un estudiante reciente no se ajusta a esta descripción en absoluto. Pero eso no significa nada. ¿Por qué no romper los estereotipos y, en lugar de abultar los ojos para mirar las experiencias de esos maestros tan sofisticados, seguir su propio camino? Negarse a aprender las mejores prácticas es una idea estúpida, pero hay algo en estas personas que vale la pena aprender. Pero hay otro, el principal enemigo de la novedad: los hábitos.

La programación no es un tapete. Análisis (Cap está en algún lugar cercano). Las ciencias matemáticas son un campo mucho más maduro. La mayoría de las leyes ya son conocidas. Hay muchas menos preguntas abiertas que en la programación. La programación es un área muy dinámica, no hay lugar para los hábitos. Es demasiado para apegarse a algo, y simplemente te caes de la realidad.

Tuve suerte, en el segundo año, cuando nos enseñaron programación orientada a objetos, nuestro grupo fue asignado a un joven maestro. Era activo, de principios, perfeccionista y bastante competente en escribir código. En lugar de simplemente aceptar los laboratorios que funcionan, lo obligó a escribir código, por lo que ahora no tiene vergüenza.

Si no fuera por él, todos nosotros en el trabajo hubiéramos aprendido qué son las "constantes mágicas", por qué necesita devolver una variable a cambio (y no presionar el operador unario allí), por qué no puede escribir construcciones fuertes mientras, cómo trabajar con la interfaz de usuario en Java, por qué en C ++ todo debe pasar por puntero constante. En general, la mayoría de los ejemplos en Internet son un bydcode raro que no se puede usar en producción. Y esto es normal, porque él es un ejemplo de eso, para mostrar que el código funciona de la manera más clara posible sin complicaciones.

E incluso si no dormimos y escribimos el código toda la noche en la noche del 30 al 31 de enero, y fuimos a tomar laboratorios el 31, esto permitió que nuestro grupo estuviera muy por delante del resto de la corriente.

No fue un recuento primitivo del libro de texto, ni una adopción no inicializada de los de laboratorio, fue justo lo que necesitabas. Curiosamente, difícil, entendiste cuánto bombeaba. Sentiste ganas de comenzar a subir de peso con esteroides.

Y así, al convertirme en maestra, decidí adoptar lo mejor de todos y agregar con mi "truco".

Prueba de plumas


Vienes a la escuela y te dicen que olvides toda la peste que tus padres te enseñaron, vienes a la universidad y te dicen: olvida todo lo que te enseñaron en la escuela, vienes a trabajar, te dicen, olvida todo lo que te enseñaron en la universidad.
Recordemos lo que nos enseñaron en el trabajo después de la universidad.

Aquí hay una lista que hice sobre mí:

  1. Git
  2. Jira \ Redmine \ Trello
  3. Revisión de código
  4. Inyección de dependencia
  5. Prueba unitaria
  6. CI \ CD
  7. Trabajar con la base de datos (nos enseñaron a escribir consultas, pero no a usarlas en Java)
  8. Migración de base de datos
  9. ORM

Pero esto es lo que se encuentra en la superficie, y si profundiza, la lista se expandirá:

  1. Docker
  2. K8S
  3. Arquitectura de micro servicios

Algo de esto fue contado, pero otros no. Sí, nos dijeron cómo se organiza la solicitud de publicación. Sobre algún tema se habló de Json. Y en Java, incluso trabajamos con sockets. Pero todo estaba fuera de contacto con tareas reales. Y un estudiante ordinario atestaba estas cosas de la manera habitual, tomaba un examen y luego olvidaba, y luego recordaba pieza por pieza cuando llegaba al trabajo.

Podemos decir que los estudiantes mismos tienen la culpa. Pero entonces podemos decir que los programadores tienen la culpa de los errores. En general, golpéalos con un látigo y déjalos que lo hagan inmediatamente de manera normal.

Pero no, esta es la realidad, no es perfecta y, por lo tanto, contratan probadores y los obligan a escribir pruebas de Unidad. Si una cosa no se erradica, solo queda adaptarse a ella.

Otro punto importante es el entusiasmo del profesor. Muchos ya enseñan por inercia. Están acostumbrados: de año en año sucede lo mismo. Pero los estudiantes lo sienten. Y por lo tanto, sin esa débil motivación cae por debajo de la marca 0. A medida que se acerca la sesión, esta barra comienza a crecer. Es una pena que no todos los estudiantes a tiempo se den cuenta de la profundidad de su situación.

Total hay 2 problemas globales:

  1. Problema de motivación
  2. Irrelevancia / fragmentación del conocimiento proporcionado

Nosotros decidiremos! No todo tuvo éxito según lo planeado, pero finalmente tuvo éxito.

Al llegar a la primera lección, forcé a todos a registrarse para bitbucket. En ese momento era el primer plato. El tema se llamaba "Informática". El propio profesor dijo que podemos hablar de todo lo que hace eco de esta palabra.

El tema era ejecutar pequeños laboratorios en * nix shell. Los estudiantes escupen sobre cómo usar el git durante mucho tiempo. Especialmente git de consola. Pero como me pareció al final del semestre, se incendiaron.

Creamos una sala de chat en VK, allí descargué artículos sobre el tema, respondí preguntas. Y es realmente conveniente. No repitas 100500 veces. Y si una persona no se molesta en leer, simplemente envíele el mensaje.

Sobre el tema, decidí hablar un poco sobre CI \ CD, Prueba de unidad, Revisión de código. Fue difícil, tuve que hacer una pregunta 1000 veces, ¿entendiste eso? Tenía que dejarme guiar por mis puntos de vista. Porque la respuesta siempre fue "Sí". Pero en los ojos se lee una completa falta de comprensión.

Las parejas en las que me senté en la computadora y claramente mostré algo, fueron mucho mejores. Parece estar escribiendo un pequeño comando de PowerShell que cierra Chrome. Un poco, pero para un estudiante de primer año parece mágico. En esos momentos, los chicos se interesaron.

Otra condición del profesor: era necesario hacer presentaciones. Personalmente, no quería estirar esto durante todo el semestre con un montón de notas sobre quién aprobó y quién no.

Hubo una propuesta de mí para centralizar la presentación de presentaciones. Elegimos el momento en que es conveniente para todos, reservamos una oficina para todo el sábado \ viernes, tengo pizza \ pasteles \ té \ café, de los chicos de la presentación. Sorprendentemente, la mujer con la que acordé la reserva del gabinete no se opuso. Este formato fue especialmente popular para los chicos. Gastar cada seis meses 2-3 mil no es un gran dinero, y los chicos lo recordaron para siempre.

Conos de relleno


Después del final del primer curso, los chicos me pidieron que intentara organizarse y escribir algún tipo de juguete. Y luego los chicos también tuvieron esta idea. Pero la implementación, desafortunadamente, no lo es. Para implementar el plan, se eligió el Unreal Engine. El argumento es simple: utiliza una sintaxis muy cercana a C ++, y dado que los chicos deberían haberlo estudiado en el próximo semestre, si no escriben nada que valga la pena, al menos les ayudará en el próximo semestre.

Ofrecí dar pequeñas conferencias sobre C ++ en un formato en línea, y luego proceder con la implementación. El problema es que yo mismo estoy desarrollando en .Net y he olvidado completamente C ++. Tenía que recordar, tomó tiempo. Francamente, tampoco hubo tiempo suficiente para aprender Unreal. Pero este verano, muchos de los muchachos que respondieron gradualmente comenzaron a fusionarse. Pero la rutina también me arrastró: las reparaciones en mi casa de campo por parte de mis padres, el deseo de disfrutar el verano, un cambio de compañía también coincidió con este período, unas vacaciones. En general, resultó que gasté toda mi energía en otros asuntos igualmente importantes. El resultado fueron unas pocas conferencias, un par de líneas de código muerto, en las que no querrás meter una varita mágica.

Afectados y la distribución del equipo. Todos están disponibles en diferentes momentos, alguien simplemente ignora los mensajes, etc. En general, para motivar a las personas en Internet, necesita: en primer lugar, otros medios, en segundo lugar, experiencia con un equipo distribuido (que no tengo) y, en tercer lugar, mucho más entusiasmo. Bueno, la falta de resultado también es un resultado. Por mi parte, quiero agradecerles a los muchachos, ustedes son geniales, pero he sacado conclusiones e intentaré no repetir errores.

Sin embargo, la informática no es exactamente el tema que me gustaría dirigir. La posición del profesor y la oficina del decano es muy leal, incluso si el estudiante hizo algo, parecía una pareja. En general, esto es correcto; los temas no son todos igualmente importantes. Y la importancia depende de la especialidad. Sería extraño considerar que la cultura del habla es tan importante para los programadores como Mat. Análisis o POO. O para obligar a los estudiantes de humanidades a pasar los laboratorios de física durante días. Pero quería un papel más responsable.

Ganando impulso


Entonces, las clases en OOP han comenzado. Al igual que con la informática, los estudiantes se registraron en Bitbucket. Pero todavía había un par de innovaciones.

Ahora los chicos crearon solicitudes Pull y recibieron comentarios de código en respuesta. Y sí, tuvieron que tomar el primer laboratorio durante 2 meses, hasta que comenzó a satisfacer los requisitos mínimos para el diseño del código.

Tenemos a Trello, para cada tarea, su propio tablero (había 5 de ellos), el nombre de la tarea es el nombre completo del estudiante. Como resultado, resultó claramente, y ahora los chicos tienen una idea sobre el rastreador de tareas y los tableros kanban.

En parejas, el enfoque no era solo cómo escribir tu clase. Por el contrario, sobre cómo hacer tal arquitectura para que pueda expandirse fácilmente. Se prestó mucha atención a los principios de OOP, principios SÓLIDOS. Varias veces tuve que repetir el principio de las funciones virtuales.

Al comienzo de la pareja: una pequeña prueba sobre los temas anteriores. No le di ninguna calificación. Esto es necesario para la motivación. Después de todo, si un estudiante se da por vencido, es probable que lo recuerde, lo comprenda y lo deje de lado. Aquí me ayudó el hecho de que yo mismo estaba en su lugar no hace mucho tiempo y recuerdo cómo funciona todo. En general, 5 minutos es algo bueno, y para mí es más una motivación que una forma de control.

En algún momento, mi conocimiento comenzó a agotarse, y era necesario decir algo: había la sensación de que muchos más no se habían dicho.

Ok Google, preguntas para una entrevista en C ++. Seleccione una lista para Junior. Leemos la pregunta y las respuestas. Voila, se bombeaban, bombeaban estudiantes.

Debido al trabajo, se perdieron varios pares. Era necesario restaurarlos, porque el cambio se prolongó. La misma recepción de pizza vino al rescate. Acordamos que elegiríamos un lugar y un momento para sentarnos, pedir comida, nos saltaríamos todo el día restaurando los pases, y los estudiantes en teoría deberían haber recibido +1 en los laboratorios que habían entregado. Ayudé, respondí preguntas.

Como resultado, resultó no ser así, se volvió problemático asignar todo el día, tomaron 2 a 0.5. Tampoco está mal, aunque esperaba que haya más impulso. Sin embargo, fue y no estuvo mal por 1-2 veces. Después de todo, no todos lo hacen bien la primera vez, ¿verdad? Ok, otra pequeña experiencia.

En el camino, hizo que los chicos tuvieran un trato de +1 con la inyección de dependencia en C ++. Debo decir que algunos se dieron cuenta. En general, los estudiantes están bien hechos. Los dos incluso hicieron juguetes geniales con una interfaz GUI y una buena arquitectura. Y uno incluso descubrió Qt. Finalmente, logré exprimir a todos los estudiantes y hacerles aprobar todo lo que necesitan para ser admitidos en los exámenes. Las estadísticas resultaron bastante buenas.

Comenzó un nuevo semestre y comenzó con una pareja en formato mitap. La primera tarea del profesor fue sembrar. Analizador de archivos primitivo y salida en formato CSV.

Vinieron, encendieron el proyector, juntos en la rodilla durante 1,5 horas lanzaron una solución en la que todavía había algo que apretar, pero en general el marco estaba listo. En mi opinión, los estudiantes deberían ver cómo funciona, cómo razonar al respecto, etc. El formato mitap es lo que necesitas. Es por eso que los estudiantes de primer año observaron con tanto interés cómo se cierra el navegador después del siguiente comando en la consola. Es claro e interesante. En cuanto a mí, vale la pena desarrollar este formato.

Para resumir


Esta es únicamente mi visión, puede que no sea cierto, pero a los estudiantes les gustó:

  1. Usamos Git y lo hacemos funcionar con ramas, solicitudes de extracción, etc.
  2. Crea Trello y realiza un seguimiento de las tareas allí. Enseñamos a los estudiantes a mover la tarea en CR, de lo contrario no se verá.
  3. Pasamos 5 minutos, motivan a los estudiantes a recordar lo que no sabían. No es agradable para todos pensar, pero para algunos es incluso doloroso, pero es mejor acostumbrarse a él durante el semestre.
  4. Preguntas para la preparación == preguntas para una entrevista para un puesto Junior
  5. Le hacemos frente a la inyección de dependencia, las pruebas unitarias y otras realidades del desarrollo moderno.
  6. Realizamos mitaps en parejas. Deje que los estudiantes repitan después del seminario, antes de dibujar una obra maestra, el artista debe dibujar lo que otros pintaron cientos de veces.
  7. Organizamos mini hackatones, compramos pizza / jugos y enseñamos a los estudiantes a pasar un buen rato
  8. En general, tratamos de hacer todo como en la vida.

Algo así, me imagino entrenando en desarrollo. Que piensas Siempre abierto a nuevas ideas, ¡hagámoslo aún mejor!

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


All Articles