Tips for completing projects

Get ready for projects

The project description has a recommended list of courses and materials for you to study before getting started. Projects are built into the Hexlet learning programs, and we advise taking courses and projects in the order in which they are prescribed.

The article "Preparing for Projects" outlines the technical details for you to get ready. Be sure to read it, especially if you use Windows.

The solution does not have to be perfect

Some students strive to write perfect code on the first try, spending a lot of effort and time on this. For example, they'll spend several days on one step until it reaches "perfection". As a rule, this is not possible, and in the same time you could have gone through several steps.

Two conclusions from this:

  • On the one hand, make every effort to write good code. Strive so that you don't have to fix bugs when it comes to checking.
  • On the other hand, write code as you are able to. First, try to tackle the problem "head-on" - choose the easiest and most straightforward way to implement it.

Don't be silent and don't shut down

Projects, especially for newcomers, are an escape from your comfort zone, encountering the new and unfamiliar. When they have difficulties, some students withdraw and subject themselves to excessively long reflection, or lose heart altogether and abandon the project.

But the projects are not as complicated as they may seem at first glance. They are designed in such a way that, with an even distribution of effort ("a little every day" rather than "all at once"), you will successfully reach the end.

So don't panic, ask questions, and keep going!

Who should I ask?

Depending on the learning format, you can ask:

  • in the group chat if you are studying with a tutor. A classmate or a tutor will answer. If you study in a group, it's important to ask questions publicly, not in private messages, so you build a common knowledge base that will help other students as well. So as not to accidentally hint anyone, do not paste your code into the post - instead, attach a GitHub link
  • other students in our community or in discussions on the website if you are studying without a tutor. Ask questions in the #hexlet-projects channel in our Slack. There are discussions on each step of the project at the bottom of the page, and answers to some questions can be found in the previous students' topics

Tutors answer questions on projects within 2-3 days maximum, and community managers monitor the timing and quality of answers in groups. Other students can respond in the community and discussions - there is no regulated response time.

Working with a tutor

  • Tutors are on your side. It's in their interest that you do well with the project
  • A tutor guides you in the right direction, but doesn't write the code for you. You shouldn't expect them to give direct hints or ready-made instructions
  • Your teamwork skills are developed on the project. In this case, tutors act as a project stakeholder. Your views may not coincide with your tutor's requirements, and that's okay. But, if there are disagreements and disputes that cannot be resolved, they have the last word
  • Pay attention to your tutor's feedback - don't ignore their remarks
  • The priority is the code quality - it must not only work, but also be clean. So your tutor's comments about your code's quality and readability - from naming to the number of spaces - should be taken seriously.


Copying and borrowing other people's code is prohibited by project rules. But that's not the point. When students try to cheat the system, the only real victims of these actions are themselves. They are only deceiving themselves.

The point of a project is to go through the pain and suffering of writing code yourself, to gain refactoring experience based on feedback from a tutor, and to solve unfamiliar problems. Projects help to consolidate acquired knowledge and simulate real programmer experiences.

Cheaters voluntarily deprive themselves of all these opportunities.