How authors in the Workshop write educational courses

There is a large team behind each of the courses in Yandex.Practicum: developers, illustrators, designers, methodologists, mentors, code reviewers and, of course, authors and editors who write the course material.



In short, the course program is created as follows:







Even after all these stages, the program is supplemented and updated. New versions of programming languages ​​and frameworks are released, the context of using the tools is changing, feedback from students comes - all this is taken into account when compiling the latest version of the course.



In this post, we will tell you how the process of writing courses is arranged from the side of the authors. Under the cut - the main rules for creating useful courses, the concept of the death of the author, the top 5 things you shouldn't do if you want to write a good course, and some personal stories. The post will be useful for specialists who are involved in the process of transferring knowledge: team leaders, tech bloggers and creators of educational content.



How to submit material



The Workshop has courses for beginners and intermediate. In this post, we will talk about the first group.



Most often, students come to us who either know nothing at all on the topic, or know quite a bit. Although there are those who have already studied something on their own, we still focus on the first and try to present the material in simple language.



To make it easy for students to perceive the material, we build it on examples from real life. This way we can explain how variables, functions, loops and everything else work without using complicated terms. As a rule, novice students are very grateful when we explain cycles not by the example of other cycles, but, for example, by the example of going to the refrigerator.





An example from the course "C ++ Developer"



We are greatly helped by the experience of the authors themselves. They remember well how they themselves acquired knowledge. Many of them did not just cram the documentation, but retold themselves the essence of the topic in a simplified format, using familiar examples, with clear comparisons. Now they are doing the same for other people.





With the help of a granny, a ball of thread and a sweater, we explain what an ORM is in the course "Middle python developer" The



skill of explaining complex things to yourself or your team in simple language is the cornerstone of the author's work.



How to keep the student interested



Even clear and useful text can still get boring, so we always try to take into account the modern cultural context. We believe that it is useful for authors to follow the media, be aware of the cultural code, remember the good old classics and watch new films.





Referencing the "Fifth Element" in the Python Universal Passport topic



We often use Easter elements. For example, the Java course that we are currently preparing for launch is built as a journey with a hero who, as it progresses, solves various problems. We sew Easter eggs into the process so that the student does not just solve the problem, but also smiles in the process when he sees a reference to his favorite TV series or famous song.



In many courses, students' attention is captured through storytelling. Even if the hero and his story are fictional, the material becomes more interesting and memorable for the novice reader.



For example, in a new course "React Developer", a student at the very beginning meets a heroine who gets a job as a waitress in a remote space burger and dreams of improving her. Throughout the entire training, the student develops a website for a space burger, and the heroes of the story support him: when in the design work he has to create a CRA blank and a folder structure for components, the heroine presents her plan to improve the burger, and when the student has to write the entire JSX and typeset, the heroes start repairing the burger and paint the walls.





Space Waitress Accompanies Students on the React Developer Course



In the free part of the Python developer course, students create their own personal assistant, Anfisa. Anfisa knows how to request information on third-party services and use the received data in her work. She keeps a list of friends (like in a notebook), can determine the weather in the city of each friend and treat friends to ice cream. Friends on Anfisa's list are the guys from our team who prepared the course (a little Easter egg from the authors). And the cities where friends live are the cities where the guys from the team were actually born. Anfisa gradually increases as you progress through the course. At the very beginning, Anfisa is small, since she still does not know much. But gradually the student writes the code, adds different functions to it, and Anfisa grows.





Illustration from the Python Developer Course : An open box is a lesson learned, with items metaphorically related to Django, and a new box is something that remains to be learned.



What difficulties arise



It is very important to explain complex technical phenomena with simple examples and familiar associations. But not everything from the world of programming can be quickly and easily transferred to everyday life. Some examples are fairly obvious, but some concepts are difficult to explain simply.



For example, how do you explain what a framework is? In the Python Developer course, we do it like this:



  • . , , . , , .



    , .



    . . , . , .



    . . . ( , ). : , , , . , .







    β€” , . , , , . , ? . , ? .



    . .


This is an unexpected and serious challenge. It may seem that there is nothing complicated when the author is in the subject - let him sit down and explain. But precisely because the author is well versed in the topic, he will explain something with examples that require a separate explanation.



However, when the author succeeds in choosing the correct (and understandable!) Analogy, this is a reason for separate and stormy joy.



Here are some more examples of how we explain complex concepts:



  • We explain the conversion using the example of pies eaten by grandchildren:





  • opposite events from the theory of probability - for example, buying a movie in an online cinema:





  • , , . , , ;
  • for : , , :





  • «» Python, - , .




Each author has his own style, and we try to keep it. In the corporate environment, the concept of the death of the author is popular. Its idea is this: the author should not be visible in the finished material. The main thing is to convey meaning, facts and experience. Further, the editor will make the text as impersonal and verified as possible.



We disagree with this concept. It seems to us that it destroys our presentation format. Yes, we have editors, together with the methodologists, they review the texts of the authors, correct them, and put themselves in the shoes of students. At the same time, the author can joke in a special way within the framework of his ideas about beauty. If it doesn't hurt the meaning, editors leave such things in the text.



Authors think over internal linkages of stages, names of modules, links to storytelling events, and much more. Editors make sure that the course program becomes progressively more complex, without sudden jumps. The facilitator may suggest transferring information to additional materials so as not to overload the student at the very beginning.



The text wanders back and forth until it becomes sufficiently informative and unambiguous, but the author's submission does not disappear from it.



How developers become authors



People come to authorship in different ways and from different specialties. It would be logical if those who wrote articles or lessons before came to us, but there are quite a few such candidates. Most often, authors are developers who are interested in the field of education and who want to share their knowledge with others. In addition to experience in a specific field of programming, it is important for us that the author is able to write and explain in an interesting way so that a person outside of IT understands him. It is also important that the author be able to draw precise analogies, come up with metaphors, examples and tasks from practice.



Here are some stories from the authors of the Workshop.



Artemy Vereshchinsky, author of the course "React developer", head of user interface development at JSC "Netris"



Artemy always wanted to deal with interfaces, he began to make up while still a system administrator, then he mastered development with CMS (Wordpress), after which he worked with European brands of the food industry. Then there was a year and a half of freelancing and mastering design and JS.



He worked as a frontend developer for a distributor of Razer, Pantone and other companies, made a LC and a shopping cart. He combined two roles and in a subsidiary of Rostelecom mastered full-stack development, implemented, together with the team, a product for managing video broadcasts and surveillance for world courts.



Now Artemy manages a team of designers who create a design system and develop B2G projects in the field of video surveillance, writes code as a front.

digital- β€” , , β€” . , -, . , .



, , .


Sergey Ozerov, author of the course "Web developer", front-end developer at nebenan.de An



acquaintance called Sergey to teach children the basics of programming. Prior to that, he studied at the Physics and Mathematics Lyceum, then at a technical university for physics, but programming during his studies was given to him with difficulty. Once again, in an attempt to understand the topic, he decided to explain it to himself, as a child, chewing all the terms and definitions as much as possible.



In the future, this approach helped him to explain not spherical programming in a vacuum, but to show on his fingers where, how and for what what code can be used, what programs can be written, what they do and where they occur in real life.

When you explain something to children, even something that you have passed a long time ago and seem to know perfectly well, you begin to understand it even better. At the start, I myself was just getting into some topics, and the preparation of materials for children helped me to master them perfectly.


Andrey Strogov, content leader of the first floor of the web faculty



Andrey studied in honey and studied programming in his free time. He was also accidentally offered to teach JS and layout basics to schoolchildren.



, , . : , , : Β«, , Β». , .



, . , . , computer science , .


Nastya Ragozina, author of the course "Java developer"



Nastya worked for several years as a Java programmer in the B2B segment, but over time she lost interest in this. A couple of months after leaving work, she began to look for party time related to education - she wanted to keep her own skills, and she also always liked helping newcomers. Nastya started as a reviewer for one of the courses, then wrote several materials for the course.

I realized that I was ready to work in this area, and at this stage I would like to make it my main job. I was lucky: it was at this point that the Workshop began to recruit authors for the Java course.


How not to bring knowledge to beginners



In the process of work, we have compiled for ourselves a separate list of what should be avoided by all means.



  1. - .



    , , - . , .
  2. , , , .



    Β« , , , Β», β€” . , , .
  3. .



    . , . Β« , ...Β» .
  4. , .



    , . , , , . , , , . .
  5. Explain one entity by mentioning a dozen other entities. This approach is confusing and time consuming for the student.


We write our courses with the efforts of cool authors and editors, and constantly refine and improve them thanks to feedback from students and our methodologists. If you like our approach and would like to share your experience, we have several vacancies for authors .



All Articles