All courses

JavaScript/​DOM/​Interfaces course

The course for those who did not develop on JavaScript or did that casually and now wants to do it professionally.


The course consists of three parts:

  1. The first one allows to understand JavaScript, obtain skills to write good code, make use of modern language features and standards.
  2. In the second part we learn about how to work with the document and visitors, create menus, sliders, Drag’n’Drop and other interface components.
  3. The third part is devoted to more complex interfaces. Here we study how to build architecture, component interaction, how to organize the project and the code, to build it using modern tools.

On the course we pay a lot of attention to good code style and quality, in-depth understanding of the language. That's what differs a good developer from a newbie who remembered a few dozens of functions.

Program topics

  • First part
  • Second part
  • Third part

First part

  1. JavaScript basics.

    Here we learn the language itself, its special features and peculiarities that allow us to "talk" JavaScript in concise, easy to understand manner, and what's important -- without mistakes.

    • IDEs, tools to make the code better and check its correctness.
    • Data structures, working with numbers, strings, dates, arrays, object.
    • Development and debugging tools.
    • Automated testing, tools and how to use them.
    • Modern ES standards, using them now, polyfills.
  2. Deeper understanding of the language.

    To write good code, and also use modern frameworks, we study JavaScript more in-depth, including advanced language constructs.

    • Closures, using them correctly.
    • JavaScript low-level details that are important to know.
    • The context "this" in detail.
    • Call forwarding, borrowing and delegation for functions.
    • Prototypes, classes, OOP, patterns of use.

After the end of the first part you are fluent at JavaScript, know its peculiarities and modern standards. We'll improve these skills in the next parts of the course.

Second part

  1. Document, creating the UI

    Here we learn how to work with the document, do various things in the browser.

    • Browser internals, optimal page structure to load fast and work reliably.
    • DOM tree, polyfills things to remember to use modern DOM everywhere, not paying attention to old dying browsers.
    • Dynamic UI – DOM methods, their knowledgeable use.
  2. Events, interaction with the visitor.
    • Basics and peculiarities of various events to solve common UI tasks.
    • Drag'n'Drop techninques.
    • Patterns to optimize performance, so that UI still works fast even after it grows.
    • Object-oriented development, component architecture with OOP, events and DOM.
  3. AJAX
    • Talking with server using XMLHttpRequest/fetch.
    • Using Promises for async actions.

After the third part you can create UI components, but need more practice.

Third part

  1. Building the project
    • Node.JS as a project building and testing tool.
    • Organizing scripts, styles and other project components on the drive.
    • Templating, types of templates.
    • Modern project assembly techniques, webpack.
  2. Architecture of complex interfaces.
    • Event-based component interaction.
    • Project with many components.
  3. Where to move on?
    • Review of frameworks (Angular, React.js...), which one to choose.

In partice the three parts are not strictly divided from each other, but fluently transition one into another. Advanced topics use previous ones.

How we study?

Course time: 2 months, including 10 days of holidays with homework.

We plan to cover a lot during that time.

That assumes not a lazy picking in the nose during the lecture, but quite an active learning mode.

  1. Two times per week we have an online meeting where the teacher explains complex topics, gives feedback to your code, advices how to do it better. The meeting lasts for 1.5 hours, can be longer if needed to answer all questions.
  2. Between the meetings there's a homework to do. If you have difficulties, there's a group chat available always, and the teacher is there too. It is crucial that you do tasks, not just listen. We pay attention to the code style and quality, so please show what you did.

Summary: please be ready to learn and do tasks, many of those, especially after the middle of the course, are not that simple.

The course result

  1. You know JavaScript well, fluently develop and debug programs on that language.
  2. You can organize JavaScript-project, templates and styles on the drive into a conveninent structure, build and optimally attach them to the page.
  3. Your interfaces work reliably, without bugs, they are well-structured for easy development and improvement.
  4. We go from the basics to quite complex topics. The successful education is guaranteed if you regularly attend and do the homework.


If you don't like our course for any reason, you can get money back.

Let us know during the first week of the course, and then your participation will cease and you get a full refund.


Artem Mezin

A Senior Frontend Engineer with over 7 years of experience building rich web applications and 4 years experience in technical management. Always looking for ways to improve the quality of produced products and share the acquired experience.

I am interested in high loaded web services with a complex architectural design. Eager to learn the latest technologies and approaches.

Additional information

  • Beginner-intermediate level of HTML/CSS.

    JavaScript knowledge is not required.

  • For online lessons: internet speed 256kb/s or better. Windows/Mac/Linux are all supported.


read this before commenting…
  • You're welcome to post additions, questions to the articles and answers to them.
  • To insert a few words of code, use the <code> tag, for several lines – use <pre>, for more than 10 lines – use a sandbox (plnkr, JSBin, codepen…)
  • If you can't understand something in the article – please elaborate.