Hard skills
A developer who can do anything: who JavaScript Engineer is and why you should become one
28 Aug 2020

A dynamic language with a short learning curve that offers ample opportunities in IT and lets you learn everything there is to know about web development. It is how engineers describe JavaScript. We decided to dig deeper and talk with our coworker Denys Sushchenya, Software Engineer. He told us why one should learn JS, what are its advantages, and what prospects this programming language can open.

Why JS? 

When I got interested in web development, I understood that JavaScript is highly popular and widely used. You can write almost anything in it: from native apps to backend solutions. There is a great deal of easily accessible information about JS on the Internet. You can write your first program by simply opening a browser in a developer mode or working in a notebook. Nothing else is needed. Besides, you can use software written in JS from any modern device. I thought it is a programming language to start with and develop my career in IT, and my expectations came true. 

What JS code is like? 

JS took up some good qualities of other languages, like Python and Java. JS code is engineer-friendly, especially for beginners. But sooner or later you will face some difficulties. Sometimes you can deal with kind of funny errors that will seem inconceivable to a developer in another language. Or, on the opposite, things that at first sight seem obvious and logical (assumptions about what and how everything works) might turn out to be different from your expectations. It can be a problem for novice developers. But moving forward, you delve into the language, come to understand its subtle aspects, and all these problems now prove to be useful tools. In other words, you look at them from a different perspective, and you understand how to use them wisely. 

Is it easy to learn JS?  

If to compare it with other languages, JS is a bit simpler. It can put up with errors. It has good infrastructure and plenty of solutions which can help us avoid problems. All these tools turn JS into a full-fledged programming language. It is pretty easy to learn: the Internet is full of various books, courses, and tutorial videos. You can find all the information online. It facilitates the process of mastering the language. Besides, JS has a wide community of developers who are always ready to answer different questions and help like-minded people. But do not think that the JS language is primitive. The more you learn about it, the harder things you come up against. For instance, prototypical inheritance. It is a conception that cannot be practiced in other languages, like Java.   

Where to start? What to focus on? Can I learn it on my own? 

The knowledge of HTML (Hypertext Markup Language) and CSS (Cascading Style Sheets) is fundamental for a JS developer. Put it simply, HTML is the blocks that form the basis of the website, and CSS is a tool that helps us arrange the blocks properly. At first, this knowledge will be enough, and you can even start looking for a job with it. However, to get a broader understanding of JS, one should acquire knowledge of Computer Science. Put it another way, you should understand what database and algorithms are and how to work with them.   

Everything I have just listed is the basis that you can learn on your own. As I have said, there is plenty of interesting websites and textbooks. YouTube is full of videos where developers explain how to create a website or an app step by step. The only thing you need to do is to watch, read, ask questions, talk with people, and try. If you do not know where to start, I would suggest the course JavaScript Tutorial from W3schools. I believe this is a perfect resource for self-study. After each chapter, there is a task having completed which you will understand the material better.

How to get the first work experience? 

You can build the first app for your relative who owns a business. Or you can start working in a web studio where developers create turnkey websites. The requirements there are not high: you do not necessarily need work experience or advanced knowledge in JS. This is a good place to sharpen your skills. Quite often big companies organize internships and courses for engineers with proficient fundamental knowledge in JS. Here, of course, you will have an interview where you will show your skills. But then a company will offer you more opportunities to grow professionally and be promoted to a higher position. For example, you can check out the available educational opportunities for JavaScript Juniors from EPAM and register right now.

In general, JS developers are in demand in big companies and on big projects. And the first challenge you will have to face at work is a long adaptation period. You will need time to settle into the new job. The tasks you will get here will differ from those you had at courses. For instance, I got employed in a company when I was still studying at the courses. After five months of study, I started to work on a real project. It was extremely difficult to fit in. I read an online textbook and completed the tasks in it to find the necessary information and keep in practice. At first, I spent plenty of time reading other people’s codes, trying to understand it and add something of my own.   

Is it easy to find a job for a JS developer? 

The demand for JS is constantly growing. Web development also does not stand still, and everything around us goes online. Nowadays, even the smallest companies have their website. JS has been the only language supported by the browser for a great while. Now there are other solutions, but they are practically not developed. For that reason, JS will be impossible to replace for the next 10 years, and the demand for JS developers will only grow. 

From the viewpoint of the employer, a good JS developer in a company is a great advantage. Just think about it: if you have a developer who knows only one programming language but can do anything you need in it; it is a great benefit and economy. What does a developer get in return? They will be in demand, get a good salary, and have the freedom to act. 

However, you should understand that fundamental knowledge is not enough for success. The number of necessary skills is limitless. At work, you will constantly have to learn something new and develop. It is an ongoing process that is essential to move forward. I had a chance to work on several projects in different domains: the gaming industry, the financial sector, and staff management. Even though I always used JavaScript in building the apps the conditions for doing it changed in each case. It was like that because an engineer’s job is effective only when they have good knowledge of the domain they are dealing with and understand where and how this app will be used. My current project relates to an American company. Working on it I learned a lot about the law of the United States.   

What does a JS developer do during the day? 

During the day, we have meetings where we discuss our everyday matters: what problems each person has, what everyone is busy with, etc. Then, each of the team members has a list of tasks. For example, I know what I need to do by the end of a fortnight: to write a code and check how it works. Most developers have a similar routine during the day because we all work on big projects in teams, and quite often most of the time is spent on communication and solving different problems. Hence, writing a code takes a back seat. 

What qualities can help you find a common language with coworkers? 

When you work in a team, it is essential to keep in with its members. As everyone is an individual with their character traits, learn to understand one another despite the differences. Be patient with yourself because sometimes there are so many tasks and problems that seem almost unsolvable that it may drive you crazy. Keep it in mind. But one day, you will finally understand what the problem is, and you will look at it with a smile. 

Where can I develop having my knowledge of JS, if I get tired of the current field? 

JavaScript offers a unique opportunity to switch the field of work to another without learning a new language. What I mean is that there are two possible development paths for a JavaScript Engineer: frontend and backend. Frontend deals with the website structure and everything a user sees. Backend is information storage of the website (here we can find all the fields which can be completed on the screen). When we click “Save” on this field, the information goes to the server (i.e. backend). It processes the data and then stores it. The work of a backend developer here is to create this server. The largest server is maintained in the company and the second one—on your phone or your PC. 

At first, I worked only in frontend, but now I have also started to learn backend development. I find the latter quite interesting, and further, I would like to become proficient in both paths to build apps from each side. 

You can try your hand at native or mobile development. JS is used everywhere. Of course, it is gradually replaced by more convenient solutions like the React Native framework. I believe everyone knows social media applications are built using React and JS. Other units focus on developing desktop apps (such as Skype or Teams) using JS. 

Pieces of advice 

Set goals. Motivation is of great importance when it comes to studying or work. You must wish to become a developer and try to figure out why. Not understanding this makes it harder to achieve your goal.  

Communicate, listen, try. To understand what field of work suits you, I would advise you to attend conferences. It is the so-called reorientation in IT. Listen to the speakers who tell you about different fields and programming languages. Ask them questions, listen to yourself, and try to study something that feels like yours. Do it even if you have understood after a while that JS is not your scene. By that time, you will have learned some fundamental knowledge with which you will easily be able to switch to another field of work. In any case, if you can write a code, it will be your advantage. Iterations, builds, and constraints are practically the same in all languages, and that is why your knowledge will be quite useful.  

To put everything in a nutshell, can you define a JS developer? It is an engineer who can… 

To be honest, I want to say that this is an engineer who can do anything. However, let me define it like this: JS developer is an engineer who monitors a dynamically developing programming language, concerns themselves with new tools, and always stays up to date.