In this article, I want to share about the Rolling Scopes School – a free course on JavaScript / frontend that I attended and really enjoyed. I found out about this course by chance; there isn’t much information available online about it, but the course is excellent and deserves attention. I believe this article will be helpful for those trying to study programming on their own. In any case, if someone had told me about this course earlier, I would definitely have been grateful.
For those who haven’t tried to learn on their own from scratch, a question might arise – why would you need any courses, as there is a wealth of information online – just take it and learn. In reality, a sea of information isn’t always good, because choosing exactly what you need from that sea can be quite difficult. The course will guide you on what to learn, how to learn, and at what pace; it will help distinguish good and worthy sources of information from poor-quality and outdated ones; it offers a large number of practical tasks; and allows you to become part of a community of passionate and interested people who are pursuing the same goals as you.
Throughout the course, we constantly completed assignments: took tests, solved problems, and created our own projects. All this was evaluated and went into a general table where you could compare your results with those of other students. The competitive atmosphere is great, fun, and interesting. However, while the scores were important for moving on to the next stage, they were not the ultimate goal. The course organizers encouraged support and mutual assistance – in the chat, students discussed questions that arose while solving assignments and tried to find answers together. Additionally, mentors assisted us in our studies, which is a unique opportunity for a free course.
The course operates almost continuously: it launches twice a year and lasts for six months. It consists of three stages. In the first stage, we primarily studied Git and layout, in the second – JavaScript, and in the third – React and Node.js.
The next stage was based on the results of the previous stage's assignments. At the end of each stage, interviews were conducted. After the first and second stages, these were training interviews with mentors, and after the third stage, interviews were organized for the top one hundred and twenty students at the Minsk EPAM JS Lab. The course is conducted by the Belarusian community of frontend and JavaScript developers, The Rolling Scopes, so it's no surprise that they have contacts specifically with the Minsk office of EPAM. However, the community is also trying to establish connections and recommend their students to IT companies in other cities in Belarus, Kazakhstan, and Russia.
The first stage lasted just over a month. It was the most populous stage. In my cohort, it started with 1860 people – that is, everyone who registered for the course. People of different ages attend the course, but the majority of students are seniors and those who, after working for several years in another field, decided to switch careers.
In the first stage, we completed two tests on Git basics, two tests on HTML/CSS, the Codecademy courses, and HTML Academy. We created our CV in the form of a markdown file and as a regular web page, formatted a small single-page layout, and solved several fairly complex tasks in JavaScript.
The most extensive assignment of the first stage was the layout of the Hexal website.
The most interesting assignment was the gaming Code Jam on knowledge of CSS selectors called 'CSS Quick Draw'.
The most challenging tasks were the ones related to JavaScript. An example of one such task is: ‘Find the number of trailing zeros in the factorial of a large number in the specified numeral system’.
An example assignment from the first stage: .
As a result of the assignments completed in the first stage, 833 students received invitations for interviews. A student's progression to the second stage during the interview was determined by their future mentor. Mentors from Rolling Scopes School are active developers from Belarus, Russia, and Ukraine. They assist and guide, check assignments, and answer questions. In our cohort, there were over 150 mentors. Depending on their availability, a mentor can take from two to five students, but two additional students are sent for interviews so that the mentor can select those with whom they will work.
The distribution of students and mentors was one of the most interesting and exciting moments of the course. The organizers added a small game element – data about the mentors was stored in a sorting hat, clicking on which revealed the name and contacts of one’s future mentor.
When I learned the name of my mentor and looked at his profile on LinkedIn, I realized that I really wanted to work with him. He is an experienced developer, a senior, who has been working abroad for several years. Having such a mentor is truly a great opportunity. However, I thought that his expectations would be very high. It later turned out that I was wrong about the excessively high expectations, but at that moment, I thought exactly that.
The questions for the upcoming interview were known in advance, so it was possible to prepare for it ahead of time.
OOP was taught through videos. . Its author, Sergey Melyukov, explains things in a very accessible and clear manner.
Data structures and Big O notation are excellently covered in the article. .
The task on JavaScript, which would definitely be on the interview, caused the most doubts. I generally like solving problems, but with Google and in the browser console. However, when it needs to be done with pen and paper (or mouse in a notepad), it becomes much more challenging.
It's convenient to prepare for the interview together on the site. – asking each other questions, coming up with tasks. This is quite an effective way of preparation: when you take on different roles, you better understand the person on the other side of the screen.
What could my interview have looked like? Most likely, it resembled an exam, with an examiner and an examinee. In reality, it was definitely not an exam. Rather, it felt like a conversation between two passionate people working in the same field. The interview went exceptionally smoothly, comfortably, and amicably; the questions were not very difficult, the task was quite simple, and the mentor had no objections to solving it in the console and even allowed me to peek at Google ("using Google at work is not prohibited").
As far as I understand, the main purpose of the interview was not to check our knowledge and problem-solving skills, but to give the mentor a chance to get to know their students and show them what an interview generally looks like. The fact that the interview left only positive impressions was the result of their conscious efforts and desire to demonstrate that there is nothing frightening about interviews, and that they can be approached with pleasure. The question remains why it was relatively easy for someone with a technical background, and it rarely succeeds for instructors. Everyone remembers the anxiety before an exam, even when they thoroughly understood the material. Since we're discussing formal pedagogy, I would like to share another observation. The course included students from higher years of IT specialties, and they claimed that the learning format offered by Rolling Scopes School is much more beneficial, interesting, and effective than a typical university program.
I passed the interview. Subsequently, the mentor set a day of the week and time that was convenient for them to talk with me. By that day, I prepared questions, and they answered them. I didn't have many questions about the projects I was working on; most answers I found on Google or in the school chat. However, they shared insights about their job, potential problems and solutions, and provided observations and comments. Overall, these conversations were extremely useful and interesting. Additionally, the mentor is practically the only person interested in what you are doing and how, someone who will look at your work, point out what is wrong with it, and how to improve it. The presence of mentors is indeed a huge advantage of the school, whose role is hard to overestimate.
In the second phase, we had a very interesting and dynamic Code Jam called "JavaScript Arrays Quick Draw," which was exciting and engaging.
The Code Jam "CoreJS" turned out to be much more challenging. 120 tasks on JavaScript, for which we had 48 hours to solve, became a serious trial.
We also had several JavaScript tests, the link to I have saved in my browser bookmarks. You have 30 minutes to complete the test.
Next, we designed the layout for NeutronMail, completed the Code Jam 'DOM, DOM Events', and created a search engine for YouTube.
Other tasks of the second stage: Task: Codewars – solving problems on the eponymous site, Code Jam 'WebSocket Challenge.' – sending and receiving messages using WebSockets, Code Jam 'Animation Player' – creating a small web application.
One of the most unusual and interesting tasks of the second stage was the task 'Presentation'. Its main feature was that the presentation had to be prepared and presented in English. You can see how the on-site presentation stage went.
Undoubtedly, the most challenging and extensive was the final task of the second stage, during which we were asked to create our own copy of the web application Piskel (www.piskelapp.com).
This task took more than a month, with most of the time spent understanding how it works in the original. For greater objectivity, the final task was evaluated by another randomly selected mentor. The interview after the second stage was also conducted by a random mentor, as we were already accustomed to our own, and he was used to us, while in real interviews, there are usually unfamiliar people.
The second interview turned out to be much more difficult than the first. As before, there was a list of interview questions that I prepared for, but the mentor decided that simply asking theory questions wouldn't be quite right and prepared a set of tasks for the interview. The tasks, in my opinion, were quite difficult. For example, he genuinely couldn't understand what was stopping me from writing a bind polyfill, while I sincerely believed that knowing what bind and polyfill are was already significant. I couldn't solve this task. But there were others that I managed to handle. However, the tasks weren't easy, and as soon as I found a solution, the mentor slightly changed the conditions, and I had to solve the task again, now in a more complex variant.
I should note that the atmosphere of the interview was very friendly, the tasks were interesting, the mentor spent a lot of time preparing them, and he aimed for the educational interview to help in passing the real interview when applying for a job.
Examples of the second stage tasks:
In the third stage, we were offered the Culture Portal task. We completed it as a group and got acquainted with the features of teamwork, distribution of responsibilities, and conflict resolution during branch merges in Git. This was probably one of the most interesting assignments of the course.
Example of the third stage assignment: .
After completing the third stage, students who applied for a job at EPAM and were among the top 120 underwent a phone interview to assess their English proficiency, and are currently going through technical interviews. Most of them will be invited to the EPAM JS Lab, and then to real projects. Every year, more than one hundred graduates from the Rolling Scopes School get employed at EPAM. Compared to those who started the course, this is quite a small percentage, but for those who made it to the final, the chance of getting a job is quite significant.
There are two difficulties to be prepared for. The first is time. You will need quite a bit of it. Plan for 30-40 hours a week, more if you can; if it's less, it's unlikely you'll manage to complete all the assignments, as the course program is very intensive. The second is an A2 level of English. If your level is lower, studying in the course won't be a hindrance, but finding a job with that language level will be quite challenging.
If you have any questions, feel free to ask, and I'll try to answer. If you know of other similar free Russian-language online courses, please share; it will be interesting.
Source: habr.com
