How to respond to a request with a request, or Databases are not for dummies

    In the Technopark, I teach students the course “Databases”. Already from the name it is clear that we are talking about an integral part of modern IT literacy - without this discipline today it is difficult to imagine a computer specialty. Databases in one form or another today surround us everywhere - in the most ordinary smartphone there are hundreds of them, which, of course, is far from the limit.




    I'm a teacher


    Why do young people go to the education system? Why do they want to work with students as an additional professional load? I am often asked similar questions.

    Since the beginning of my professional career, I have been collecting the data I need bit by bit, from a variety of sources. Over the course of seven years, I accumulated a lot, over time I began to understand that I want to share this with students, because then they will be able to shorten the part of the path that I went so hard, not to accumulate an existing knowledge base on my own, but to use this time for its further extensions.

    “It seemed to me that the teacher at the university has a very important lever of influence on the student - expulsion”


    I started my teaching career as a school computer science teacher. Then it seemed to me that the teacher at the university, unlike the school, has a very important lever of influence on the student - expulsion. Over time, I realized that this is not entirely true: the students I work with now are so motivated (I'll talk about this a little later), that if they do something wrong, then the problem, or at least its root, with a high degree of probability, should be sought in teaching, and not in them.

    A bit of linguistics: the word "teacher" comes from the verb "teach", and the teacher - from "give" (even "give", if you notice a pun :). And it is not for nothing that the first is used in relation to school, and the second - to higher education. The main goal of a university teacher is to give students information. To give information, not to teach specific actions - and depending on the quality of its assimilation, evaluate your work. That is, the task is how to give information. It seems that it lies on the surface, everyone remembers it and even goes to extremes in this direction: for example, they turn the training material into step-by-step instructions for action in different situations: from A to B, from B to C. Perhaps even from A in C. But we need to teach them how to pave the way from point A to any other point using all the other letters,

    “The hardest part is to make students interested in the course and bring out as much benefit as possible”


    Creating a good course program is not an easy task. After each iteration of the course, I modify it, and no matter how significant the transformations are, it is still infinitely far from ideal. And the point here is not so much in a critical approach to oneself, but in the fact that knowledge in this area is being modified before our eyes, and keeping up with it is the task of our educational process.

    I often recall my student years, analyze the methods and programs of my own teachers to find out why one course turned out to be of great use, and almost none of the others.

    One of the courses that I remember most was “Enterprise Management” and “Automation of Production”. The first was read by a woman who had previously been the owner of her own enterprise, and throughout the course she told us the whole story of the formation of her business, from the registration of the company to the raider seizure. She gave a lot of examples, they seemed to us so interesting and exciting that no one missed a single lecture. And all because the material was real - not detached from reality, but visual.

    Another course was taught by the head of the production automation department. For five days he worked at his factory, and on Saturday came to us and most often began a lecture with the words “but yesterday ...” and told real examples from his practice.

    I was able to cope with this aspect quite simply, because all the teachers of the Technopark every day are directly involved in what they are telling their students about. They are constantly up to date with all modern technologies, and this makes the disciplines unique, modern and vibrant.

    "You can’t just take and design a database"


    First of all, I tried to recall the course I attended at my university: we were told about databases oriented to MS Access, and only a couple of lectures were devoted to the SQL language. Since then, I have never used MS Access, and the value of acquired knowledge tends to zero.

    Therefore, when designing my course, I decided to build on what I am currently working with directly. Without a twinge of conscience, talk about your mistakes and failures, show real examples from your programs and explain the tasks that you have to solve every day.

    Where does construction begin? Of course, from the project. So in databases, you must first prepare a layout of what you expect to receive. Therefore, my course begins with the design of databases, creating logical circuits, highlighting entities and relationships. Well, having received a specific structure, it is necessary to give it a certain descriptive form - DDL (DATA Definition Language) copes with this perfectly.



    The finished structure is like a skeleton - an object incapable of independent life, but it is an incredibly important framework for a real person. Therefore, the next necessary part, of course, was the analysis of the SQL data manipulation language.

    Very often, this is where the course of training students in databases ends: students are given tackle and forced to master their own skills. But the goal of Technopark as a whole and my course in particular is to grow confident and full-fledged developers. Therefore, in our course this stage is not the end or even the middle.

    One of the most important tasks that I wanted to solve during my course was to prepare the guys for work with highly loaded systems, where every fraction of a second counts. So, in the next section of the course, students learn to find problems and bottlenecks in their queries, and most importantly, solve these problems.

    “The finished structure is like a skeleton”


    Of course, when working with databases, it is impossible to ignore the issue of correctly configuring the database server, its administration and security. You can find a huge number of examples of how even the largest sites suffer from problems with SQL injection, a huge number of articles have been written about query security, but every day there are more and more examples of how people neglect the simplest rules.

    It seems that the program has turned out to be extensive and comprehensive, but still something is missing, right? Since we are talking about the needs of a modern developer, it is impossible to ignore the now-popular NoSQL databases. The last lectures of the course are devoted to them, which at the same time bring him a peculiar result.



    Well, now that's all. Or not? I already mentioned the gear that hang on the wall. So, we tried to make sure that during the course they did not hang there, but go into business and students would learn how to use them skillfully.

    Throughout the semester, students develop their own projects. First they design, then revive them with the help of requests. Create a high load for them and optimize their work. In addition, during the semester, several practical works are carried out to test the ability to write correct and quick queries. But this is not so much a control of knowledge as a set of tasks from real life that they have yet to face more than once. And now they can find the right answers to them, though not always independently, sometimes with the help of colleagues and a teacher. I really hope that in half a year they manage to learn from me what I have been studying for a decade. And I really want to see how they will surpass me and even teach something.

    “Most often, students find the right solutions themselves”


    So what has been done? As part of the course, I try to get away from strictly theoretical information. At any time, you can open the manual and see the syntax of a query or design. Therefore, I try to give a maximum of examples from real life, but not examples of solutions, but examples of tasks. Most often, students themselves find the right solutions, this gives them self-confidence and increases their experience.

    Our lectures are filmed on video (so far they are available only to participants of the Technopark, but in the future they will be available for public access) and if students had to miss a lecture, they can always watch its recording at home. It also happens that students watch last year’s lecture notes until the lecture itself, and come already prepared. But for them there are tasks that will have to be addressed.

    Of course, one cannot ignore the practice. I already casually mentioned a project that students write during the course, but this is not limited to them. In particular, one of the first practical tasks is to build a database schema. At the same time, students from other groups are engaged in verification of the correctness - thereby they learn to find errors in existing schemes. In addition, there are several workshops for query building. And this year, an automatic response verification system will be developed, with which you can send your request, and it will say whether it was written correctly. I think this adds some excitement, an element of the game in the learning process.

    Technopark students: what are they?


    Students of the Technopark cannot be treated as ordinary students or even as students of Baumanka. To enter the Technopark, they undergo a special selection consisting of three stages. First - in-person testing, then - in-person testing, which we already do, teachers of the Technopark, and finally - testing with HR specialists.

    Imagine an ordinary middle-school student: how much motivation he needs in order to voluntarily sign up not only for a virtually complete additional education, but also for a series of entrance tests. These are very strong young people who really want to study with us.



    In addition to the basic set of Technopark courses, our students attend at least 6 pairs of lecture classes per week and perform quite impressive homework. Many of them become trainees, and in this case they also work 20 hours a week. One of the students estimated that with such a load, only half of Sunday remains free. So judge what they are.

    They work. And I'm not talking about an internship. I am about attitudes towards learning. This is not just sitting out of lectures - it is hard work, work on quality and result. And thanks to this work, these young people gain invaluable experience and knowledge.

    They are hungry. No, this is not a story about a student who always wants to eat. They are hungry for knowledge. In lectures, they themselves offer topics for discussion, share their stories with solutions to certain problems. And after almost every lesson they come up and ask questions: “But how is it? And this? ”

    They are smart. Rarely does a question arise to which they cannot find the answer, and often not just one. Sometimes I ask questions in which the wrong answer turns out to be obvious, and I already have a comment ready to push them to detect an error. But they are ahead of me and immediately reach decisions that I did not know about and which are better than mine. It may sound pathetic, but the students are constantly superior to their teacher. And this is the joy for which we teach.

    What is the result


    Two iterations of my course have already passed, many of the students became trainees of the Mail.ru Group, most of them have already successfully joined the ranks of our developers. Despite this, and, to be honest, thanks to this, they often come to me for advice, and I see only advantages in this. They are not afraid to interact instead of sitting still, wasting time and energy in cases where it is more productive to decide together. They know that I can help find a way out of difficult situations, set the path for finding solutions, and in this I see the main indicator that I am successfully managing my teaching role. Now my task is not to stop, to develop together with my students, current and future, because programming, like everything else, does not stand still.

    Pavel Shcherbinin,
    content project programmer

    Also popular now: