📜 ⬆️ ⬇️

The school of interface developers of Yandex again opens the set



Until January 31, you can submit an application to the Yandex Interface Design School. The training is free, but the input requirements are rather non-trivial. To receive it is necessary to pass a test task. To do it, you need to know HTML, CSS and JavaScript and have at least minimal experience in developing interfaces.

Who is the interface developer? This is a frontend developer, that is, one who develops in HTML, CSS, JavaScript, and in general all that is responsible for implementing user interaction. Usually we make interfaces on these technologies for desktop and mobile platforms. But in general, projects can be very different, for example, for TVs, like one of the teams from last year.
')
Graduates can apply for any vacancy of interface developers, for example, here on these places in Yandex.

Under the cut a little more details about the training and the example of the project of students of the last year.

This is the sixth Yandex Interface Development School. Studying in Moscow, you need a personal presence - there is no distance learning, but all key lectures are filmed (links at the end of the post).

Classes will be held in the Moscow office of Yandex. Nonresident participants, we will pay for travel and accommodation in the hostel.

Three classes per week: on Mondays and Wednesdays - from 19:00 to 21:00, on Saturdays - from 12:00 to 16:30, and if you have passed the second stage, then on Saturdays it will be from 11:00 to 19: 00

The first stage is a course of lectures and isolated practical exercises. Just like at the university, only with a very clear focus on the real world. Lectures take place from March 5th to April 22nd.

The second stage is practice. You team up with other developers in small teams and work in the hackathon mode. Only the finished project is evaluated. It is developed from April 23 to May 27. The designers and project managers of the team are active Yandex employees, quite good tasks have a chance to get into real production with minimal modifications, that is, you may already have something significant in your portfolio for release.

Questions related to the School can be asked in a letter to frontendschool@yandex-team.ru .

First phase program


Each topic is a theory block, a practical homework assignment and its analysis. Topics:


Example of setting the second stage and the impressions of the participants


Last year there was Mobilization, so designers from the School, managers from the School, and interface developers immediately went into the hackathon mode. One of the teams looked to the SmartTV on TizenOS (the most popular platform installed on Samsung TVs). The assumption of the guys was this: firstly, SmartTV as a whole is a very rapidly growing segment of Internet access (approximately 40% growth per year). Secondly, there is no special competition there yet, and it is necessary to “stake out” the site. Thirdly, you can’t just pick up and port a mobile application there - both input principles and usage scenarios are very different.

The team gathered from 3 developers, the manager and the designer. The designer at the first stage brought the following project:



It included research and analysis, prototyping, user testing and a product development plan. This is an application map with scripts. Here are the basic ways of using the application by the user, who needed to understand the project, how it should work.

The task of the team was to revive all these pictures, make sure that the product works fine on the final platform, and users do not go crazy trying to use all this, and write supported code. That is, create a real application that can be used.



Here are the nuances of the work were from the point of view of students:

Because of the CORS restrictions, it is impossible to implement a direct request to the API from the application, you had to develop your own proxy server, which later began to perform the function of a cache server. The developed server is a Node.js application that uses the Express web framework. Data is normalized using normalizr for deduplication.

Small surprises were at every stage. For example, on the delay, the team unexpectedly found out that the Heroku servers are located in Europe (and the Ya.Music API works only within the Russian Federation). And they needed VDS in Russia.

Frontend React + Redux architecture. Under the hood, TizenOS is an old chromium. During the work, the guys noticed that the current Flexbox specification is not fully supported, calc, focus-within is not supported, there are problems with viewport-units and performance of css-animations. Here is another example of a surprise, as the participants themselves described it: “At first, the control solution from the console determined the navigable elements according to the class that is written in the config file. All DOM elements with such classes fall into the library's “field of view”. During initialization, the library passes all elements using querySelectorAll, and then using getBoundingClientRect determines the position of each element, compares the elements, and finds the nearest neighbors. These elements will be switched. For universal applicability, the library performs this cycle with each switch, which, of course, is inefficient, if the layout of the elements on the page has not changed. This (and a lot of unnecessary component updates) caused performance problems on the TV. We spent the decomposition of components, revised the movement of data and eliminated some unnecessary updates. ”

“At home - this is generally another scenario, parties, karaoke. Selected problems. They had a lot of ideas for the future that they didn’t immediately implement, for example, managing an application on TV from a phone. Karaoke mode is not implemented. The party mode is not implemented - this is when everyone has connected with his device, everyone has thrown the tracks and all are dragged, that is, do not switch between accounts and do not climb each other on the walls of Vkontakte.

Implemented the application under Tizen, made a strong basis. This connection account, playing music, plus we pull all the playlists of the user and so on. Until recently, they argued what was more important: to cut features or to make everything work without questions. We chose the second, because until recently we were not sure that when rolling out all the models on TVs, all this would work fine. Worried about the brakes on the old TV, for the launch on the entire line of Tizen.

Worked in the tracker, there were daily meetings. They took into account that it is interesting to anyone, and they distributed such tasks. We did each other a code review, plus the curators from Yandex helped. The schedule was different for everyone. Someone combined with work / study, someone could devote more time to the project. Adjust to each other. When they could, they worked in the negotiations of Yandex together, once remotely. Meetings were held and in person, and on Skype. Used chat in Telegram.

We had the opportunity to use the Yandex laboratory and conduct a full-fledged test of our application on unauthorized users. In my opinion, everyone really liked this moment. It was interesting to watch, ask around. On a real example, we could observe that some interface things that were obvious to us were not so obvious to the user.

For a month, they tried to build a process from scratch. If they had worked for another month, they would have fallen on stable rails. We simultaneously sawed and a new project, and studied the platform, and built processes in a team. ”

Egor Svertkov, Project Manager
“I studied development at home. It began as a hobby - I did simple applications for tutorials and test tasks for vacancies, but I did not get a job. I saw the introductory task in the SRI and decided to try. The task was done long and sent 10 minutes before the end of the reception. A month later, the answer came - come to Moscow.

In SRI you progress very quickly. When there are around more than 20 developers, there will always be someone who knows the answer to your question. And if at home I would reach the decision in a few hours, then in SRI one can recognize him in 5 minutes. ”

Dmitry Rodnikov, developer of interfaces in the banner system, a graduate of SRI 2017.
“We were very limited in time when developing the application. And I wanted to do a lot and well. Therefore, for me the whole second stage was in the hackathon mode. We immersed ourselves completely in the project and literally only them lived throughout the month.

The curators helped us, but they never told us how to do it, but only pushed us to the right decision. ”

Yana Zolnikova, main interface developer, SRI-2017 graduate

Even on a team of 4 people it was necessary to do the normal documentation. The guys were documenting the ui-components using Styleguidist. PropTypes were prescribed in each component - which properties it takes, what type and which of them are required. Some components were accompanied by examples of use. As a result, they have a library of ui-components. This allowed them to separate the roles: one imposes components, the other adjusts the movement of data between them. And also allowed each developer in the team to know what are the finished components and how to use them.

The division is this: the team has agreed that each developer will create a new branch for each feature, open a pull request and, after a review of other team members, merge it into dev.

On the first day of work on the project, the students started a channel in Telegram, in which they conducted the entire discussion. Part of the team worked remotely, part - in the Yandex office. Therefore, participants regularly wrote about completed tasks and announced what they would do next. At different stages of the project, they were united in groups and solved a specific task. Pair programming helped to quickly find problems and learn from each other’s experiences.

All work was divided into 4 sprints:




Another couple of stories about learning


“I got to SRI spontaneously - the test tasks interested me. It took them about four nights. Honestly, sending the results, I didn’t count on anything - I just wanted to get feedback. But after a couple of weeks I received a letter that I was accepted. The school gave me first practical experience. I don’t really accept the theory: I can tell you a thousand times how it works, but until I see everything myself, I don’t understand. A good interface developer should not only embody the layouts in the code, but also see the product behind the project, participate in the creation of the concept together with the manager and the designer. To do this, you need to be able to find a common language with people - this is also taught by the SRI. ”

Tamerlan Lokyaev, interface developer at Yandex.Market, SRI-2017 graduate
“I graduated from the Perm State University Physics Department. Programming was fascinated by a fellow student who began studying C #. I remember that I wanted to make my site - I was engaged in photography. After high school, I worked for a while as a tester of medical software, and then I moved to an IT company: first I was a layout designer, then an interface developer. Now I work in Yandex, they called me here after SRI. In my opinion, an interface developer should be a versatile person who understands both algorithms and design. You need to have your own sense of beauty - it's nice when you yourself internally agree with what is happening, and not just accept what the designers bring. Do not get involved in frameworks and ready-made libraries. You need to understand the language in which you write, then it will not be a black box for you. ”

Maxim Lykov, video search interface developer, SRI-2017 graduate

Once again links

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


All Articles