We need a ready-made June - teach it yourself, or How we launched a course of seminars for students

Published on March 28, 2019

We need a ready-made June - teach it yourself, or How we launched a course of seminars for students

    image


    It is not a secret for IT people that if your city is not a millionaire, then finding a programmer in it is problematic, but a person who owns the necessary stack of technologies and experience is even more difficult.


    In Irkutsk, the IT world is cramped. Most city developers are aware of the existence of ISPsystem , and many are already with us. Often, applicants come to the position of a junior, but basically they are yesterday’s graduates of universities, who still need to be completed and trimmed.


    And we want ready-made jones that did some C ++ programming, are familiar with Angular, and have seen Linux. So, you have to go and teach them yourself: introduce the company and give the material that is needed for work with us. So the idea was born to organize backend and frontend development courses. Last winter, we implemented it, and in this article we will tell you how it was.


    Training


    We gathered leading developers, discussed with them the tasks, duration and format of the classes. Most of all, we need a backend and front-end programmers, so we decided to conduct seminars on these specialties. Since the first experience and how much energy will be required is unknown, they limited the time to one month (eight lessons in each direction).


    The material for the back-end seminars was prepared by three people, and two were reading, and seven employees shared the topics on the front-end.


    I did not have to look for teachers for a long time; A bonus was provided for participation, but it was not crucial. We attracted staff of middle and higher level, and they are interested in trying themselves in a new role, developing communication and knowledge transfer skills. They spent more than 300 hours on preparation.

    They decided to hold the first seminars for children from the cyberfaculty of IRNITU. Convenient coworking just appeared there, and Career Day was also planned - a meeting of students with potential employers, where we regularly go. This time, as usual, they talked about themselves and vacancies, and were invited to the course.


    Those wishing to participate were given a questionnaire to understand the interests, level of training and knowledge of technologies, to collect contacts for inviting to seminars, and also to find out if the listener has a laptop that he can bring to classes.


    A link to the electronic version of the questionnaire was posted on social networks, and they also asked an employee who continues to study at the IRNITU magistracy to share it with classmates. It was still possible to agree with the university on the publication of news on their website and in social networks, but there were enough people who wanted to attend the course.


    The survey results confirmed our assumptions. Not all students knew what the backend and frontend were, and not all worked with the technology stack that we use. We heard something and even did projects in C ++ and under Linux, very few people really used Angular and TypeScript.


    By the beginning of classes, 64 students had recruited, this was more than enough.


    For the participants of the seminars, they organized a channel and a group in the messenger. They wrote about changes in the schedule, posted videos and lecture presentations, homework. They also arranged discussions and answered questions. The seminars are now over, and discussions in the group are ongoing. In the future, through it it will be possible to invite children to hiknites and hackathons.

    Lecture content


    We understood: for a course of eight lessons, it is impossible to teach programming in C ++ or creating web applications in Angular. But they tried to show the development process in a modern product company and at the same time introduce our stack of technologies.


    There is no way to do theory here; practice is needed. Therefore, we combined all the lessons with one task - to create a service for recording events. Together with the students, they planned to develop the application step by step by introducing them to our stack and its alternatives.


    Introductory lecture


    In the first lesson, we invited everyone who completed the questionnaire. At first they said that only full stack was a long time ago, and now in the development companies there is a division into the front and back-development. In the end, they suggested choosing the most interesting direction. 40% of students signed up for the backend, 30% for the front-end, and another 30% decided to attend both courses. But it was difficult for the children to go to all classes, and they were gradually determined.



    The backend developer at the introductory lecture jokes about the approach to learning: “The seminars will be like instructions for beginning artists: step 1 - draw circles, step 2 - draw an owl”
     

    Backend courses content


    Part of the backend classes was devoted to programming, and part to the development process as a whole. In the first part we touched on compilation, make СMake and Conan, multithreading, programming methods and patterns, working with databases and http-requests. The second part talked about testing, Continuous Integration and Continuous Delivery, Gitflow, teamwork and refactoring.



    Slide from the presentation of backend developers
     

    Frontend Course Content


    First we set up the environment: we installed NVM, using it Node.js and npm, with them - Angular CLI and created a project on Angular. Then they took up modules, learned to use basic directives and create components. Next, we figured out how to navigate between pages and configure routing. We learned what services are and what are the features of their work within the framework of individual components, modules and the whole application.


    We got acquainted with the list of preinstalled services for sending http-requests, working with routing. Learned how to create forms, handle events. For testing, we created a mock server on Node.js. For dessert, we learned about the concept of reactive programming and tools such as RxJS.



    Slide from the presentation of front-end developers for students
     

    Instruments


    Seminars imply practice not only in the classroom, but also outside of them, so a service was needed to receive and check homework. Frontenders chose Google Classroom, backenders decided to write their rating system.

    Our rating system. You can immediately see what the backender wrote :-)


    In this system, the code written by students passed autotests. The assessment depended on the test results. An extra point could be obtained for the review and for the work delivered on time. The overall rating affected the ranking.


    The rating introduced an element of competitiveness into the classes, so we decided to leave it and abandon Google Classroom. So far, our system is inferior in terms of convenience to Google’s solution, but it’s fixable: for the next courses we will refine it.


    Tips


    We prepared well for the seminars and didn’t miscalculate anything, but still stepped on a few rakes. Filed this experience in the advice, suddenly someone come in handy.


    Choose your time and schedule activities correctly


    We relied on the university, but in vain. Already at the end of classes it became clear that our course fell on the most inconvenient time of the school year - before the session. Students came home after couples, prepared for exams, and then sat down for our assignments. Sometimes decisions came at 4-5 in the morning.


    It is also important to consider the time of day and frequency of classes. We started at 19:00, so if the student’s couple ended early, he had to leave home, and return in the evening - this is inconvenient. In addition, classes were held on Monday and Wednesday or Thursday and Tuesday, and when there was one day at home, the guys had to work hard to complete it on time. Then we adjusted and asked less on such days.


    Take colleagues for help in the first lesson


    At first, not all students were in time for the lecturer, there were problems with the deployment of the environment, the setting. In such situations, they raised their hands, and our employee came up, helped to figure it out. In the last classes, help was not needed, because everything was already set up.


    Record workshops on video


    So you solve several problems at once. First, give an opportunity to see those who missed the lesson. Secondly, fill up the internal knowledge base with useful content, especially for beginners. Thirdly, looking at the record you will be able to evaluate how the employee conveys information and whether it can hold the attention of the audience. Such an analysis helps to develop the speaker’s oratory. IT companies always have something to share with colleagues at relevant conferences, and at seminars you can grow excellent speakers.



    The lecturer says the camera writes
     

    Be prepared to change your approach if needed


    We were going to read a small piece of theory, do some programming and give homework. But the perception of the material was not so simple and smooth, and we changed the approach to the seminars.

    In the first half of the lecture, they began to examine in detail the previous homework, and in the second part to read the theory for the next. In other words, they gave students a fishing rod, and at home they themselves were looking for a pond, bait and fish - they delved into the details and understood the C ++ syntax. At the next lecture, they discussed together what happened. This approach has proven to be more productive.


    Do not change teachers often


    Two employees conducted seminars on the backend, and seven on the front-end. There wasn’t much difference for students, but front-end lecturers came to the conclusion that for a more productive contact you need to know the audience, how it perceives information, etc., and when you speak for the first time, this knowledge is not. Therefore, it may be better not to change teachers often.


    Ask questions in each lesson.


    Students themselves are unlikely to say if something goes wrong. They are afraid to look stupid and ask “stupid” questions, they are embarrassed to interrupt the lecturer. This is understandable, because for several years they saw a different approach to learning. So if it is difficult, no one will admit.


    To relieve stress, we used a technique with a decoy. A lecturer’s colleague not only helped, but also asked questions during the lecture, offered solutions. Students saw that lecturers are living people, they can be asked and even joked with them. This helped defuse the situation. The main thing here is to strike a balance between support and interruption.


    Well, even with such a “decoy duck”, still ask about the difficulties, find out how adequate the load is, when and how best to disassemble the homework.


    Make an informal meeting at the end


    Having received the final application at the last lecture, we decided to mark it with pizza and just chat in an informal setting. Gave gifts to those who held out until the end, named the top five, found new employees. We were proud of ourselves and the students, well, we were glad that everything had finally ended :-).


    image
    We give prizes. Inside the package: T-shirt, tea, notebook, pen, stickers
     

    Summary


    16 students reached the end of classes, 8 in each direction. According to university professors, this is a lot for courses of such complexity. We took the five best or almost hired, another five will come to practice in the summer.

    Immediately after class, they launched a questionnaire to collect feedback.


    Did the seminars help determine the direction?


    • Yes, I will go to the backend development - 50%.
    • Yes, I definitely want to be a front-end developer - 25%.
    • No, I still don’t know what interests me more - 25%.

    What turned out to be the most valuable?


    • New knowledge: “you can’t get this at the university”, “a fresh look at dense C ++”, training in technology to increase productivity - CI, Git, Conan.
    • Professionalism and dedication of lecturers, the desire to convey knowledge.
    • Class format: explanation and practice.
    • Examples from real work.
    • Links to articles and instructions.
    • Cool compiled lecture presentations.

    The main thing is that we managed to tell that after graduating from the university a lot of interesting and difficult work awaits the children. They realized in which direction they want to move and became a little closer to a successful career in IT.


    Now we know how to choose the appropriate training format, what to simplify or even exclude from the program, how much time it takes to prepare and other important things. We better understand our listeners, fears and doubts are left behind.


    Perhaps we are still far from creating a corporate university, although we already train employees within the company and work with students, but we have taken the first step to this serious task. And very soon, in April, we will go to teach again - this time at Irkutsk State University, with which we have been cooperating for a long time. Wish us good luck!