📜 ⬆️ ⬇️

Experience in the development of a non-commercial project by the Junior

Good day, Habrahabr!

Let me tell you a little story about how a partner and junior were developing a non-commercial project.

This, for someone crazy, idea came to us when we realized that the ideas of our projects generated far more than we can realize in our spare time. Therefore, we are quite optimistic that if we take 2-3 juniors, carry them out with a code review, we will be able to implement our new idea quite effectively.
')
image


Initially, we offered beginner developers a 3-month internship, in which they are working on a non-commercial project, the source code of which lies on GitHub, get a code review from me and my colleague. As a result, we get a realized product, and juniors - the history of commits in GitHub, which is not a shame to show, useful experience and our recommendations for further employment.

First problems


The first surprise we encountered was the fact that there are an order of magnitude more juniors on the labor market than experienced developers. Before that, we had the experience of finding ruby ​​developers in fairly attractive projects with good working conditions.
I have to admit that I was incredibly surprised when I saw the number of responses to our offer of an unpaid internship. I will not lie, I did not have time to communicate with all candidates in the Telegram: while I was talking to one developer, I wrote the following.

The fact is that the situation in the junior labor market is almost the exact opposite of what is happening with IT in general. Today, there are a lot of courses that prepare "programmers", but in the end, after completing these paid courses, most people have very sparse knowledge, without any practical experience and with an absolute lack of understanding how and where to go. That is why a junior’s job comes to 30 or even 40 candidates during a week.

In this regard, we had to move away from the practice of live interview of each candidate, and replace it with a couple of simple test items.

The first task was an example of an obviously bad controller code in the MVC framework, where all possible design and implementation errors were probably collected. The candidate was invited to comment on this code and suggest ways to improve it.
The second task was to create a simple web application that implements similar functionality as the code from the first task.

Here we were in for a second surprise. Far from everyone who went beyond the second task. Someone immediately said that the task was too complicated, others enthusiastically took on the task and disappeared forever, others promised to do the task “next week” and continue to promise to this day.

Time to write code


However, we were able to select 3 adequate junior and start developing the project.
Needless to say that our idea of ​​the carefree code review turned out to be naive?

The mentoring of a group of novice developers requires not only a lot of time, but also well-built processes within the team. It is necessary to have automatic tools to check the quality of the code and a reliable testing system. It would be naive to believe that unit tests written by juniors will catch any bugs.
We have repeatedly faced a situation where the main feature of the application does not work, although all tests pass.

You should also be patient. Typical errors not experienced by experienced developers will be repeated over and over. Therefore, we started in parallel with the development of the project to keep documentation on the main problems and their solution. This source of knowledge will help recruits to find answers to common problems and quickly adapt to the project.

Results


If you are interested in what phase our project is, then I will answer that we are still working on it. It remains to "fix bugs and zaploploit." Nevertheless, we do not regret that we decided on such an adventure.

First, some of our developers have already found the first paid job, but they continue to participate in the life of our project.
Secondly, companies that looked at the source code on GitHub and are ready to offer work to our juniors began to contact us.
Thirdly, we ourselves gain invaluable experience in training interns, as well as experience in managing a team and a project.

What's next


Thus, as a result of working on our first project, we learned a lot about the market of novice developers and how to prepare them for real life correctly. And now, after a few months, we have a new project idea that will allow us to scale our initiative and give the opportunity for much more juniors to get the necessary experience.

Our goal is to give novice developers the opportunity to gain experience in real projects, which will allow them to feel more confident when looking for a job and undergoing an interview.

But this is most likely the topic of a separate article. So do not go far!

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


All Articles