<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dor Moshe</title>
    <description>The latest articles on DEV Community by Dor Moshe (@dormoshe).</description>
    <link>https://dev.to/dormoshe</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F32133%2F41a5f180-edcb-40e8-9745-95a3fef7aae8.png</url>
      <title>DEV Community: Dor Moshe</title>
      <link>https://dev.to/dormoshe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dormoshe"/>
    <language>en</language>
    <item>
      <title>I’m a Fan of TypeScript, but Please Be Careful!</title>
      <dc:creator>Dor Moshe</dc:creator>
      <pubDate>Fri, 07 Jun 2019 10:09:14 +0000</pubDate>
      <link>https://dev.to/dormoshe/i-m-a-fan-of-typescript-but-please-be-careful-42h9</link>
      <guid>https://dev.to/dormoshe/i-m-a-fan-of-typescript-but-please-be-careful-42h9</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdormoshe.io%2Fimages%2Farticles%2F27%2Fmain.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdormoshe.io%2Fimages%2Farticles%2F27%2Fmain.png" alt="I’m a Fan of TypeScript, but Please Be Careful!"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dormoshe.io/articles/im-a-fan-of-typescript-but-please-be-careful-27?utm_source=devto&amp;amp;utm_campaign=im-a-fan-of-typescript-but-please-be-careful-27" rel="noopener noreferrer"&gt;This article originally appeared on dormoshe.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is a &lt;strong&gt;phenomenon&lt;/strong&gt; among front-end developers. It’s a new phenomenon. I diagnose more and more developers who are &lt;strong&gt;infected&lt;/strong&gt;. There is no research yet about the consequences. There are no exact numbers or statistics. And I’m not a doctor, but I think that there is no &lt;strong&gt;danger of death&lt;/strong&gt;. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;At least, not yet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Probably, it’s an &lt;strong&gt;epidemic&lt;/strong&gt;. There is a &lt;strong&gt;danger of infection of each other&lt;/strong&gt;. The epidemic has been spreading out. Everyone experiences that in different ways, depending on the progress and time of one’s career. &lt;strong&gt;If you have a weak heart, please stop reading&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://eepurl.com/dAK9Sr" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2For711c4jcy3d85nyw1vc.png"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  DABDA
&lt;/h2&gt;

&lt;p&gt;Let’s start with the diagnose. Try to be &lt;strong&gt;honest&lt;/strong&gt;. We are here to help you. Among those who are infected, we found there are five different stages which developers go through. Those stages are popularly known by the acronym &lt;strong&gt;DABDA&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The first stage is &lt;strong&gt;Denial&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No No No shut up! It’s not happening to me. I’m not like them. I have the knowledge!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The second is &lt;strong&gt;Anger&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Why me? It’s not fair! Who developed this language? Who introduced me to it?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The third is &lt;strong&gt;Bargaining&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I wasn’t ok, but give me a chance! I will learn what the differences are between… and how to… I will be a better developer. I am ok with earning less money…&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The fourth is &lt;strong&gt;depression&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I’m broken! There are no reasons to program. Leave me alone!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The fifth is &lt;strong&gt;Acceptance&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I know, I can’t fight it. I may as well prepare for it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdormoshe.io%2Fimages%2Farticles%2F27%2Fovercome_fears.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdormoshe.io%2Fimages%2Farticles%2F27%2Fovercome_fears.jpg" alt="Credit to ted.com"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Don’t panic! There are survivors.
&lt;/h2&gt;

&lt;p&gt;It can be ended without a tragedy. There is a serum which can heal you, but it will take time. First of all, let’s understand how we got to that situation.&lt;/p&gt;

&lt;p&gt;The seeds were sown a few years ago. Exactly 217 years after &lt;strong&gt;France conquered Belgium&lt;/strong&gt;, 50 years after &lt;strong&gt;Nigeria became independent&lt;/strong&gt; and 31 years after &lt;strong&gt;Disneyworld opened&lt;/strong&gt; for the first time. On October 1st, 2012 it was published for the first time. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TypeScript was born&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;Predictability. Type-Safty. Working with other developers. Documentation. Auto-complete. Polyfills. Refactoring. Protection. Angular*. Coding time’s error catching. Just because JavaScript sucks.&lt;/p&gt;

&lt;p&gt;And I can continue. I’m really a &lt;strong&gt;fan of TypeScript&lt;/strong&gt;. TypeScript is &lt;strong&gt;awesome&lt;/strong&gt;. But in order to heal, we have to know that you know why you use TypeScript. TypeScript’s success is partly due to Google betting on it, making it Angular’s main language for developing applications. A little bit later, React developers started to use it also. But no, &lt;strong&gt;Angular isn’t a valid answer&lt;/strong&gt; for the “why?”.&lt;/p&gt;




&lt;h2&gt;
  
  
  Three Types of Developers
&lt;/h2&gt;

&lt;p&gt;During the last year, I met a lot of candidates who work with Angular or using React with TypeScript. When I asked them JavaScript questions they had to answer. &lt;/p&gt;

&lt;p&gt;🙄 Part of them was wrong.&lt;/p&gt;

&lt;p&gt;😍 Part of them answered right. Fantastico!&lt;/p&gt;

&lt;p&gt;🤷‍♂️ Part of them guessed. Ohh merde!&lt;/p&gt;

&lt;p&gt;😷 And part of them said “I’m not a JavaScript developer. &lt;strong&gt;I’m a TypeScript developer&lt;/strong&gt;”&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Big mistake, huge!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdormoshe.io%2Fimages%2Farticles%2F27%2Fbig-mistake.huge.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdormoshe.io%2Fimages%2Farticles%2F27%2Fbig-mistake.huge.gif" alt="Credit to tomhiddles.tumblr.com"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Are you a front-end developer? Does the browser understand TypeScript?!
&lt;/h2&gt;

&lt;p&gt;If you want to be a “&lt;strong&gt;TypeScript developer&lt;/strong&gt;”, it’s ok. In order to be a good developer, I expect from myself to know the basics. Know why TypeScript was born. What TypeScript came to solve. Why people use it. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I expect from myself to know JavaScript&lt;/strong&gt;. Know what was before TypeScript. What the browser understands. How JavaScript works. What the obstacles and “pains” we have. As a good developer, I want to understand the “behind the scene” stuff. Why TypeScript chooses to implement those features. Why we need polyfills.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://eepurl.com/dAK9Sr" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2For711c4jcy3d85nyw1vc.png"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  There is no vaccine.
&lt;/h2&gt;

&lt;p&gt;Don’t deny! &lt;strong&gt;No one promises&lt;/strong&gt; that TypeScript will stay here forever. Although, you may wish it. As time passes, more and more features were accepted into ECMAScript, the JavaScript specification. A lot of features and capabilities which were missing in the browser were implemented. As time pass, more and more browsers support new features and have more capabilities.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;JavaScript is here to stay&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, please &lt;strong&gt;don’t do it to yourself&lt;/strong&gt;. Please, don’t deny.&lt;/p&gt;

&lt;h2&gt;
  
  
  Think about the day after
&lt;/h2&gt;

&lt;p&gt;It’s awesome to learn new technologies. It’s fun to use libraries. It’s comfortable to use a language which helps you achieve your goals, helps you to improve your time to production, reduces bugs and makes refactoring and teamwork easier. But, you have to know the basics. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Learn new technologies, but don’t take it as the default&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Think about the day after. You would like to find a new job. You don’t want to limit yourself to a specific technology. &lt;strong&gt;JavaScript is our common denominator&lt;/strong&gt;. We talk a lot about Angular, React and VueJS and the needless competition. JavaScript is &lt;strong&gt;the link between us&lt;/strong&gt;, we are front-end developers. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdormoshe.io%2Fimages%2Farticles%2F27%2Ffuture.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdormoshe.io%2Fimages%2Farticles%2F27%2Ffuture.jpg" alt="Credit to socant.su.se"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I like hot trends. I like new technologies. I like innovations. I like efficiency. I like comfortable coding experience. It’s easy to like all of that. But &lt;strong&gt;don’t delude yourself&lt;/strong&gt;. If you are a front-end developer, you have to understand what the browser understands. Also if you work on a TypeScript project for a while or mean to do it, practice your basics from time to time and understand the whole picture — the big picture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TypeScript isn’t an illness, but it can make you ill&lt;/strong&gt;. Don’t deny. Don’t follow the herd. And don’t give this article’s insights to fade away.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fmkq1l81wbe7hn4r91iik.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fmkq1l81wbe7hn4r91iik.png" alt="Follow me"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can follow me on &lt;a href="https://dormoshe.io?utm_source=devto&amp;amp;utm_campaign=im-a-fan-of-typescript-but-please-be-careful-27" rel="noopener noreferrer"&gt;dormoshe.io&lt;/a&gt; or &lt;a href="https://twitter.com/DorMoshe" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; to read more about JavaScript, web development and personal growth.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://eepurl.com/dAK9Sr" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2For711c4jcy3d85nyw1vc.png"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Prepare Your Skill Set for Web Developer Interviews - Part 2</title>
      <dc:creator>Dor Moshe</dc:creator>
      <pubDate>Mon, 10 Sep 2018 08:57:23 +0000</pubDate>
      <link>https://dev.to/dormoshe/prepare-your-skill-set-for-web-developer-interviews---part-2-4642</link>
      <guid>https://dev.to/dormoshe/prepare-your-skill-set-for-web-developer-interviews---part-2-4642</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fhyllwh9rpvl8ddakb8jx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fhyllwh9rpvl8ddakb8jx.png" alt="Prepare Your Skill Set for Web Developer Interviews - Part 1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dormoshe.io/articles/prepare-your-skill-set-for-web-developer-interviews-part-2-26?utm_source=devto&amp;amp;utm_campaign=prepare-your-skill-set-for-web-developer-interviews-part-2-26" rel="noopener noreferrer"&gt;This article originally appeared on dormoshe.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Either you are currently a job seeker or not, as a web developer there are basic and advanced topics that you need to know. You need to know them in order to develop products of high quality that have a good performance and that use the fittest technologies.&lt;/p&gt;

&lt;p&gt;In this article, we will go through my experience as a job seeker and we will review the most important things to learn in order to prepare our skill set and maximize the chances to get our dream job.&lt;/p&gt;




&lt;h2&gt;
  
  
  Before we start
&lt;/h2&gt;

&lt;p&gt;There are two recommended articles to read before this article. They don't depend on each other.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dormoshe.io/articles/prepare-your-skill-set-for-web-developer-interviews-part-1-25?utm_source=devto&amp;amp;utm_campaign=prepare-your-skill-set-for-web-developer-interviews-part-2-26" rel="noopener noreferrer"&gt;Prepare your Skill Set for Web Developer Interviews - &lt;strong&gt;Part 1&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dormoshe.io/articles/prepare-yourself-for-the-mental-phase-of-searching-your-dream-job-24?utm_source=devto&amp;amp;utm_campaign=prepare-your-skill-set-for-web-developer-interviews-part-2-26" rel="noopener noreferrer"&gt;Prepare Yourself for the &lt;strong&gt;Mental Phase&lt;/strong&gt; of Searching Your Dream Job&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;p&gt;One of the most popular questions in interviews is '&lt;strong&gt;Tell me about something you built&lt;/strong&gt;'. This is a question that you can practice in your home before the interview. Sometimes it's even hard to discuss this request without any preparation. You need to pick something that you built or a part in one of your projects which you know its details. You don't must to choose something that you implemented by yourself, but&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;As much as you implemented and understood more parts of the solution, the discussion about it will be easier and more natural&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When you asked to do so you need to draw the &lt;strong&gt;main blocks&lt;/strong&gt; of the architecture. It depends on how much it's big. If it's not so big you can draw the classes that you chose to use if there is. Otherwise, you can draw blocks of &lt;strong&gt;Micro-Services&lt;/strong&gt; or other parts of the architecture. It's preferred to explain shortly the &lt;strong&gt;requests and the restrictions&lt;/strong&gt; that you implemented the solution according to them. You need to be able to explain the &lt;strong&gt;flow of the process&lt;/strong&gt;. For example, REST APIs that the service can serve.&lt;/p&gt;

&lt;p&gt;This part of the interview &lt;strong&gt;can be evolved in some ways&lt;/strong&gt;. You can be asked to implement some parts of the solution in details. You can be asked to suggest an improvement to the solution according to some new restrictions or information which the interviewer will give to you. For example, 'There are some points of failure in a big flow of your report generation, how can you cope with them?' or 'There is a massive operation that stuck other requests from being served, what can you do?'. Some of the answers can be 'implement a queue', 'do preprocessing', 'add scheduled tasks', 'add more instances of the service', and many more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fntsqplpyufw790f29lte.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fntsqplpyufw790f29lte.png" alt="System Design and Flows - photo credit for visusllc.com"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see this part is very dynamic and can be flown to a lot of parts of knowledge and experience. With all of this, &lt;strong&gt;you need to remember that it's something you can practice and learn before the interview&lt;/strong&gt;. My advice is to do so. Think about the solution, pros, cons, obstacles and restrictions that can appear. As such as you be more prepared for this part, you will have confidence and you will be less nervous. I like this kind of parts in interviews :)&lt;/p&gt;




&lt;h2&gt;
  
  
  Microservices and Microfrontends
&lt;/h2&gt;

&lt;p&gt;When your team gets bigger and bigger, more difficulties appear in the project. It's not easy for developers to work on the same code base. For production purposes, you need to deploy only some part of your application, but in a monolith, you must deploy all the project. This is where &lt;a href="https://blog.poki.com/from-monolith-to-microservices-b16bae1d6c9d" rel="noopener noreferrer"&gt;Micro-Services get into your life&lt;/a&gt;. Microservices is an &lt;strong&gt;architectural style&lt;/strong&gt; that structures an application as a collection of &lt;strong&gt;loosely coupled services&lt;/strong&gt;. Each of those services can focus on sub-domain of the application.&lt;/p&gt;

&lt;p&gt;This architecture enables the continuous delivery of large and complex applications. It also enables organizations to &lt;strong&gt;evolve their technology stack&lt;/strong&gt; because each service is an &lt;strong&gt;autonomy&lt;/strong&gt; and have a defined API for communication. Microservices improve fault isolation, eliminate long-term commitment to a single technology stack and make it easier for a new developer to understand specific parts of the application functionality.&lt;/p&gt;

&lt;p&gt;As microservices in the backend, there are &lt;a href="https://medium.com/@tomsoderlund/micro-frontends-a-microservice-approach-to-front-end-web-development-f325ebdadc16" rel="noopener noreferrer"&gt;Microfrontends in the frontend&lt;/a&gt;. These concepts bring a lot of advantages to organizations. The world walks there, and in a lot of companies is already there. &lt;strong&gt;Demonstration of knowledge in these topics can add you some good points&lt;/strong&gt; in the interview. It can show that you look at the &lt;strong&gt;big picture&lt;/strong&gt; and this is something that companies are looking for. But if we are looking for a prioritization, I don't rank it as a high priority if you have other gaps in more important topics and you are not a senior developer. So, even if you don't know it, it's OK. It's nice to have.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkks74uzyhzqvv7bd8puv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkks74uzyhzqvv7bd8puv.png" alt="Micro-Frontends - photo credit for Tom Söderlund"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Component-Based Architecture
&lt;/h2&gt;

&lt;p&gt;SPA and JavaScript frameworks succeeded to enter into our life. MVC is a common architecture of a lot of applications, but &lt;strong&gt;something has been changed&lt;/strong&gt;. In 2013, Facebook released &lt;strong&gt;React library&lt;/strong&gt; and redefined the way Front-End developers build applications -&lt;a href="https://www.tutorialspoint.com/software_architecture_design/component_based_architecture.htm" rel="noopener noreferrer"&gt; Component-Based Architecture&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It doesn't matter which of the frameworks do you know - it matters if you understand the principles behind them&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A component encapsulates functionality and behaviors of a software element into a reusable and self-deployable binary unit. The architecture reduces the &lt;strong&gt;time to market&lt;/strong&gt; and makes the developers' life easier. The code is more understandable. It's convenient to work on one application with more than one team. It's more reusable, replaceable, extensible and encapsulated. &lt;strong&gt;Component-based development isn't just the future of the web. It's what you should be doing now&lt;/strong&gt;, in any application on the web.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fk69bnxrk9m33o5fkxy8u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fk69bnxrk9m33o5fkxy8u.png" alt="Component-Based Architecture"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  AngularJS, Angular, React, React Fiber, Vue
&lt;/h2&gt;

&lt;p&gt;SPA is in the front of the web development in the last years. A big part of the &lt;a href="https://dormoshe.io/articles/10-hallway-conversations-in-2017-about-web-development-9?utm_source=dormosheio&amp;amp;utm_campaign=prepare-your-skill-set-for-web-developer-interviews-part-2-26" rel="noopener noreferrer"&gt;hallway conversations&lt;/a&gt; you do is about the main participant - Angular, React and Vue. &lt;strong&gt;SPA frameworks are predominant on the web&lt;/strong&gt;. Therefore, it changes the web architecture, the software courses' syllabuses, and the high tech recruitment demands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One of the major advantages of React and Vue is the Virtual DOM mechanism&lt;/strong&gt;. The virtual DOM is a copy of the DOM which used to check what are the differences between the current DOM and the new output (new DOM) of the rendering process. React and Vue use this mechanism to render only the differences on the real DOM because the DOM operations are expensive. Therefore, this is a &lt;strong&gt;huge boost for application's performance&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;More important facts to drill down to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Angular is backed by Google. React is backed by Facebook&lt;/li&gt;
&lt;li&gt;React and Vue are only view libraries. Angular is a whole platform&lt;/li&gt;
&lt;li&gt;React Fiber is a reimplementation of React's core algorithm&lt;/li&gt;
&lt;li&gt;Angular is so much different from AngularJS, that they get an &lt;strong&gt;attention&lt;/strong&gt; as two different technologies&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;The wealth and various in technologies is one of the best things that is done in the web zone and we are part of it&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Know how to speak about them in tech-talks is an advantage for a candidate. &lt;strong&gt;It's easy to understand if you quote slogans from blogs or you have an understanding of the whole picture.&lt;/strong&gt; Knowing the evolution of these technologies is a good point to start.&lt;/p&gt;




&lt;h2&gt;
  
  
  Design Patterns
&lt;/h2&gt;

&lt;p&gt;Design patterns are widely used. If you are an Angular developer, and even if not, you can think about a lot of design patterns you use every day. Angular is based on the &lt;strong&gt;Model-View-Controller&lt;/strong&gt; pattern. &lt;strong&gt;Modules&lt;/strong&gt; are widely used in JavaScript for keeping particular pieces of code independent of other components. ES6 classes and inheritance which you use are implemented by the &lt;strong&gt;Prototype&lt;/strong&gt; pattern. Services are mostly &lt;strong&gt;Singletons&lt;/strong&gt; and you consume them by the &lt;strong&gt;Dependency Injection&lt;/strong&gt; mechanism.&lt;/p&gt;

&lt;p&gt;When you use some library and you want to be able to replace it in the future, you use &lt;strong&gt;Adapter&lt;/strong&gt; pattern. Angular's HTTP service is also a kind of Adapter. RxJS is one of Angular's dependencies. When you use RxJS' Subject/Observer/Subscribers you are making a use of &lt;strong&gt;Observer&lt;/strong&gt; pattern.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;And I really can go on. Design Patterns are everywhere&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's not something that stays in the university course and you can forget it. It is part of the things which make us good developers. If we use design patterns correctly, it makes our code more maintainable, readable, and scalable. My advice here is to know the common DPs and &lt;strong&gt;be sure you know how to implement at least three of them&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Algorithms, Data-Structures, and Riddles
&lt;/h2&gt;

&lt;p&gt;If you are a junior developer without a web experience, this section is especially for you. When you don't have any experience in this field, most of the questions focus on the topic which learned in the university. Those topics can contain a various pull of algorithms and data-structure problems. I suggest &lt;strong&gt;building a good basis&lt;/strong&gt; of sorting algorithms, problems like TSP, graphs, trees, search, recursion and dynamic programming.&lt;/p&gt;

&lt;p&gt;You need to know how to &lt;strong&gt;analyze time and space complexities&lt;/strong&gt; and suggest improvements to some problems solutions by restrictions which the interview will give you. At most of the time, you can write your answer as a pseudo code or by some of the common languages which you know, like JavaScript, Java, and C#. In order to practice this section, you can see the 'Action Items' section at the end of the article.&lt;/p&gt;




&lt;h2&gt;
  
  
  Action Items
&lt;/h2&gt;

&lt;p&gt;As you keep reading you probably collecting some of &lt;strong&gt;buzzwords, terms, and topics&lt;/strong&gt; which are less familiar to you. Write them on a side note and start to investigate them by the &lt;strong&gt;links which I attached in their paragraphs above&lt;/strong&gt;. In the field of design patterns, be sure you know how to implement at least three of them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Leet Code
&lt;/h3&gt;

&lt;p&gt;The purpose of &lt;a href="https://leetcode.com/" rel="noopener noreferrer"&gt;LeetCode&lt;/a&gt; is to provide you a hands-on training on real coding interview questions. The Online Judge gives you immediate feedback on the correctness and efficiency of your algorithm which facilitates a great learning experience. LeetCode helps you to level up your coding skills and quickly land a job. This is one of the best places to expand your knowledge and get prepared for your next interview. You can find questions on a lot of topics including Object Oriented Design, Operating System, Algorithms and Databases.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ff808nqfp9k3d2j682wp0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ff808nqfp9k3d2j682wp0.png" alt="Leetcode"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Codewars
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.codewars.com" rel="noopener noreferrer"&gt;Codewars&lt;/a&gt; is a community of developers, which called Code Warriors (or just warriors), that &lt;strong&gt;train on improving their development skills&lt;/strong&gt;. Think of it like a coding dojo - where developers train with each other and help each other to get better through practice. Codewars currently supports 21 languages, including Go, Clojure, Haskell and Typescript, and 11 languages in beta, including Kotlin, Groovy, R, and Scala.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fmidmpypk2ctuxa9ejotp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fmidmpypk2ctuxa9ejotp.png" alt="Codewars"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Glassdoor
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.glassdoor.com/index.htm" rel="noopener noreferrer"&gt;Glassdoor&lt;/a&gt; is my favorite place to &lt;strong&gt;search for a position&lt;/strong&gt;. You can read summary information, ranking, reviews and salaries about various companies from current and previous employees. In addition, you can find job interviews questions from hundreds of companies in a great user experience. I recommend you to enter and &lt;strong&gt;practice the relevant questions from the company you have an interview there&lt;/strong&gt;. I also recommend to practice &lt;a href="https://www.glassdoor.com/Interview/Facebook-Interview-Questions-E40772.htm" rel="noopener noreferrer"&gt;Facebook interview questions&lt;/a&gt; - there are a lot and they are interesting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ffb38g3lr223396h6tj6a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ffb38g3lr223396h6tj6a.png" alt="Glassdoor"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Interviews are something that you can prepare yourself for. The preparation can helps you to improve your self-confidence and can reminds you topics that you unusually use. It's recommended to take some time to do it, but you need to stay focused.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fmkq1l81wbe7hn4r91iik.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fmkq1l81wbe7hn4r91iik.png" alt="Follow me"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can follow me on &lt;a href="https://dormoshe.io?utm_source=devto&amp;amp;utm_campaign=prepare-your-skill-set-for-web-developer-interviews-part-2-26" rel="noopener noreferrer"&gt;dormoshe.io&lt;/a&gt; or &lt;a href="https://twitter.com/DorMoshe" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; to read more about Angular, JavaScript and web development.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>interview</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Prepare Your Skill Set for Web Developer Interviews - Part 1</title>
      <dc:creator>Dor Moshe</dc:creator>
      <pubDate>Sat, 01 Sep 2018 13:54:43 +0000</pubDate>
      <link>https://dev.to/dormoshe/prepare-your-skill-set-for-web-developer-interviews---part-1-ig1</link>
      <guid>https://dev.to/dormoshe/prepare-your-skill-set-for-web-developer-interviews---part-1-ig1</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F85c5rk6sez2ow5ou3hln.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F85c5rk6sez2ow5ou3hln.jpg" alt="Prepare Your Skill Set for Web Developer Interviews - Part 1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dormoshe.io/articles/prepare-your-skill-set-for-web-developer-interviews-part-1-25?utm_source=devto&amp;amp;utm_campaign=prepare-your-skill-set-for-web-developer-interviews-part-1-25" rel="noopener noreferrer"&gt;This article originally appeared on dormoshe.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Either you are currently a job seeker or not, as a web developer there are basic and advanced topics that you need to know. You need to know them in order to develop products of high quality that have a good performance and that use the fittest technologies.&lt;/p&gt;

&lt;p&gt;In this article, we will go through my experience as a job seeker and we will review the most important things to learn in order to prepare our skill set and maximize the chances to get our dream job.&lt;/p&gt;




&lt;h2&gt;
  
  
  Before we start
&lt;/h2&gt;

&lt;p&gt;Either if you are currently in a job seeking period or being in the past, you sure remember this or those periods. A lot of fears, emotions, desires, hopes, and dilemmas. You can like it or not, but in any case, you need to pay attention to some concerns and be ready for such a period.&lt;/p&gt;

&lt;p&gt;In my last article, we talked about some things that really matter for us as job seekers, got tips for maximizing the chances to a good match and learned how to prepare to the process of getting our dream job. If you didn’t read it yet, &lt;strong&gt;I recommend starting from there&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dormoshe.io/articles/prepare-yourself-for-the-mental-phase-of-searching-your-dream-job-24?utm_source=devto&amp;amp;utm_campaign=prepare-your-skill-set-for-web-developer-interviews-part-1-25" rel="noopener noreferrer"&gt;Prepare Yourself for the &lt;strong&gt;Mental Phase&lt;/strong&gt; of Searching Your Dream Job&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Back to the basics
&lt;/h2&gt;

&lt;p&gt;The preparation process’ complexity depends on how much you deal with JavaScript, HTML, and CSS nowadays and what is the position requirements. It is very important to understand the basics and the internals. Most of the time, in a short talk, it’s easy to understand that you don’t understand something. CSS can be so weird sometimes when things do not work. JavaScript can be weird also, even when things are working. The interviewer’s purpose is to see how do you think, how do you cope with hard questions and to understand how far along your knowledge of the technology according to the job requirements.&lt;/p&gt;

&lt;p&gt;Let’s see an example. In a lot of interviews you can be asked about &lt;strong&gt;closures&lt;/strong&gt; — what is the output of this code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output is &lt;code&gt;5 5 5 5 5&lt;/code&gt; and not &lt;code&gt;0 1 2 3 4&lt;/code&gt;. If we will use &lt;code&gt;let&lt;/code&gt; instead of &lt;code&gt;var&lt;/code&gt; or will use &lt;code&gt;((j) =&amp;gt; { return () =&amp;gt; console.log(j); })(i)&lt;/code&gt; — the value of &lt;code&gt;i&lt;/code&gt; will be saved by the &lt;code&gt;IIFE&lt;/code&gt; in the new function’s scope argument &lt;code&gt;j&lt;/code&gt;. &lt;strong&gt;This small question is so relevant because it gather some important concepts of the language&lt;/strong&gt; - &lt;code&gt;closure, context, scope, IIFE and let vs var&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;When this question is widely used, there are a lot of continued-questions like why it happened. In some of your explanations, you can remind the &lt;strong&gt;Event Loop&lt;/strong&gt; -  oooh it’s really a good point to drill down to the important mechanism of ‘how javascript works’.&lt;/p&gt;

&lt;p&gt;Another question can be ‘how to solve this problem’. Maybe you know how to solve it, but &lt;strong&gt;the interviewer can ask you for more different solutions&lt;/strong&gt; to this question. For Example, the &lt;code&gt;bind&lt;/code&gt; function is one of the solutions which fix this problem, but there are also the &lt;code&gt;apply&lt;/code&gt; and &lt;code&gt;call&lt;/code&gt; functions. What are the differences between these functions? So, we can go on to various ways to the internals of JavaScript.&lt;/p&gt;




&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;A good developer needs to know how the language/technology works. It’s matter in order to take a decision, keep on performance and other metrics good as we can and for many more reasons. You need to know why to use the technology or maybe what is the other options. It’s a practical knowledge that needs to be in your arsenal — it’s worth it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the web works
&lt;/h2&gt;

&lt;p&gt;What happened when you hit the ‘Go’ button in the address bar of your browser? Do you think about it sometimes? DNS and so on… Yes but it’s not only. It’s true that the &lt;a href="https://www.verisign.com/en_US/website-presence/online/how-dns-works/index.xhtml" rel="noopener noreferrer"&gt;DNS servers work in this process by their mechanism&lt;/a&gt;, but there are more parts. This process contains check of 4 caches to find the map to the right IP. Then, the TCP handshake and the Ack messages that you remember from the lecturer in your BSc degree period.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The page is not fetched, loaded and rendered by the stork. As a web developer, you need to ‘know how’&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And after the HTML returned to the browser, what the browser will do? There is a big process of &lt;a href="https://varvy.com/pagespeed/display.html" rel="noopener noreferrer"&gt;parsing and rendering&lt;/a&gt; the resources including the elements, external and internal scripts and styles. There are blocking operations and there is served words like &lt;code&gt;defer&lt;/code&gt; and &lt;code&gt;async&lt;/code&gt; in the process. It matters for performance and time to an interaction where you put the external resources tags and script. There is a priority and the browser really works hard to do that.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F42vxu8x3080cm8ylluhe.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F42vxu8x3080cm8ylluhe.jpg" alt="A Stork and a Baby — photo credit for simplybabyfurniture.com&amp;lt;br&amp;gt;
"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  JavaScript is single threaded
&lt;/h2&gt;

&lt;p&gt;Ok, and then what? You can think about it and understand why it’s so important factor that we have only one thread. What is the pros and cons of using it? NodeJS is fit developments that have a lot of &lt;strong&gt;I/O and asynchronous event&lt;/strong&gt;. It’s &lt;strong&gt;event-driven&lt;/strong&gt;. So heavy synchronic calculations like in Machine Learning is probably not the best match for NodeJS. Besides, there are other known languages like Java or C#. Here you have a new thread for each connection. This is really important to know which of them to use. And this depends on the use cases of the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Event Loop, Call Stack, Queue, Heap
&lt;/h2&gt;

&lt;p&gt;Another part of ‘how it’s work’ is the internal flow and processes of the language — the mechanism. What is the order of execution, where is each variable saved, what is the differences between the Call Stack and the Queue and what’s happened when you use &lt;code&gt;setTimeout&lt;/code&gt;. What is the mechanism that leads the world and how it’s done? When you will answer these questions, you understand the JavaScript flow. Don’t go to a JavaScript position’s interview when you don’t understand this mechanism. &lt;strong&gt;It’s CRITICAL&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F0p9xmiw4at7u0iao610m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F0p9xmiw4at7u0iao610m.png" alt="JavaScript Event Loop Visual Representation — photo credit for Gaurav Pandvia&amp;lt;br&amp;gt;
"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://dmitrysoshnikov.com/ecmascript/javascript-the-core-2nd-edition" rel="noopener noreferrer"&gt;Another buzz words and things that mostly asked in interviews&lt;/a&gt; are scope, context, hoisting, how to implement encapsulation in ES5 and prototype. Be sure that you are under control when someone will chat with you about them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Asynchronous — Callbacks, Promises, Async\Await and Generators
&lt;/h2&gt;

&lt;p&gt;JavaScript developers use asynchronous operations heavily. HTTP request, schedulers, timers and I/O operations are only parts of the asynchronous operations. It’s not another property of the language — it’s its bread butter. We can be impressed by the last developments of new features and see the evolution of them. From callbacks with callback hell to promises with promise hell to generators and async\await features. You need to be knowledgeable about this evolution and know how to explain it.&lt;/p&gt;




&lt;h2&gt;
  
  
  ES6/7/8
&lt;/h2&gt;

&lt;p&gt;JavaScript is in production, but it is always getting renewed. &lt;strong&gt;The process of adopting new features to the specification is very arranged and poised&lt;/strong&gt;. ECMAScript is the specipication that forms the basis of JavaScript. ECMAScript is standardized by the ECMA International standards organization in the ECMA-262 and ECMA-402 specifications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fe7mzzyjtbxy3k83gb51w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fe7mzzyjtbxy3k83gb51w.png" alt="ES6 Features — Compatibility &amp;amp; Browser Support"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dormoshe.io/articles/the-best-of-2017-on-dormoshe-io-23?utm_source=devto&amp;amp;utm_campaign=prepare-your-skill-set-for-web-developer-interviews-part-1-25" rel="noopener noreferrer"&gt;ECMAScript 2017 was officially released in the mid of 2017&lt;/a&gt; by TC39. It seems that we are talking a lot about ECMAScript in the last year. It’s not for nothing. ES6 is one of the freshest things in the JavaScript world. It is everywhere. ES6 is popular in these days because of its improvements which make the developer’s experience more convenient by new syntax and innovations. The latest things in the ES zone are the async\await, the arrow function, the spread operator, the class structure and a lot of more.&lt;/p&gt;




&lt;h2&gt;
  
  
  Semantic HTML
&lt;/h2&gt;

&lt;p&gt;Even if you don’t see visual differences between &lt;code&gt;div, footer, main and article&lt;/code&gt;, there is a whole babel behind them. The semantic HTML is matter. It matters for many reasons. People with disabilities use screen readers that the semantic influence on the order of reading and the operations that can take. For you as a developer, it’s part of the standard. It’s easy to handle an HTML block that is semantic instead of div inside div. It’s help for uniformity and to the feelings that you give to the visitor — for example, h2 in each page will have the same look and feel.&lt;/p&gt;

&lt;p&gt;You can find yourself sometimes asks the following questions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is it correct to put &lt;code&gt;div&lt;/code&gt; in a paragraph?&lt;/li&gt;
&lt;li&gt;When do I need to use the &lt;code&gt;article&lt;/code&gt; tag?&lt;/li&gt;
&lt;li&gt;Is it okay to nest a &lt;code&gt;main&lt;/code&gt; tag inside a &lt;code&gt;main&lt;/code&gt; tag?&lt;/li&gt;
&lt;li&gt;What is the best selection for back and next links - &lt;code&gt;a&lt;/code&gt; tag or &lt;code&gt;button&lt;/code&gt; tag?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;An answer to a lot of question like those and many recommendations&lt;/strong&gt; can be found in the &lt;a href="https://html.spec.whatwg.org/print.pdf" rel="noopener noreferrer"&gt;formal HTML specification&lt;/a&gt; or in the &lt;a href="https://www.w3.org/" rel="noopener noreferrer"&gt;W3C website&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Cookies vs Local Storage vs Session Storage
&lt;/h2&gt;

&lt;p&gt;Cookies, &lt;a href="https://msdn.microsoft.com/en-us/library/bg142799%28v%3Dvs.85%29.aspx" rel="noopener noreferrer"&gt;local storage and session storage&lt;/a&gt; are widely used. Almost every website you visit uses part of them. It can be used to save local preferences like table columns size and order and favorite items. Local data (local and session storage) affect the specific browser that they saved on it. If you want to affect the user in all the browsers and machines that he used, you need to save it in the server.&lt;/p&gt;

&lt;p&gt;Cookies can be used to authenticate and to ensure that the request’s source is reliable. Cookies will be added to the requests automatically, unless the expiration date will pass. Local and session storage will not be added to the requests to the server and they are &lt;strong&gt;accessed only at the client side&lt;/strong&gt;. Session storage will be saved until the website tab in the browser will be closed. Local storage will be saved in the browser for the next times.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8sg7yurjkh62pudgyl0n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8sg7yurjkh62pudgyl0n.png" alt="Different type of storage — photo credit for blog.trustpilot.com"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Local storage can save only string keys and values, whereas cookies can save complex objects. There are size limits to these three. Local and session storage can contain &lt;strong&gt;up to 5MB&lt;/strong&gt;, whereas cookies &lt;strong&gt;up to 4KB&lt;/strong&gt;. There are more restrictions and differences between the three. This is an interviews’ common topic and it can be appeared as a solution to some questions or as a direct question.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Interviews are something that you can prepare yourself for them. The preparation helps you for your self-confidence and reminds you topics that you unusually use. It’s recommended to take some time to do it, but you need to be focused. In the next part, we will continue to see more relevant and important topics, like Architecture, and I will give you some action items and some sources to make the preparation easiest as we can.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fmkq1l81wbe7hn4r91iik.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fmkq1l81wbe7hn4r91iik.png" alt="Follow me"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can follow me on &lt;a href="https://dormoshe.io?utm_source=devto&amp;amp;utm_campaign=prepare-your-skill-set-for-web-developer-interviews-part-1-25" rel="noopener noreferrer"&gt;dormoshe.io&lt;/a&gt; or &lt;a href="https://twitter.com/DorMoshe" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; to read more about Angular, JavaScript and web development.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>interview</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Prepare Yourself for the Mental Phase of Searching Your Dream Job</title>
      <dc:creator>Dor Moshe</dc:creator>
      <pubDate>Tue, 30 Jan 2018 16:15:27 +0000</pubDate>
      <link>https://dev.to/dormoshe/prepare-yourself-for-the-mental-phase-of-searching-your-dream-job-1l75</link>
      <guid>https://dev.to/dormoshe/prepare-yourself-for-the-mental-phase-of-searching-your-dream-job-1l75</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FUxBxdwv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/kbkznhcyrkx2vrfc8u0b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FUxBxdwv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/kbkznhcyrkx2vrfc8u0b.png" alt="Prepare Yourself for the Mental Phase of Searching Your Dream Job"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dormoshe.io/articles/prepare-yourself-for-the-mental-phase-of-searching-your-dream-job-24"&gt;This article originally appeared on dormoshe.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Either if you are currently in a job seeking period or being in the past, you sure remember this or those periods. A lot of fears, emotions, desires, hopes, and dilemmas. You can like it or not, but in any case, you need to pay attention to some concerns and be ready for such a period.&lt;/p&gt;

&lt;p&gt;In this article, we will think about some things that really matter for us as job seekers, get tips for maximizing the chances to a good match and learn how to prepare to the process of getting our dream job.&lt;/p&gt;




&lt;h2&gt;
  
  
  First of all — The Mental Phase
&lt;/h2&gt;

&lt;p&gt;The best advice I can give you is that you can’t learn everything before the interview. An interview is not like a test in school. Mostly, there is no curriculum or specific guiding. And even when there is — it’s usually general — like “Angular” or “JavaScript”. So, you want to maximize the percentage that you will get the job. As mentions, the first thing you need to understand is that&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can NOT learn everything&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The web development in 2018 is wealthy in concepts, tools, frameworks, platforms, and languages. So, where to start? What’s next? Please calm down. You can learn something and invest a lot of time to practice and understand it. It can be appeared in your interview and maybe not. The preparation for a job interview is important. But,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The best contribution of this is to your self-confidence&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, what can you do? &lt;strong&gt;Be focused&lt;/strong&gt; and learn the most important things. Sometimes, you can understand what is the main topics that will be appeared in the interview via other candidates, but it’s really hard to find such people. Another thing is that the interview questions can be changed from time to time and from interviewer to interviewer. But there are some common topics and questions that appear in a lot of interviews.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6wFpDUQc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/oagsy3edq6e9tzhd6fcu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wFpDUQc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/oagsy3edq6e9tzhd6fcu.jpg" alt="Photo credit for fotolia.com"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Just give it a try — it’s not so hard
&lt;/h2&gt;

&lt;p&gt;Job interviews are not the favorable situation for a lot of people. There is a kind of “statehood” in the process. It can feel like a date. You don’t know them and they don’t know you. But, it’s important to remember that &lt;strong&gt;you know more about them than they know about you&lt;/strong&gt;. In order to allay the fears, you can choose one or two low-potential positions and just try to interview for them. Define them as jobs that you agree to give them up and just go. After you give it a try, you will understand that &lt;strong&gt;it’s not fear like you thought&lt;/strong&gt;. It can be funny but these interviews can be so good that one of them will be your next job.&lt;/p&gt;

&lt;p&gt;When you try, you begin to understand how to answer questions and how to present yourself and your building blocks of your life. Don’t be radical in your answers and try to be relaxed and pleasant. It’s right that you need to think how to explain your reasons for leaving previous positions and how to answer questions about your personality. But it’s really important to &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Be yourself&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;This will grow the chances for a good match.&lt;/strong&gt; Don’t afraid to ask questions, but do it at the right time. If you have red limits on some issues, find the right time and the right person to gather information that is viable for you. &lt;strong&gt;You don’t want to find yourself in a position that will not fit your desires and expectations.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What are you searching for in the position?
&lt;/h2&gt;

&lt;p&gt;An important question to ask yourself before starting the processes is — what are the important things that matter to you in the job/position/company. It’s obvious that we don’t want to replace our job every day. Even if you plan for any reason to get the job only for a short time — it really matters to answer this question. &lt;strong&gt;Thinking about it helps you to find the right positions for you.&lt;/strong&gt; In addition, it helps you to ask the important questions in order to understand if the position fits your needs.&lt;/p&gt;

&lt;p&gt;If you quit a job, you can answer this question even faster. You know what you are not looking for, maybe because you have bad experiences. Either way, try to be objective when you learn from the past and think not only about your last position. You can be very emotional about your last experience, especially if it was negative, but remind yourself that you need to look at the big picture. For most of the people, there is no a perfect place.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rCcNxX0P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/x2oclte7ltxxt0g6kkbi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rCcNxX0P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/x2oclte7ltxxt0g6kkbi.jpg" alt="What are you searching for in the position?"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you answer this question, &lt;strong&gt;define the parameters&lt;/strong&gt; which help you to understand if a specific position is for you. These parameters can be the geographical location, social conditions, work-life balance, the brand, the vibe, the technology, the interest in the business/product, the product quality and many more. Choose about three parameters which are the most important and ask yourself if the position has ‘pass the test’.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;These parameters keep your focus and help you prioritize&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The world is not black and white
&lt;/h2&gt;

&lt;p&gt;Parameters are important, but one of the worst things you can do is to veto. It’s ok to decide that the position is not fit for you, but give it a try. Don’t look at the want ad and run to take a decision. You can understand if the location is good before the interview, but most of the other parameters are testable only after you go to the company. The want ad can be not precise for a lot of time. Talk with the interviewer and ask the questions.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Be flexible, attentive, creative, open and positive&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In most of the cases, the initial impression is not true. And even if it is, there are cases that &lt;strong&gt;you can bridge the gaps&lt;/strong&gt;. There are companies that have many more other projects that can be more interesting or appropriate for you. Many companies can design the position to fit your needs, abilities, and also the company needs.&lt;/p&gt;




&lt;h2&gt;
  
  
  NO is not so Bad
&lt;/h2&gt;

&lt;p&gt;The most successful people got a ‘NO’ at some stage of their life. &lt;strong&gt;No is not a bad thing.&lt;/strong&gt; If the interviewer thinks that you don’t match the position, it’s even better if they give you a ‘NO’ than the option that you understand it by yourself after a while. You can hear ‘NO’ for a lot of reasons that sometimes are not because of you. It can be not a good momentum. Maybe there is a ‘crazy’ candidate that is better than you. Maybe they think that you are overqualified.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You need to get only one ‘YES’ to reach the goal&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Don’t pretend to guess it, but lessons learned are important. You can ask the interviewer what are the reasons that you didn’t get the job. Part of them will tell you. It can help you for the next time. It’s OK to be depressed if you get a ‘NO’ from a job you liked, but you need to move on. It’s only one of a lot and &lt;strong&gt;you need to get only one ‘YES’ to reach the goal.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZjTI9nDU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/yel0yv1zjjii299bhjcs.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZjTI9nDU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/yel0yv1zjjii299bhjcs.gif" alt="Gif credit for giphy.com"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Search for a job can feel like a scary and hard mission. A lot of emotions are involved in the process. You need to stay in focus and to choose the right position and company that &lt;strong&gt;fit your needs.&lt;/strong&gt; Dedicate time to do that. Define your parameters. Read about the companies. You don’t replace a job every month, so the best match position probably will be for a long time with a positive experience. And always keep in mind that &lt;strong&gt;the process is for a good goal.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0Zow1YxL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/mkq1l81wbe7hn4r91iik.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0Zow1YxL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/mkq1l81wbe7hn4r91iik.png" alt="Follow me"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can follow me on &lt;a href="https://www.dormoshe.io"&gt;dormoshe.io&lt;/a&gt; or &lt;a href="https://twitter.com/DorMoshe"&gt;Twitter&lt;/a&gt; to read more about Angular, JavaScript and web development.&lt;/p&gt;

</description>
      <category>career</category>
      <category>tips</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
