📜 ⬆️ ⬇️

How to respond with a request for a request, or the Database is not for dummies

In Technopark I teach students the course "Database". Already from the title 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 - there are hundreds of them in the most ordinary smartphone, which, of course, is far from the limit.




I'm a teacher

')
Why do young people go to the education system? Why do you want to work with students as an additional professional burden? I often get asked such questions.

From the beginning of my professional career, I collected the data I needed by bits, from a wide variety of sources. Over seven years, I gained a lot, over time, I began to realize that I wanted to share it with students, because then they will be able to shorten that part of the path that I have passed with such difficulty, not to accumulate an existing knowledge base myself, and use this time to further extensions.

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


I started my teaching career as a school teacher of computer science. Then it seemed to me that a teacher in a university, in contrast to a school, has a very important lever of influence on a student — deduction. Over time, I realized that this is not quite true: the students with whom I work now are so motivated (I’ll tell you about this 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 not for nothing that the first is used in relation to the school, and the second - to higher education. The main objective of the university teacher is to give students information. To give information, and not to teach specific actions - and, depending on the quality of its mastering, evaluate your work. That is the problem is how to give information. It seems that it lies on the surface, everyone remembers about it and even goes to extremes in this direction: for example, they transform educational 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 road from point A to any other point using all the other letters, as well as the letters of those alphabets that people will use for future programmers if you want.

“The most difficult thing is to make students interested in the course and learn from it as much 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 a critical approach to oneself, but the fact that knowledge in this area is modified before our very eyes, and keeping up with them 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 there was a lot of benefit from one course, but almost no one from others.

One of the most memorable courses for me were “Enterprise Management” and “Production Automation”. The first was read by a woman who was previously the owner of her own enterprise, and throughout the course she told us the whole history of the development of her business, starting from registering a company and ending with a raider seizure. She gave a lot of examples, they seemed so interesting and exciting to us that no one missed a single lecture. And all because the material was real - not detached from reality, but visual.

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

It was quite easy for me to cope with this aspect, because all the Technopark teachers every day do directly what they tell their students. They are constantly in the know of all modern technologies, and this makes the disciplines unique, modern and alive.

"You can not just take and design a database"


First of all, I tried to recall the course I had attended in my high school: we were told about MS Access databases, and only a couple of lectures were devoted to SQL. 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 myself. Shamelessly talk about their mistakes and failures, show real examples from their programs and explain the tasks that have to be solved every day.

Where does construction begin? Of course, from the project. So in the databases, you must first prepare a layout of what you expect to receive. Therefore, my course begins with the design of databases, the creation of logic circuits, the allocation of entities and relationships. Well, having received a specific structure, it needs to be given some kind of descriptive form - DDL (DATA Definition Language) does an excellent job with this.



The finished structure is like a skeleton - an object incapable of independent living, but being 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 the end of the course for preparing students for databases: students are given gear and forced to master their skills independently. But the purpose of Technopark as a whole and of my course in particular is to grow confident and full-fledged developers. Therefore, in our course this stage is not the end and not even the middle.

One of the most important tasks that I wanted to solve in the course of my course is to prepare the children 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 go past the question of properly 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 new examples of how people neglect the simplest rules.

It seems that the program 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. They are devoted to the last lectures of the course, which at the same time and bring him a kind of result.



Well, now everything is exactly. Or not? I have already mentioned the tackle that hang on the wall. So, we tried to make sure that they didn’t hang there during the course, but went into action and the students would learn how to use them skillfully.

Throughout the semester, students develop their own projects. First, design, then revive them with requests. They create a high load for them and optimize their work. In addition, during the semester, several practical work is carried out to test the ability to write correct and fast requests. But this is not so much the control of knowledge as a set of real-life tasks that they still have to face more than once. And now they can find the right answers to them, albeit 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 studied for ten years. And I really want to see how they will surpass me and even teach me something.

"Most often, students find the right solutions themselves."


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

Our lectures are filmed on video (as long as they are available only to Technopark participants, but will be made publicly available in the future) and if students had to miss a lecture, they can always watch its recording at home. It also happens that the students watch last year’s lecture notes before the lecture itself, and the already prepared ones arrive. But for them there are tasks that will have to be solved.

Of course, you can not ignore the practice. I have already casually mentioned the project that students write during the course, but the matter 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 checking the correctness - thus, they learn to find errors in existing schemes. In addition, there are several seminars on building queries. And this year, an automatic system for checking answers will be developed, with the help of which you can send your request and it will tell you if it was written correctly. It seems to me that this adds some excitement, an element of the game, to the learning process.

Technopark students: what are they?


Technopark students should not be treated as ordinary students or even as Baumanka students. For admission to the Technopark, they pass a special selection, consisting of three stages. First - correspondence testing, then full-time, which we, teachers of Technopark, are already conducting, and finally - testing with HR specialists.

Imagine an ordinary student of secondary courses: how much motivation he needs in order to voluntarily subscribe not only to an actually full additional education, but also to a whole series of entrance examinations. These are very strong young people who really want to learn from us.



In addition to the basic set of Technopark courses, our students attend at least 6 pairs of lectures a week, and do quite impressive homework assignments. Many of them become interns, and in this case they also work 20 hours a week. Someone from the students calculated that with such a load only half of Sunday remains free. So judge what they are.

They work. And I'm not about internship. I am on the attitude of learning. This is not just doing lectures - it's hard work, work on quality and results. 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 wants to eat forever. They are hungry for knowledge. At the lectures, they themselves propose topics for discussion, share their stories about the solutions of various tasks. And after almost every class, people come up and ask questions: “What is it like? And this? "

They are smart. Rarely there is a question to which they can not find the answer, and often not one. Sometimes I ask questions in which the wrong answer turns out to be obvious, and I have a comment ready, which should push them to find an error. But they are ahead of me and immediately reach decisions that I did not know about and which are better than mine. Perhaps it will sound pathetic, but 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 have become interns for the Mail.ru Group, the majority have already successfully joined the ranks of our developers. Despite this, but honestly, 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 those cases when it is more productive to solve together. They know that I can help find a way out of difficult situations, set a path for finding solutions, and in this I see the main indicator that I successfully cope with my teaching role. Now my task is not to stop, to develop together with my students, present and future, because programming, like everything else, does not stand still.

Pavel Scherbinin,
content programmer

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


All Articles