<?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: sumit mehra</title>
    <description>The latest articles on DEV Community by sumit mehra (@sumit134coder).</description>
    <link>https://dev.to/sumit134coder</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%2F675088%2F802c53c0-d5fd-4ca5-87a6-d909e18d1e4b.png</url>
      <title>DEV Community: sumit mehra</title>
      <link>https://dev.to/sumit134coder</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sumit134coder"/>
    <language>en</language>
    <item>
      <title>Programmer Imposter Syndrome: 5 Ways to Get Over Yours</title>
      <dc:creator>sumit mehra</dc:creator>
      <pubDate>Sun, 26 Sep 2021 10:48:35 +0000</pubDate>
      <link>https://dev.to/sumit134coder/programmer-imposter-syndrome-5-ways-to-get-over-yours-o3i</link>
      <guid>https://dev.to/sumit134coder/programmer-imposter-syndrome-5-ways-to-get-over-yours-o3i</guid>
      <description>&lt;h3&gt;
  
  
  Think you’re unqualified for the work you do? It’s called imposter syndrome and here’s how to handle it.
&lt;/h3&gt;

&lt;p&gt;Do you beat yourself up for making simple mistakes? Or maybe you get completely lost in a meeting about a new project because you don’t know half the technologies the other devs are talking about. And to make matters worse, you constantly feel like you’re falling farther and farther behind the next, hot framework or language.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;If so welcome to the Coders club...&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Kidding aside, these negative emotions are very common (you’re not alone!). It’s called imposter syndrome: the constant feeling of not being good enough or knowing enough to do your job well. Everyone has experienced these emotions at some point in their life, whether personal or professional—and not just within software development. It’s human nature. The most successful and productive people are often very effective at minimizing the occurrences of imposter syndrome in their lives.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why you feel like a fraud
&lt;/h2&gt;

&lt;h3&gt;
  
  
  * Software development never stops evolving.
&lt;/h3&gt;

&lt;p&gt;It’s a large field and it’s only getting bigger. Not only are there more people entering as new developers, but the use of software is expanding, which means the demand for devs is going up. This encourages the frequent creation of new languages, frameworks, and tools. This means there’s more to learn and it’s only going to get more complex as the industry matures. With this mind, you may feel overwhelmed at times as a developer.&lt;/p&gt;

&lt;h3&gt;
  
  
  * Furthermore, the media creates unrealistic perceptions around the tech industry.
&lt;/h3&gt;

&lt;p&gt;Software specifically, gets a lot of attention and glory in the media. Given how often new tech startups get covered in the media and how their founders are portrayed as brilliant and uniquely creative, it’s no wonder that so many people feel that they can never make it as a top-tier developer. Software development also has a mythos that’s grown up around it that says only the super-smart people are able to grasp it. While that may have been true once, programming languages and tools have come a long way and made programming a lot easier and more approachable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Here are some tips which can help you fight your programmers imposter syndrome -
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;1. Get comfortable with being uncomfortable&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;You need to realize and accept that imposter syndrome never truly goes away. The crux of imposter syndrome is that you’re comparing what you know to what you think other people know. You don’t see other people struggling and you don’t know what they don’t know. &lt;/p&gt;

&lt;p&gt;This is the essence of imposter syndrome. You see everyone else’s success and intelligence, and then you fear that you don’t have that or know that concept or technology. The focus on your own weaknesses is understandable and natural. None of us want to be the worst developer in a company. Most developers love to learn and there’s so much to learn in development. So it’s natural to look at what you still have yet to learn, compare yourself to people who already know all of it, and feel inferior and that you’ll never be an expert.&lt;/p&gt;

&lt;p&gt;To be honest, you never really will be an expert in software development. There will always be more to learn. There will always be new languages, or processes, or technologies to learn. There will always be someone who knows something you don’t. There will always be someone who knows more than you do. There will always be someone who’s a better developer.&lt;/p&gt;

&lt;p&gt;That thought may be depressing right now, but I feel it’s actually liberating. You can focus on getting better and growing. Focus on what you can control: your skills and your knowledge. Accept that there will never be a point where you’ll feel completely knowledgeable and completely comfortable.&lt;/p&gt;

&lt;p&gt;In short, as one developer I talked with said: get comfortable with being uncomfortable. Embrace your ignorance and use that to fuel your growth, not your self-doubt.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;2. Adopt the growth mindset&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;People with the fixed mindset have a constant need to prove their competence and intelligence. They have a deep need to be perfect at everything and to be perfect immediately. Because these people view their intelligence as fixed, failures are a reflection of their lack of intelligence and so they seek to blame circumstances or other people for their failures.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Intelligence is not fixed, and in fact, it is directly tied to effort and challenge&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Essentially, your feeling of inadequacy is a signal that you’re being challenged. To really become a great developer, you need to embrace that challenge and actually seek it out. View it as an opportunity to learn, to become better, and to grow.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;3. Keep track of your accomplishments&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Regularly reflecting on your successes can help remind you of how far you’ve come and how good you really are. This will help balance the scales of positive vs negative self-talk that is at the heart of imposter syndrome.&lt;/p&gt;

&lt;p&gt;One good way to do that is to make a recurring calendar appointment for the end of every month to add all accomplishments from that month to a “portfolio” of accomplishments. Even if something eventually failed, if you attempted something outside your comfort zone, write it down. It was a growth experience.&lt;/p&gt;

&lt;p&gt;In addition to capturing your monthly accomplishments, you should also take a few minutes to reflect on past accomplishments and add any to previous months that you forgot. Also, don’t just write them down and read them. You need to truly reflect on what went into that accomplishment and how you felt about it.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;4. Figure out how you learn the best&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;While there is now data showing that learning styles aren’t really a thing, everyone has ways that they prefer to learn. Using your preferred learning style can help instill confidence and push you further away from your imposter syndrome. Think back on what you’ve tried to learn in the past and what worked best. Think about which resources (books, videos, courses) seemed to make things clearer or what seemed to help you get to that “Ah ha!” moment.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;5. Plan your career goals to reduce doubt&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;A lot of self-induced impostor syndrome can be due to the unknown when looking ahead. To combat this, you should set goals and plan your career path. This will provide you confidence when making career decisions and deciding what skills to learn and focus on.&lt;/p&gt;

&lt;p&gt;Instead of looking at how you learn, you need to look at what you want to do eventually — what industry, technology, language, company you want to work in or for. Then, using that information you find out what you need to learn.&lt;/p&gt;

&lt;p&gt;You can find the required skills by viewing job requirements for the job you want to have. You can also find out what skills are necessary by finding developers who have your desired job on LinkedIn or via Meetups. Contact them and meet them for coffee, or lunch and talk to them about their job and what skills they use regularly.&lt;/p&gt;

&lt;h2&gt;
  
  
  It never ends: handling imposter syndrome as you progress
&lt;/h2&gt;

&lt;p&gt;One unfortunate aspect of imposter syndrome is that you never really get away from it. I know other good, experienced developers who fight and experience the imposter syndrome at work too but only advice i been hearing is to starting to control it early in your career and taking steps to weaken its hold on you is one of the best ways to reduce it’s impact on you in the future.&lt;/p&gt;

&lt;p&gt;In my case, Whenever I start to feel like I’m not productive enough, or not moving forward fast enough, I reflect on why I feel that way. I think about all the possible reasons I might not be as productive as I think I should, and evaluate whether I think they’re valid. Most of the time they are.&lt;/p&gt;

&lt;p&gt;I also reflect on my situation to see if I’m doing the best job of learning. Am I optimizing for learning or just trying to look busy and productive? If I’m not optimizing for learning, I change my mindset and slow down. If I’m working in a new codebase, I try to find that I have to constantly adjust my mindset to view the task as an opportunity to grow and get better.&lt;/p&gt;

&lt;p&gt;Hope this article will be helpful to all the developers feeling the same at their job.....&lt;/p&gt;

</description>
    </item>
    <item>
      <title>React Router - A Beginner Guide</title>
      <dc:creator>sumit mehra</dc:creator>
      <pubDate>Sun, 19 Sep 2021 12:43:05 +0000</pubDate>
      <link>https://dev.to/sumit134coder/react-router-a-beginner-guide-i9g</link>
      <guid>https://dev.to/sumit134coder/react-router-a-beginner-guide-i9g</guid>
      <description>&lt;h2&gt;
  
  
  What is React Router?
&lt;/h2&gt;

&lt;p&gt;the basic explanation for this will be-&lt;br&gt;
&lt;em&gt;"React Router is a standard library for routing in React. It enables the navigation among views of various components in a React Application, allows changing the browser URL, and keeps the UI in sync with the URL."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So above definition makes it clear that it makes the browser URL in sync with the your component which is being displayed or your view.&lt;/p&gt;
&lt;h3&gt;
  
  
  Do we really need React Router
&lt;/h3&gt;

&lt;p&gt;As for a plain HTML , CSS and JS application you may have checked the Browser URL for your site or app while navigating through your html pages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.dummysite.com/index.html"&gt;www.dummysite.com/index.html&lt;/a&gt;&lt;/strong&gt;  or &lt;strong&gt;&lt;a href="http://www.dummysite.com/login.html"&gt;www.dummysite.com/login.html&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now you see how your url is followed by .html but in react while navigating through your views beginners dont bother with updating or syncing with URL . That's where Routing comes in handy.&lt;/p&gt;
&lt;h2&gt;
  
  
  Starting with React-Router
&lt;/h2&gt;

&lt;p&gt;So lets start with adding React router to your React application.&lt;br&gt;
For your NPM , you can use&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm i react-router-dom&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Now as it is installed as dependency , you are good to go to use it.&lt;/p&gt;

&lt;p&gt;Start with importing it to your component-&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import {BrowserRouter as Router,Route,Switch} from "react-router-dom"&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  A Go-Through Example with Basic Routing-
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from "react";
import {
  BrowserRouter as Router,
  Switch,
  Route,
  Link
} from "react-router-dom";

export default function App() {
  return (
    &amp;lt;Router&amp;gt;
      &amp;lt;div&amp;gt;
        &amp;lt;nav&amp;gt;
          &amp;lt;ul&amp;gt;
            &amp;lt;li&amp;gt;
              &amp;lt;Link to="/"&amp;gt;Home&amp;lt;/Link&amp;gt;
            &amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;
              &amp;lt;Link to="/about"&amp;gt;About&amp;lt;/Link&amp;gt;
            &amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;
              &amp;lt;Link to="/users"&amp;gt;Users&amp;lt;/Link&amp;gt;
            &amp;lt;/li&amp;gt;
          &amp;lt;/ul&amp;gt;
        &amp;lt;/nav&amp;gt;

        {/* A &amp;lt;Switch&amp;gt; looks through its children &amp;lt;Route&amp;gt;s and
            renders the first one that matches the current URL. */}
        &amp;lt;Switch&amp;gt;
          &amp;lt;Route path="/about"&amp;gt;
            &amp;lt;About /&amp;gt;
          &amp;lt;/Route&amp;gt;
          &amp;lt;Route path="/users"&amp;gt;
            &amp;lt;Users /&amp;gt;
          &amp;lt;/Route&amp;gt;
          &amp;lt;Route path="/"&amp;gt;
            &amp;lt;Home /&amp;gt;
          &amp;lt;/Route&amp;gt;
        &amp;lt;/Switch&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/Router&amp;gt;
  );
}

function Home() {
  return &amp;lt;h2&amp;gt;Home&amp;lt;/h2&amp;gt;;
}

function About() {
  return &amp;lt;h2&amp;gt;About&amp;lt;/h2&amp;gt;;
}
function Users() {
  return &amp;lt;h2&amp;gt;Users&amp;lt;/h2&amp;gt;;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Lets go through all one-by-one
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;BrowserRouter - BrowserRouter is a router implementation that uses the HTML5 history API(pushState, replaceState and the popstate event) to keep your UI in sync with the URL. It is the parent component that is used to store all of the other components.&lt;/li&gt;
&lt;li&gt;Route - Route is the conditionally shown component that renders some UI when its path matches the current URL.&lt;/li&gt;
&lt;li&gt;Link -  Link component is used to create links to different routes and implement navigation around the application. It works like HTML anchor tag.&lt;/li&gt;
&lt;li&gt;Switch - Switch component is used to render only the first route that matches the location rather than rendering all matching routes. Although there is no defying functionality of SWITCH tag in our application because none of the LINK paths are ever going to coincide. But let’s say we have a route (Note that there is no EXACT in here), then all the Route tags are going to be processed which start with ‘/’ (all Routes start with /). This is where we need SWITCH statement to process only one of the statements.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Let us now try to understand the props associated with the Route component.
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;exact: It is used to match the exact value with the URL. For Eg., exact path=’/about’ will only render the component if it exactly matches the path but if we remove exact from the syntax, then UI will still be rendered even if the strucute is like /about/10.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;path: Path specifies a pathname we assign to our component.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;component: It refers to the component which will render on matching the path.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Note: By default, routes are inclusive which means more than one Route component can match the URL path and render at the same time. If we want to render a single component, we need to use switch.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I think these concepts are useable and easy to understand for beginner. But do practice and experiment with these for better understanding.&lt;/p&gt;

&lt;p&gt;Do share your feedback if this blog proves useful to you.&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Starting with Express JS</title>
      <dc:creator>sumit mehra</dc:creator>
      <pubDate>Tue, 27 Jul 2021 14:31:02 +0000</pubDate>
      <link>https://dev.to/sumit134coder/starting-with-express-js-46o2</link>
      <guid>https://dev.to/sumit134coder/starting-with-express-js-46o2</guid>
      <description>&lt;p&gt;Express.js, or simply Express, is a back-end web application framework for Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs. It has been called the de facto standard server framework for Node.js. Express.js is a framework of Node.js which means that most of the code is already written for programmers to work with. You can build a single page, multi-page, or hybrid web applications using Express.js. Express.js is lightweight and helps to organize web applications on the server-side into a more organized MVC architecture.&lt;/p&gt;

&lt;p&gt;It is important to learn javascript and HTML to be able to use Express.js. Express.js makes it easier to manage web applications. It is a part of a javascript-based technology called MEAN software stack which stands for MongoDB, ExpressJS, AngularJS, and Node.js. Express.js is the backend part of MEAN and manages routing, sessions, HTTP requests, error handling, etc.&lt;/p&gt;

&lt;p&gt;The JavaScript library of Express.js helps programmers to build efficient and fast web apps. Express.js enhances the functionality of node.js. In fact, if you don’t use Express.js, then you have to do a lot of complex programming to build an efficient API. It has made programming in node.js effortless and has given many additional features.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why should you use Express JS
&lt;/h2&gt;

&lt;p&gt;Express.js supports JavaScript which is a widely used language that is very easy to learn and is also supported everywhere. Therefore, if you already know JavaScript, then it will be really easy for you to do programming using Express.js.&lt;/p&gt;

&lt;p&gt;With the help of Express.js, you can easily build different kinds of web applications in a short period of time. Express.js provides a simple routing for requests made by clients. It also provides a middleware that is responsible for making decisions to give the correct responses for the requests made by the client&lt;/p&gt;

&lt;p&gt;Without Express.js, you have to write your own code to build a routing component which is a time consuming and tedious task. Express.js offers simplicity, flexibility, efficiency, minimalism, and scalability to the programmers. It also has the advantage of powerful performance as it is a framework of Node.js.&lt;/p&gt;

&lt;p&gt;Node.js carries all the executions really fast with the help of Event Loop that avoids any kind of inefficiency. The powerful performance of Node.js and the ease of coding using Express.js are the most popular features loved by web application developers. Since Express.js is written in Javascript, you can build websites, web applications, or even mobile apps using it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Need of Express JS
&lt;/h2&gt;

&lt;p&gt;The most valuable asset in any business is time. On top of that many programmers have the pressure to build efficient web apps in a short period of time. But coding web apps and testing them requires time. This is where Express.js becomes a lifesaver for programmers.&lt;/p&gt;

&lt;p&gt;Express.js can reduce the coding time by half and still help us build efficient web applications. It not only reduces the time but it also reduces the effort required to build web apps with the help of its different features.&lt;/p&gt;

&lt;p&gt;Another reason to use Express.js is JavaScript. Express.js allows even beginners to enter the field of web application development because it supports JavaScript. Javascript is very easy to learn for anyone even if they do not have any prior knowledge of any other languages. Therefore, Express.js allows young talent to enter the field of web app development and achieve success.&lt;/p&gt;

&lt;p&gt;Node.js is event-driven and thus has the ability to handle thousands of client requests at the same time which is not possible with PHP.&lt;/p&gt;

&lt;p&gt;In today’s world, real-time web apps and services are increasing in popularity. Node.js is designed exclusively to support real web applications. The most common example of a real-time web app would be live-chat. It involves thousands of users and real-time interaction that can be supported easily by Node.js.&lt;/p&gt;

&lt;p&gt;Another asset of any business is money. It is important to use money efficiently to maximize profits. Since Express.js is an open-source and free web application that provides many great features, there is no reason left to not use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features of Express.js
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Faster Server side development
&lt;/h3&gt;

&lt;p&gt;Express.js provides many commonly used features of Node.js in the form of functions that can be readily used anywhere in the program. This removes the need to code for several hours and thus saves time.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Middleware
&lt;/h3&gt;

&lt;p&gt;Middleware is a part of the program that has access to the database, client requests, and the other middlewares. It is mainly responsible for the systematic organization of different functions of Express.js.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Routing
&lt;/h3&gt;

&lt;p&gt;ExpressJS provides a highly advanced routing mechanism that helps to preserve the state of the webpage with the help of their URLs.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Templating
&lt;/h3&gt;

&lt;p&gt;ExpressJS provides templating engines that allow the developers to build dynamic content on the web pages by building HTML templates on the server-side.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Debugging
&lt;/h3&gt;

&lt;p&gt;Debugging is crucial for the successful development of web applications. ExpressJS makes debugging easier by providing a debugging mechanism that has the ability to pinpoint the exact part of the web application which has bugs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing first Express JS program
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const express = require("express");
      const app = express();
const port = 3100;
app.listen(port , ()=&amp;gt;{console.log("server is up and running")});
app.get('/', (req,res)=&amp;gt;{

res.send("Hello world")})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Using Nodemon for Express JS
&lt;/h2&gt;

&lt;p&gt;nodemon is a tool that helps develop node.js based applications by automatically restarting the node application when file changes in the directory are detected.&lt;/p&gt;

&lt;p&gt;nodemon does not require any additional changes to your code or method of development. nodemon is a replacement wrapper for node. To use nodemon, replace the word node on the command line when executing your script.&lt;/p&gt;

&lt;h3&gt;
  
  
  installation
&lt;/h3&gt;

&lt;p&gt;for your Node package Manager(npm)&lt;/p&gt;

&lt;p&gt;npm i nodemon&lt;/p&gt;

&lt;p&gt;you can save nodemon as dev dependency&lt;/p&gt;

&lt;p&gt;npm install --save-dev nodemon&lt;/p&gt;

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

&lt;p&gt;I wrote this blog for absolute beginners who are starting their express journey as backend developers and this blog will help to set up the work environment and starting their server. hope this blog will be helpful. do share your feedback and share.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
