With love from Stepik: Hyperskill educational platform

I want to talk to you about why we fix plumbing more than write dissertations about it, about different approaches to teaching programming and how we are trying to apply one of them in our new Hyperskill product.

If you don't like long introductions, then skip straight to the programming section. But that would be less fun.

With love from Stepik: Hyperskill educational platform

Lyrical digression

Let's imagine a certain young lady Masha. Today Masha was going to wash her fruit and calmly watch a movie, but that's bad luck: she suddenly discovered that the sink in the kitchen was clogged. What to do about it is still unclear. You can postpone this issue for an indefinite period, but there is free time now, so Masha decides to deal with the problem right away. Common sense suggests two options: a) call a plumber b) handle it yourself. The young lady chooses the second option and begins to study the instructions on YouTube. On the advice of user Vasya_the_plumber, Masha looks under the sink and sees a snaking plastic pipe made of several parts. The girl carefully unscrews one piece at the base of the sink and finds nothing. A piece of the pipe below turns out to be tightly clogged with an unknown substance, and even the fork found on the table cannot cope with the blockage. Experts from the Internet give disappointing forecasts: the part will have to be changed. On the map, Masha finds the nearest store, takes the unfortunate piece of pipe with her and buys the same, only new. On the advice of the seller, Masha also grabs a new strainer for prevention. The quest is completed: the sink works properly again, and its main character, in the meantime, learned the following:

  • Pipes under the sink can be untwisted and twisted independently;
  • The nearest plumbing store is one and a half kilometers from the Machine Apartment.

Most likely, Masha did not even notice how much she learned and learned, because she was worried about her own comfort in the future, and at the same time watching a movie and a washed apple. The next time a similar problem arises, the girl will solve it many times faster. In fact, Masha did not just return the world to its usual state; she studied inductively, that is, in special cases, and practice-oriented, that is, doing things, rather than studying them in detail and in advance.

Everything could have turned out differently. Suppose Masha is sitting in an armchair in the evening and suddenly realizes that she is not mentally and physically ready for a blockage in the sink. She hurriedly enrolls in a plumbing academy, studying types of sinks, pipes and possible connections, classifying plumbing problems and possible solutions to fix them. Masha does not sleep at night, remembering terms and names. Perhaps she is even writing a PhD in theoretical piping, where she talks about rubber gaskets. Finally, having received a certificate, Masha proudly surveys the kitchen, fully confident that now even the slightest problem with the sink will be solved at the snap of her fingers. In this scenario, the girl was trained deductively, moving from the general to the particular, and focused rather on theory.

So which approach is best? In the case of a sink and blockage, the first one, and here are the reasons:

  1. If only a working sink is important, then it is enough to know only what concerns this particular area. When Masha realizes that knowledge is not enough, she will definitely find a way to learn more.
  2. Encyclopedic savvy may not turn on in a real situation, because the habit has not been worked out. In order to learn the sequence of actions, it makes sense not to read about them, but to perform them.

Let's leave poor Masha alone and move on to the learning process as such.

Programming: learn or do?

We used to think that in order to develop and become an expert in an unfamiliar field, you first need to go to university or at least enroll in courses. We regularly listen to what they say, perform tasks. When the coveted diploma or certificate is in our hands, we instantly get lost, because we still don’t understand why we need so much information and how to specifically apply it. There is no problem in this, if further plans are to write scientific papers and travel with them to conferences. Otherwise, it is worth striving for skills, that is, doing and doing specific things again, trying and making mistakes in order to remember for a long time how best not to act.

One of the areas where a “full hand” or “diamond eye” goes next to the breadth of horizons is programming. If you talk to experienced developers, you will hear brave stories in which a person was engaged in mathematics / physics / teaching from a young age, and then got tired and moved to the backend. There are also programmers without higher education! First of all, a developer is valued not by a certificate, not by a diploma, but by the quantity and quality of written programs, scripts and websites.

“But wait!”, You object, “Sounds beautiful - take it and do it! I can't easily write myself a program if I haven't programmed before! It is important for me to understand where to write, how, in principle, to talk in a programming language with a compiler. It's not a plumber's phone number on Google.

There is a bitter truth in this. One unfamiliar aspect pulls another, which, in turn, a third, and soon this process turns into a show of a magician who continues to pull out the tied handkerchiefs and does not get them out of the cylinder. The process, to be honest, is unpleasant, on the 5th “handkerchief” it already seems that the depth of ignorance is close to the Mariana Trench. An alternative to this is the same lectures on 10 types of variables, 3 types of loops and 150 potentially useful libraries. Sadly.

Hyperskill: we built, built and finally built

We have been thinking about this problem for a long time. About how long we thought, the date of the last post in our blog speaks eloquently. After all the disputes and attempts to integrate the new approach on Stepik, we got ... a different site. You may have already heard of it as part of the JetBrains Academy. We called it Hyperskill, built project-based learning into it, tied the Java knowledge base to it, and enlisted the support of the EduTools team. And now in more detail.

With love from Stepik: Hyperskill educational platform

specific target. We offer a “menu” of projects (projects), i.e. programs that you can write with our help. Among them are tic-tac-toe, personal assistant, blockchain, search engine, etc. Projects consist of 5-6 stages (stages); the result of each of the stages is the finished program. “Why then the other stages, if everything has already turned out at the first?” Thanks for the question. With each step, the program becomes more functional or faster. At first, the code takes 10 lines, in the end it may not fit even in 500.

A bit of theory. It is impossible to sit down and, without knowing a word about programming, write even Hello World. Therefore, at each stage of the project, you see what theoretical basics you have to master and, most importantly, where to get them. The basics are also located on Hyperskill in the Knowledge Map section. If students are not required to read data from a file for the first stage of the project, they may not be able to continue. Then they will learn it themselves, for general development, or will be needed at the next stage.

With love from Stepik: Hyperskill educational platform

Knowledge map. It shows which topics you have already studied and how they relate to each other. Open any cute topic. You can skim through it with your eyes, but we also recommend that you complete small tasks to make sure that the information fits in your head. At first, the platform will give you tests, after them - a couple of programming tasks. If the code compiles and passes the tests, then compare it with a reference solution, sometimes it helps to find out a better way to implement it. Or to make sure that your solution is already perfect.

Nothing extra. We are waiting for both "green" users and experienced developers. If you've written programs before, don't worry, we won't force you to add 2+2 or reverse the line again. To immediately get to the desired level, when registering, indicate what you are already familiar with and choose a more difficult project. Do not be afraid to overestimate yourself: if anything, you can always return to a forgotten topic in the knowledge map.

With love from Stepik: Hyperskill educational platform

Tools. It's great to write small pieces of code in a special window on the site, but real programming begins with working in the development environment (Iintegrated Ddevelopment Eenvironment). Experienced programmers know not only how to write code, but also how to design a graphical interface, assemble different files into a project, use additional development tools, and the IDE takes over some of these processes. Why not learn these skills as you learn to code? This is where JetBrains comes to the rescue and a special version of IntelliJ IDEA Community Educational with a pre-installed EduTools plugin. In such an IDE, you can take training courses, check solved problems and peep into project tips if you forgot something. Don't worry if you hear the word "plugin" or "IDE" for the first time: we will tell you what it is and how to install it on your computer or laptop with minimal suffering. Understand the theory, and then go to the IDE and complete the next stage of the project right there.

Deadlines. There is none of them! Who are we to knock on the head and tell you how fast you write the program. When you enjoy writing code and want to finish it, you finish it, today or tomorrow. Develop at your own pace.

Errors. All of them are allowed, even if you are at one of the stages of the project, and then this stage will not pass automatic tests. Well, you have to figure out what went wrong on your own. We could tell where the error lies, but does it teach you to write code carefully? Read IDEA's hints or the Bugs theoretical thread, and when the program finally works, the dopamine rush will most likely not be long in coming.

Visual result. So, you have completed the first project, what's next? Enjoy the fruits of your labor! Play tic-tac-toe with your friends and show off your success at the same time. Upload the project on GitHub to show it to a future employer, write a description yourself, indicate there the knowledge that you used. 4-5 complex projects, and now, a modest portfolio for a novice developer is ready.

Opportunity for growth. Suppose you look at Hyperskill and don't see some important topic or useful project there. Let us know! If your background is wider and richer than the knowledge map, then write to us in the form Contribute. Our team will share their own tips&tricks with you, so we are happy to help you translate your knowledge into useful content that is understandable to users of all ages and levels. Maybe we will even pay, but that's not certain.

Welcome: hi.hyperskill.org Come, look, try, offer, praise and scold. We are also learning to teach you.

Source: habr.com

Add a comment