Hard skills
What do JavaScript and a smart fridge have in common?
15 Nov 2021

JavaScript has the flexibility that allows you to write anything, and it will (most likely) work,” quips Vladyslav Sydorenko, Software Engineering Team Lead at EPAM Ukraine, who, in his own words, started coding pages for Internet Explorer “back in the Dark Ages.” The expert discusses the creation of a JavaScript language in just two weeks, mastodon frameworks, and... a smart refrigerator.

No programming language or technology is better than the others — some are just better suited to solving specific tasks.

Front-End development has a brief but eventful and rapid history. The first websites looked like newspapers, only electronic, you could only read them, and advanced functionality and user interaction were not even on the table. Soon enough, there appeared a need to "animate" the pages, make them dynamic, and add buttons that would respond to clicks, and this marked the beginning of the "classic era" of Front-End.

In 1995, in just two weeks, American programmer Brendan Eich created the JavaScript scripting language. Despite the similarity of the names and the fact that Eich himself called Java a source of inspiration, these languages have almost nothing in common. By the way, we are still experiencing the echo of the language being created that quickly: some functionality may operate with somewhat odd logic.

The JavaScript boom came in 2012-2013 when single-page websites (SPA or Single-page applications) became widespread. The most famous examples of SPAs are YouTube and Facebook. At the same time, various frameworks emerged at a dizzying pace. Mostly, they were tailored to suit the specific needs of individual projects. Developers even joke that were you to google any word and add JS, you will almost certainly find a framework with that name. In any case, React, Angular, and Vue are the three most popular frameworks, and I recommend that beginners start with them. To describe each of them in a nutshell: 

  • React is the most flexible framework of the three allowing you to freely select tools. However, the developer must understand what tools are best suited for each particular case to avoid making critical errors.
  • Angular, on the other hand, strictly declares the rules for writing an application. While this helps to avoid confusion, it also limits the freedom of choice.
  • Vue is a kind of mix that combines the best practices of both above frameworks.

Evolution and new dimensions of the term "Front-End developer".

Today, there is a clear classification of what exactly professionals using the JavaScript language do:

  1. HTML coders stood at the origins of front-end development and were directly responsible for page layout. They work with CSS, HTML, etc. Even today, HTML coders are in demand as many resources use another technology for the backend, so the customer needs work done only with the portion that users see.
  2. Front-End developer is the next level, where specialists no longer focus exclusively on the layout but work with frameworks, know the specifics of browsers, including mobile ones, build process logic, and create designs that perform as desired by the customer.
  3. A JavaScript developer is a professional who has a deep understanding of browsers and their features. They apply this knowledge in their work, although they may not focus as much on the overall logic of application development.
  4. A mobile application developer is an offshoot of the previous specialization. Mobile developers work with React Native, Ionic, and other technologies to create applications for mobile platforms. Sometimes, customers opt to write mobile applications in JS, which allows them to avoid developing separate apps for Android and iOS. While this approach can save money, it may not always be the most effective solution.
  5. Backend JavaScript developers, as the name suggests, write backend applications using the C++-based NodeJS platform. On its basis, many frameworks have been built, enabling the creation of database queries, building process logic, writing scripts for CI/CD, and more. By the way, using JavaScript to write both front-end and back-end parts helps understand back-end developers better and speak the same language with them. JavaScript serves as a unifying language, helping to prevent misunderstandings during the development phase.

Can JavaScript be applied on the household level? Absolutely! Using JS and out-of-the-box thinking, one of my friends automated daily tasks and created a... smart refrigerator. He used the Johnny-Five platform to program microcontrollers and installed weight sensors on specific shelves in the fridge. If the shelves were empty for a predetermined amount of time, the fridge would automatically add the necessary items to the shopping list, place a weekly order with a grocery delivery service, and even pay for it with a card. It is an excellent illustration of the JS potential for any device or application.

Advice for beginners on their future careers:

  1. The basic level of a beginner for all the above positions means that you know data types and conditional statements, how to write loops and work with functions, arrays, and objects. Later, you will learn to build more advanced applications based on this knowledge. Although frameworks can save you from studying some things in depth, do not overlook the basics.
  2. Select the specialization you want to pursue and research prerequisites for it on job websites and professional communities. This way you'll get an idea of the current requirements for professionals in the market. 
  3. Practice JavaScript while you're learning it. Since it's a relatively easy language, put what you've learned to use immediately on pet projects.
  4. Concentrate on a select few sources of information; for example, choose one developer and follow their blog. The reason behind this advice is quite straightforward: the Internet is overflowing with information, and some resources contradict each other.
  5. Enlist the support of a mentor. By the way, EPAM University offers such an opportunity to its students. This approach is certainly beneficial for beginners as it allows them to seek guidance and draw on the expertise of more experienced colleagues rather than blunder on their own.
  6. If you don't have a LinkedIn account yet, create one and update it regularly.

Links to useful self-study materials on YouTube and other platforms:

English-speak blogger that I often watch

HTML course

CSS course

Yet another cool YouTube JavaScript course

The best blog to follow

LinkedIn Page of an outstanding lector from Kyiv Polytechnic Institute

If you are looking to learn the fundamentals of JavaScript and explore the endless potential of this language, consider joining EPAM University's JavaScript programs. Welcome to the fascinating world of JS!