<?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>Forem: Chanchal Verma</title>
    <description>The latest articles on Forem by Chanchal Verma (@chanchals7).</description>
    <link>https://forem.com/chanchals7</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%2F801559%2F75b6dbc8-12e5-4b8b-b088-396e4f4e2852.jpg</url>
      <title>Forem: Chanchal Verma</title>
      <link>https://forem.com/chanchals7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/chanchals7"/>
    <language>en</language>
    <item>
      <title>Learning Web -3</title>
      <dc:creator>Chanchal Verma</dc:creator>
      <pubDate>Tue, 07 Oct 2025 18:46:20 +0000</pubDate>
      <link>https://forem.com/chanchals7/learning-web-3-55ca</link>
      <guid>https://forem.com/chanchals7/learning-web-3-55ca</guid>
      <description>&lt;p&gt;*&lt;em&gt;Assignments Question *&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write a function to give input string that output a SHA-256 hash that starts with 00000.
Note :  You have perform the brute force operation until you find value that starts with 00000.&lt;/li&gt;
&lt;li&gt;What if I ask you that input string should starts with stoshi ? How would you change the code ?&lt;/li&gt;
&lt;li&gt;Write a simple program that finds a nonce (a number) such that when the transactions and the nonce are concatenated and hashed using SHA-256, the hash starts with at least two zeros ("00").
&lt;code&gt;satoshi =&amp;gt; nakamoto| Rs 100  
Ram=&amp;gt; Shyam| Rs 10
&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can tried out these example assignment quesiton if you are beginner.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>cryptocurrency</category>
      <category>blockchain</category>
      <category>hashing</category>
    </item>
    <item>
      <title>✨𝐍𝐨𝐭 𝐉𝐮𝐬𝐭 𝐚 𝐑𝐞𝐬𝐮𝐦𝐞: 𝐃𝐞𝐯𝐞𝐥𝐨𝐩𝐢𝐧𝐠 𝐲𝐨𝐮𝐫 𝐏𝐞𝐫𝐬𝐨𝐧𝐚𝐥 𝐁𝐫𝐚𝐧𝐝 𝐚𝐬 𝐚 𝐒𝐨𝐟𝐭𝐰𝐚𝐫𝐞 𝐄𝐧𝐠𝐢𝐧𝐞𝐞𝐫</title>
      <dc:creator>Chanchal Verma</dc:creator>
      <pubDate>Mon, 16 Jun 2025 07:10:03 +0000</pubDate>
      <link>https://forem.com/chanchals7/-1cl8</link>
      <guid>https://forem.com/chanchals7/-1cl8</guid>
      <description>&lt;p&gt;&lt;strong&gt;✍️ Hook (LinkedIn/Blog intro-style):&lt;/strong&gt;&lt;br&gt;
Ever applied to 20+ roles and heard nothing back?&lt;br&gt;
Been coding for years but still unsure where you “fit”?&lt;br&gt;
Here’s the real secret: you need a persona, not just a profile.&lt;/p&gt;

&lt;p&gt;Whether you're just stepping into tech or gunning for that Staff Engineer title, the world doesn’t just hire talent anymore — it hires clarity.&lt;/p&gt;

&lt;p&gt;Let’s break this down into a real-world playbook — freshers, mid-level devs, and senior engineers — your game plan is different. Let's tailor it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Step 1: Know Who You Aren’t&lt;/strong&gt;&lt;br&gt;
Most people build their identity around tech stacks. But hiring managers, CTOs, and recruiters think in problem spaces.&lt;/p&gt;

&lt;p&gt;Ask:&lt;/p&gt;

&lt;p&gt;“Am I someone who scales systems, or builds from zero?”&lt;/p&gt;

&lt;p&gt;“Do I enjoy solving user pain or building backend magic?”&lt;/p&gt;

&lt;p&gt;Start from there. Write this down. Build from truth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚦 Step 2: Tailored Roadmaps by Career Stage&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;👶 For Freshers (0–2 years): “Break In With Clarity”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Identity Tools:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pick one project type — SaaS clone, ML toy, automation script.&lt;/li&gt;
&lt;li&gt;Write a post: “Why I chose to build X — and what broke along the way.”&lt;/li&gt;
&lt;li&gt;Create a 1-page site (Notion or GitHub Pages): “What I know, what I’m learning, what I built.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🎯 What to signal:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Passion &amp;gt; polish.&lt;/li&gt;
&lt;li&gt;Curiosity &amp;gt; completeness.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Show what excites you — even if it’s just a VS Code theme.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;📍 Tactics:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open-source contribution (1 PR &amp;gt; 100 tutorial hours).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Join local dev groups/online communities (e.g., buildspace, DevsIndia).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Follow and interact with engineers on LinkedIn; ask good questions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🧭 Mid-Level Engineers (3–7 years): “Sharpen the Edge”&lt;/strong&gt;&lt;br&gt;
You’re in the valley of noise. Titles blend. Growth plateaus. Here’s how you break out:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Identity Tools:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start a problem-centric blog: “This scaling bug taught me X.”&lt;/li&gt;
&lt;li&gt;Speak at small meetups or internal AMAs.&lt;/li&gt;
&lt;li&gt;Curate your GitHub around one theme: infra, frontend patterns, devtools, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🎯 What to signal:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You’re the person who sees patterns.&lt;/li&gt;
&lt;li&gt;You’ve moved beyond tickets to systems thinking.&lt;/li&gt;
&lt;li&gt;You teach juniors, but still debug like a senior.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;📍 Tactics:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rebrand your resume around outcomes, not duties (“reduced latency by 30%” &amp;gt; “wrote APIs”).&lt;/li&gt;
&lt;li&gt;Take up cross-functional projects.&lt;/li&gt;
&lt;li&gt;Learn what your future self needs: infra? ML? product design? Find a niche and deepen it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🧠 Senior+ Engineers (8+ years): “From Builder to Multiplier”&lt;/strong&gt;&lt;br&gt;
Now, it’s less about what you code — and more about what you shape.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Identity Tools:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Publish architecture notes, design tradeoffs.&lt;/li&gt;
&lt;li&gt;Become known for your lens (e.g., “how I scale tech teams”, “I design APIs for humans”).&lt;/li&gt;
&lt;li&gt;Mentor in the open: live-code, write reflections, critique tooling choices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🎯 What to signal:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Strategic vision.&lt;/li&gt;
&lt;li&gt;You don’t just ship code — you scale culture, systems, teams.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You are a “known quantity” in your domain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;📍 Tactics:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get quoted in podcasts or panels.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Refactor not just code, but processes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build a side-tool, CLI, or internal library that speaks to your maturity.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🪞 Step 3: Feedback Loop&lt;/strong&gt;&lt;br&gt;
Every 6 months, ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What changed in what I care about?&lt;/li&gt;
&lt;li&gt;What’s my “visible trail” of thinking and building?&lt;/li&gt;
&lt;li&gt;Who do I want to reach — and does my profile say that clearly?&lt;/li&gt;
&lt;li&gt;Treat your persona like a product. Build, ship, learn, refine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;💡 Final Thought: Craft the Signal, Not Just the Skills&lt;/strong&gt;&lt;br&gt;
Anyone can be a “React dev” or “SDE 2”. But what makes you memorable is being known for something specific — your clarity, not just your code.&lt;/p&gt;

&lt;p&gt;Your tech persona is how you show what you value:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frontend dev?&lt;/strong&gt; Share your UI thinking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend/Infra?&lt;/strong&gt; Post about your architecture tradeoffs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ML/Data?&lt;/strong&gt; Walk through real pipelines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DevOps?&lt;/strong&gt; Publish your automation wins.&lt;/p&gt;

&lt;p&gt;Security, Mobile, Game Dev? Own your niche with artifacts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔧 I’ve created a Notion kit with:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Role-specific roadmaps&lt;/p&gt;

&lt;p&gt;GitHub README templates&lt;/p&gt;

&lt;p&gt;Blog/video idea prompts&lt;/p&gt;

&lt;p&gt;A checklist to build your personal brand by domain &amp;amp; level&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Want it? Just comment or DM — I’ll send it your way 💬&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>New Trends of Developer : T-shaped developer</title>
      <dc:creator>Chanchal Verma</dc:creator>
      <pubDate>Sun, 09 Mar 2025 05:42:31 +0000</pubDate>
      <link>https://forem.com/chanchals7/new-trends-of-developer-t-shaped-developer-2abh</link>
      <guid>https://forem.com/chanchals7/new-trends-of-developer-t-shaped-developer-2abh</guid>
      <description>&lt;p&gt;Now a days the software companies work has changed. A new trend is emerging - The need for T-shaped software engineers.&lt;/p&gt;

&lt;p&gt;Software organization no longer looking for people who can only do one thing exceptionally  and do everything in a mediocre way.&lt;/p&gt;

&lt;p&gt;Organization wants people who can go deeper when it matters but also be able to deliver other higher tasks. It is a critical aspects for their business, it is making them highly adaptable.&lt;/p&gt;

&lt;p&gt;Many techies are unaware of the so-called "T-shaped" terms and its importance.&lt;/p&gt;

&lt;p&gt;So, if you want to more adaptable, valuable, or want to quickly get a  new job, becoming T-shaped developer can significantly help you.&lt;/p&gt;

&lt;p&gt;After digging deep down into this article, *&lt;em&gt;you will get the idea about : *&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Distinguish between Generalist and Specialist.&lt;/li&gt;
&lt;li&gt;What's a T-shaped developer.&lt;/li&gt;
&lt;li&gt;How to become T-shaped developer.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Generalist Developer&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As it's often said :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A jack of All trades, but a Master of None&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A Generalist has a broader view of different fields, tech stacks, skills and other key areas. He posses basic understanding and knowledge of tools in handy.&lt;/p&gt;

&lt;p&gt;You're staying on the surface of your chosen tech stack and skills.&lt;/p&gt;

&lt;p&gt;A generalist acquires skills across a broad range of areas, developing expertise horizontally rather than deeply in a single field. They gain knowledge by working with different technologies, which helps them adapt quickly to various tasks.&lt;/p&gt;

&lt;p&gt;Using analogies allows them to draw connections between different domains, making it easier to understand new concepts. This ability to relate ideas across disciplines makes a generalist more self-sufficient, as they can apply diverse experiences to solve problems effectively.&lt;/p&gt;

&lt;p&gt;However, &lt;strong&gt;Generalist usually fail when faced with challenging tasks and situation where deep knowledge and understanding required&lt;/strong&gt;. It's not enough to be &lt;strong&gt;"on the surface of tech stack"&lt;/strong&gt; when a task requires higher expertise and proficiency.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Specialist Developer&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A specialist is experts in a specific tech stack, field, technology and key areas. Where he posses deep understanding and expertise in a specific tool.&lt;/p&gt;

&lt;p&gt;As a specialist, your skills will grow vertically.&lt;br&gt;
Specialist tend to focus and work on one technology and area of expertise. He masters in it, can solve complex problems while generalist can't do. When he has mastered  a tool or technology, he usually have higher efficiency and productivity.&lt;/p&gt;

&lt;p&gt;Becoming a specialist is challenging and can sometimes be limiting. Focusing only on one technology or field may not always provide the best long-term benefits, as industries and trends constantly evolve.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If you rely on just one approach or skill, you may try to apply it to every problem, even when it's not the best fit.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Best from both :&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As we see, being either a Generalist or a specialist is not so great.  Isn't something in between ?&lt;br&gt;
Yes, there is &lt;strong&gt;T-shaped software developer.&lt;/strong&gt;&lt;br&gt;
The best from both.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The T-shaped developer&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A T-shaped developer is an &lt;strong&gt;expert in at least one area and has a broader knowledge and deep understanding of multiple areas of tech stack.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a T-shaped developer your skills grow both &lt;strong&gt;horizontally and vertically.&lt;/strong&gt; "T-shaped individual" because the distribution of skills  look like a "T".&lt;br&gt;
T-shaped developers tend to be an incredible resource in one's business they are &lt;strong&gt;experts in at least one field and have a basic knowledge and good understanding about others.&lt;/strong&gt;.&lt;br&gt;
This makes them valuable because they can deliver a different set of tasks and feature as well as solve complex problems when present.&lt;/p&gt;

&lt;p&gt;However organization business demands or expect sometimes T-shaped developer to be an expert in all fields. That's no realistic. Of course T-shaped developer can quickly learn and grasp a new tool and tech stack, but it will require additional time and effort.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;How to Become T-shaped developer :&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;There is real need for such professionals, Businesses need them.&lt;br&gt;
If you look into job description in various job platforms where it is posted, you will find there are more than one technologies one should know. &lt;br&gt;
Being a T-shaped developer &lt;strong&gt;you can not only interchangeable role in your team but also the chances of your firing are low&lt;/strong&gt;. Even if they do, you will quickly find another job because of being **T-shaped **developer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To becoming T-shaped developer&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You need to grow your skill horizontally and vertically.&lt;/li&gt;
&lt;li&gt;Growing vertically is quite challenging it takes time and efforts, it non linear path. Need to be &lt;strong&gt;proactive learner&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Whenever get an opportunity to work on another project or task, grab it. It's a great way to expand your skills.&lt;/li&gt;
&lt;li&gt;To grow horizontally, We need to find out its significance in terms of futuristic skills and its returns. Then only it makes sense to master them and devote time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Don't worry if you forget details when focusing on depth. Deep knowledge can be regained quickly when needed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So the crux is - Nowadays, there is real time need for &lt;strong&gt;T-shaped developer&lt;/strong&gt; , embrace it. Take the best of Generalist and Specialist to become T-shaped developer.&lt;br&gt;
A T-shaped developer : &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&amp;gt; "Skilled in many areas while excelling in a few."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you find my writing insightful please leave a heart for it.&lt;br&gt;
You can follow me over &lt;br&gt;
linkedin : &lt;a href="https://www.linkedin.com/in/chanchals7/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/chanchals7/&lt;/a&gt;&lt;br&gt;
X : &lt;a href="https://x.com/Chanchal_S7" rel="noopener noreferrer"&gt;https://x.com/Chanchal_S7&lt;/a&gt;&lt;br&gt;
GitHub : &lt;a href="https://github.com/ChanchalS7" rel="noopener noreferrer"&gt;https://github.com/ChanchalS7&lt;/a&gt;&lt;/p&gt;

</description>
      <category>developers</category>
      <category>typeofdeveloper</category>
      <category>webdev</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Data structure in Golang</title>
      <dc:creator>Chanchal Verma</dc:creator>
      <pubDate>Thu, 23 May 2024 18:14:51 +0000</pubDate>
      <link>https://forem.com/chanchals7/data-structure-in-golang-390i</link>
      <guid>https://forem.com/chanchals7/data-structure-in-golang-390i</guid>
      <description>&lt;p&gt;Golang has gained tremendous popularity in software development in few years of its launch since it was made available to public.&lt;/p&gt;

&lt;p&gt;I'm not intending to share here the full history of language, but go to the very few basic topics Here:&lt;/p&gt;

&lt;p&gt;The basic data structures of Golang include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Array&lt;/li&gt;
&lt;li&gt;Slice&lt;/li&gt;
&lt;li&gt;Map&lt;/li&gt;
&lt;li&gt;Struct&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Methods&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Interfaces&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;1. Array&lt;/strong&gt;&lt;br&gt;
             This data structures is used to stored fixed number of elements. So once an array is defined, elements cannot be added or removed from the array. Note that, we can set the value for any of the index in the array.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Way to define the array :&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var arr [size]type //general syntax
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var arrInteger [5]int //integer type array with five elements
var arrString  [5]string //string type array with five element
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Defining array with predefined elements:&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a:=[5]int{1,2,3,4,5}//defining and populating array
b:=[5]string{"first","second","third","fourth","fifth"}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;:= This is short declaration operator&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Slice&lt;/strong&gt;&lt;br&gt;
            Slice gives a more robust interface to sequences compared to array. Unlike an array, no need to specify the length of the slice when defining it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Way to declare or define slice&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var slice_name []type //general syntax
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Three way to create slice:

var s []int //integer type 

s:=[]{1,2,3,4,5} // slice with elements and short notation

s:=make([]int,n) // n is the number of the elements
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Map&lt;/strong&gt;&lt;br&gt;
           It is possible for you to use key value pairs to refer an element. This is accomplish using map. If you coming from JavaScript, php background, see map as your &lt;strong&gt;object.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;General syntax of Map:&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;map[keyType]valueType
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Way to define Map:&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var sampleMap=map[string]int //using var

sampleMap:=map[string]int // shorthand notation

sampleMap:=make(map[string]int)//using make()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Struct&lt;/strong&gt;&lt;br&gt;
           Go struct is a collection of named fields/properties. A struct can have the same or different types of fields.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Way to define struct&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;type person struct{
firstName string
lastName  string
age       int
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Methods&lt;/strong&gt;&lt;br&gt;
            A method in Go is a function is a function that is associated with a specific type. This allows the function to operate on instances of that type, enabling behavior similar to object-oriented programming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interfaces&lt;/strong&gt;&lt;br&gt;
            Interfaces in Go is a type that specifies a set of method signatures. A type implements an interface by providing definitions for all the methods declared by the interface. Interfaces are a powerful way to define and work with abstractions.&lt;/p&gt;

</description>
      <category>go</category>
      <category>datastructures</category>
      <category>backend</category>
      <category>slice</category>
    </item>
    <item>
      <title>GitLab vs GitHub: Choosing the Right Platform for Your Development Needs 🚀</title>
      <dc:creator>Chanchal Verma</dc:creator>
      <pubDate>Thu, 02 May 2024 04:05:02 +0000</pubDate>
      <link>https://forem.com/chanchals7/gitlab-vs-github-choosing-the-right-platform-for-your-development-needs-2445</link>
      <guid>https://forem.com/chanchals7/gitlab-vs-github-choosing-the-right-platform-for-your-development-needs-2445</guid>
      <description>&lt;p&gt;Are you in the midst of the eternal debate between GitLab and GitHub for your next project? 🤔 Both platforms are popular choices among developers, offering robust version control, collaboration tools, and an extensive ecosystem. Let's dive into the comparison and explore why GitLab might be the right choice for your development endeavors. 🛠️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitLab and GitHub: An Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub: 🐙&lt;/strong&gt;&lt;br&gt;
GitHub is the world's leading software development platform, boasting a vast community of developers and an extensive collection of open-source projects. It offers powerful version control features, collaboration tools, and integrations with popular development workflows. GitHub's user-friendly interface and seamless integration with Git make it a go-to choice for many developers and organizations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitLab: 🦊&lt;/strong&gt;&lt;br&gt;
GitLab, on the other hand, is a comprehensive DevOps platform that goes beyond version control to offer a complete solution for the entire software development lifecycle. From source code management and CI/CD to issue tracking and project management, GitLab provides all the tools developers need to streamline their workflows and deliver high-quality software efficiently. With an open-core model, GitLab offers both self-managed and cloud-hosted options to cater to a wide range of users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitLab vs GitHub: Key Differences&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. All-in-One Platform:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;GitLab&lt;/u&gt;: GitLab is a single application for the entire DevOps lifecycle, including source code management, CI/CD, issue tracking, code review, and more. This integrated approach promotes collaboration and visibility across teams.&lt;br&gt;
&lt;u&gt;GitHub&lt;/u&gt;: While GitHub excels in version control and code collaboration, it lacks some of the built-in features for CI/CD and project management found in GitLab.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Pricing and Deployment Options:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;GitLab&lt;/u&gt;: GitLab offers both self-managed (Community Edition and Enterprise Edition) and cloud-hosted solutions (GitLab.com). The Community Edition is open source and free to use, while the Enterprise Edition provides additional features and support for enterprise users.&lt;br&gt;
&lt;u&gt;GitHub&lt;/u&gt;: GitHub offers free and paid plans for individuals, teams, and enterprises. However, its self-hosted option (GitHub Enterprise) comes with a hefty price tag, making it less accessible for smaller organizations and individual developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Built-in CI/CD:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;GitLab:&lt;/u&gt; GitLab includes built-in CI/CD pipelines that allow developers to automate testing, building, and deploying their applications directly from their repositories. This integration streamlines the development process and improves productivity.&lt;br&gt;
&lt;u&gt;GitHub&lt;/u&gt;: GitHub Actions provides CI/CD capabilities similar to GitLab's pipelines but as a separate feature. While GitHub Actions is powerful and flexible, it requires additional configuration and setup compared to GitLab's integrated approach.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Choose GitLab?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Complete DevOps Platform&lt;/u&gt;: GitLab offers a comprehensive suite of tools for every stage of the software development lifecycle, enabling teams to collaborate more effectively and deliver software faster.&lt;br&gt;
Open Source and Community-Driven: With its open-core model and vibrant community, GitLab encourages collaboration and innovation, making it an ideal choice for open-source projects and community-driven initiatives.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Flexible Deployment Options&lt;/u&gt;: Whether you prefer self-hosted or cloud-hosted solutions, GitLab provides flexible deployment options to suit your organization's needs and preferences.&lt;br&gt;
Built-in CI/CD: With GitLab's integrated CI/CD pipelines, you can automate your entire development workflow, from code commits to production deployments, reducing manual overhead and improving efficiency.&lt;/p&gt;

&lt;p&gt;In conclusion, both GitLab and GitHub are excellent platforms for version control and collaboration, but GitLab's all-in-one approach, built-in CI/CD, and comprehensive DevOps capabilities make it a compelling choice for teams looking to streamline their development processes and accelerate software delivery. So why wait? Give GitLab a try and experience the difference it can make in your next project! 🚀&lt;/p&gt;

&lt;p&gt;Follow me for more updates:&lt;br&gt;
&lt;a href="https://dev.to/chanchals7"&gt;Chanchal&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/chanchals7/" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/ChanchalS7" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>React Libraries to Use in Your Projects in 2024</title>
      <dc:creator>Chanchal Verma</dc:creator>
      <pubDate>Tue, 06 Feb 2024 17:27:59 +0000</pubDate>
      <link>https://forem.com/chanchals7/react-libraries-to-use-in-your-projects-in-2024-9eh</link>
      <guid>https://forem.com/chanchals7/react-libraries-to-use-in-your-projects-in-2024-9eh</guid>
      <description>&lt;p&gt;If you're building applications with React, you should learn how to use some helpful libraries that'll make it easier to add the features you need.&lt;/p&gt;

&lt;p&gt;For example, to add features like authentication or styling, you'll need to find a good third-party library to handle it.&lt;/p&gt;

&lt;p&gt;In this comprehensive guide, I'm going to show you all of the libraries that I would recommend you use in 2024 to build fast, reliable React apps with ease.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;React Framework&lt;/li&gt;
&lt;li&gt;Package Manager&lt;/li&gt;
&lt;li&gt;CSS &amp;amp; UI Libraries&lt;/li&gt;
&lt;li&gt;State Management&lt;/li&gt;
&lt;li&gt;Data Fetching&lt;/li&gt;
&lt;li&gt;Routing&lt;/li&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Database &amp;amp; ORM&lt;/li&gt;
&lt;li&gt;Dates &amp;amp; Times&lt;/li&gt;
&lt;li&gt;Forms&lt;/li&gt;
&lt;li&gt;Drag &amp;amp; Drop
Mobile**** Apps&lt;/li&gt;
&lt;li&gt;Deployment&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛠️ React Framework
&lt;/h2&gt;

&lt;p&gt;First of all, how do we even create our React app in 2024?&lt;/p&gt;

&lt;p&gt;If you want a client-rendered React project, your best choice is &lt;a href="https://vitejs.dev/guide/" rel="noopener noreferrer"&gt;Vite&lt;/a&gt;, which has displaced the deprecated Create React App tool.&lt;/p&gt;

&lt;p&gt;If you're interested in building a server-rendered or full-stack React project, &lt;strong&gt;Next.js&lt;/strong&gt; is the most complete and popular full-stack React framework.&lt;/p&gt;

&lt;p&gt;Next.js version 13 introduced the app router, which gave us features like server components and server actions. These allow us to fetch data and render our React components on the server.&lt;/p&gt;

&lt;p&gt;If some of Next.js's features are too complex or you don't understand how to use them, a great full-stack alternative for making dynamic and static sites is &lt;strong&gt;Remix&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you're making an application that you want to load quickly and largely serve static content, another great pick is &lt;strong&gt;Astro&lt;/strong&gt;. Astro allows you to use React alongside other frameworks like Vue and Svelte (meaning it is “framework agnostic”) and is designed to ship the smallest amount of JavaScript necessary to the client, which results in very fast load times.&lt;/p&gt;

&lt;h2&gt;
  
  
  📦 Package Manager
&lt;/h2&gt;

&lt;p&gt;To install all of these libraries listed in this guide, you're going to need something called a package manager.&lt;/p&gt;

&lt;p&gt;If you have Node.js installed, which is necessary to run a React project locally on your computer, you can simply use &lt;strong&gt;NPM&lt;/strong&gt;, which is still a great choice in 2024. There are other alternatives to NPM, including Yarn and PNPM.&lt;/p&gt;

&lt;p&gt;The newest alternative, which is quickly becoming very popular in the JavaScript world, is Bun. Bun is both a JavaScript runtime like Node as well as a package manager and is marketed as a faster alternative to Node and NPM.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎨 CSS &amp;amp; UI Libraries
&lt;/h2&gt;

&lt;p&gt;Now that you've got your project set up and your libraries installed, how are you going to style your React projects?&lt;/p&gt;

&lt;p&gt;All of the frameworks I've mentioned above include basic CSS support. It's perfectly fine in 2024 if you want to stick to just styling your React projects with plain CSS.&lt;/p&gt;

&lt;p&gt;You can use CSS style sheets or CSS modules, but perhaps the most popular choice at the moment in terms of pure styling is to use &lt;strong&gt;&lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS.&lt;/a&gt;&lt;/strong&gt; Tailwind CSS does come with a few setup steps, but it allows you to chain pre-made classes together to quickly add styles directly within your component files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://ui.shadcn.com/" rel="noopener noreferrer"&gt;ShadCN&lt;/a&gt;&lt;/strong&gt; is a very popular UI library for 2024 that combines Tailwind CSS with a component library called Radix UI. Component libraries like Radix allow you to easily add components without coding them yourself.&lt;/p&gt;

&lt;p&gt;ShadCN has become popular due to the greater control it provides over how your components look with the help of Tailwind CSS.&lt;/p&gt;

&lt;p&gt;There are a bunch of other very popular functional component libraries as well. &lt;strong&gt;Material UI&lt;/strong&gt; still remains popular, as well as others like &lt;strong&gt;Mantine **and **Chakra UI&lt;/strong&gt;. Which one you pick really depends on how you want your final app to look. I'd recommend trying out a bunch of these UI libraries and see which one you like best.&lt;/p&gt;

&lt;p&gt;💽 State Management&lt;br&gt;
React has built-in tools such as &lt;u&gt;useState&lt;/u&gt; and &lt;u&gt;useReducer&lt;/u&gt; to manage your app state in basic applications. If you're using Next.js, state management has been moved to the URL when working with server components. Despite these options, you may need a way to manage state in a more precise way.&lt;/p&gt;

&lt;p&gt;You might have lots of pieces of state and want greater control over how state updates render your components. If so, you can reach for a dedicated state management library.&lt;/p&gt;

&lt;p&gt;Libraries such as &lt;u&gt;Zustand&lt;/u&gt;, &lt;u&gt;Recoil&lt;/u&gt;, and &lt;u&gt;Jotai&lt;/u&gt;, which are all very similar, allow you to manage state simply by declaring properties and methods on an object. This ultimately is the simplest way to handle state management across your app's components.&lt;/p&gt;

&lt;p&gt;If I had to pick one state management library for all of my React projects in 2024, I would choose &lt;u&gt;Zustand&lt;/u&gt;. It takes almost no time to learn how to use it. It also doesn't require you to add a provider component to your application, which makes it very convenient to use in any component you like.&lt;/p&gt;

&lt;h2&gt;
  
  
  🐕 Data Fetching
&lt;/h2&gt;

&lt;p&gt;State management and data fetching often go hand in hand. If you're building a client-rendered React app, you're likely going to need a data fetching library.&lt;/p&gt;

&lt;p&gt;The best way to fetch data from a server in a React app in 2024 remains React Query or &lt;strong&gt;Tanstack Query&lt;/strong&gt; as it's now called. TanStack Query gives you fine-grained control over not only fetching data, when to fetch and refetch it, caching, all through convenient custom hooks, as well as very easily change or mutate data.&lt;/p&gt;

&lt;p&gt;Another solid alternative is &lt;strong&gt;SWR&lt;/strong&gt;, which also offers a custom hook to handle queries and mutations, but it's far simpler in terms of what it offers. You can't go wrong with picking either one and fetching data and performing your HTTP requests with the fetch API.&lt;/p&gt;

&lt;p&gt;Here's an article that walks you through some of the most popular methods of data fetching in React (including Tanstack Query and SWR).&lt;/p&gt;

&lt;h2&gt;
  
  
  🧭 Routing
&lt;/h2&gt;

&lt;p&gt;If you're using a framework like Next.js, Remix, or Astro, your routing is already taken care of. All of them come with built-in ways to create routes or pages in your project.&lt;/p&gt;

&lt;p&gt;With a client-rendered React app such as one made with Vite or Create React App, you're going to need to pick a routing library. &lt;u&gt;&lt;strong&gt;React Router&lt;/strong&gt;&lt;/u&gt; still remains the most popular choice. It takes care of every routing need you might have. It’s also very advanced due to its data loading features with the loader prop. The loader prop allows you to fetch data for a given route without using an external library like React Query.&lt;/p&gt;

&lt;p&gt;An up-and-coming library that appears to have equally good features is Tanstack Router. The &lt;strong&gt;&lt;u&gt;Tanstack Router&lt;/u&gt;&lt;/strong&gt; was made to be fully type-safe and offer great defaults for data fetching just like React Router version 6 provides.&lt;/p&gt;

&lt;p&gt;While Tanstack Router is a bit newer, you really can't go wrong with either choice, and it's a perfect pairing if you're already using Tanstack Query or SWR in your applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔒 Authentication
&lt;/h2&gt;

&lt;p&gt;While authentication is something that's handled by the server side of our projects, it's worth knowing what libraries integrate best with React projects, both on the client and the server.&lt;/p&gt;

&lt;p&gt;In 2024, &lt;strong&gt;&lt;u&gt;Supabase&lt;/u&gt;&lt;/strong&gt; has emerged as a very robust authentication solution and offers easy integration with React apps, both on the server, say, in a Next.js project, and on the client. In past years, Firebase was chosen for similar reasons, but it's harder to integrate on the server side of things.&lt;/p&gt;

&lt;p&gt;If you're using Next.js, you have a ton of options available to you such as &lt;strong&gt;&lt;u&gt;NextAuth&lt;/u&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;u&gt;Clerk&lt;/u&gt;&lt;/strong&gt;, and the newcomer &lt;strong&gt;&lt;u&gt;Lucia&lt;/u&gt;&lt;/strong&gt;. It's unfortunate that there isn't currently a built-in auth library for Next.js, but perhaps in the future there'll be one.&lt;/p&gt;

&lt;p&gt;In the meantime, I'll personally be using Supabase and would highly recommend you check them out as well via their documentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  🥞 Database &amp;amp; ORM
&lt;/h2&gt;

&lt;p&gt;Much like authentication, your database is something that will and should speak largely to your server-side code.&lt;/p&gt;

&lt;p&gt;Databases like Supabase and Firebase don't require that you have a server. You can get and change data directly in the client, and you can add security rules within your dashboard to make sure certain types of requests are allowed or not allowed according to users' authentication status and role.&lt;/p&gt;

&lt;p&gt;Outside of these two options, if you're using a traditional server or a full-stack framework, there are countless options. In 2024, the general preference is clearly for SQL databases like MySQL or PostgreSQL over NoSQL databases like MongoDB or Firebase.&lt;/p&gt;

&lt;p&gt;With your database, to talk to your database, you'll either use plain SQL or an ORM that allows you to use a custom query language. Popular options for ORMs include Prisma or Drizzle. Both of them allow you to generate type-safe code so that you know what data will be returned and both integrate very well with SQL or NoSQL databases of your choosing.&lt;/p&gt;

&lt;h2&gt;
  
  
  🕰️ Dates &amp;amp; Times
&lt;/h2&gt;

&lt;p&gt;When you're working with JavaScript, it's always recommended to have a date library. JavaScript's date constructor is unpredictable and virtually impossible to work reliably with things like time zones.&lt;/p&gt;

&lt;p&gt;There are a bunch of options, but I tend to gravitate to date-fns or day.js. Both are very small but extensive libraries that allow you to manipulate JavaScript dates either in the browser or on the back end. You can't go wrong with either one.&lt;/p&gt;

&lt;h2&gt;
  
  
  📋 Forms
&lt;/h2&gt;

&lt;p&gt;You may not need a form library in most cases if you're just building an app with a simple sign-up form, using the required prop on your inputs is usually all you need.&lt;/p&gt;

&lt;p&gt;If you're building something more complex and have a lot of forms, &lt;strong&gt;&lt;u&gt;React Hook Form&lt;/u&gt;&lt;/strong&gt; is a fully featured form library that allows you to validate form input and display errors with very minimal code.&lt;/p&gt;

&lt;p&gt;Other form libraries, such as Formik and React Final Form, will give you the same functionality, but React Hook Form is a bit better because it has a more modern API based on hooks and usually requires less code.&lt;/p&gt;

&lt;h2&gt;
  
  
  ☔️ Drag &amp;amp; Drop
&lt;/h2&gt;

&lt;p&gt;When it comes to adding drag and drop to your application, you almost certainly need a third-party library. The most popular choice in the past has been React Beautiful DnD. As of 2024, it is no longer receiving regular updates.&lt;/p&gt;

&lt;p&gt;Going forward, a solid replacement for drag and drop is to use &lt;strong&gt;&lt;u&gt;DnD Kit&lt;/u&gt;&lt;/strong&gt;. It's lightweight, very flexible, and the documentation includes a bunch of super helpful examples covering every use case you might have when implementing drag and drop.&lt;/p&gt;

&lt;h2&gt;
  
  
  📱 Mobile Apps
&lt;/h2&gt;

&lt;p&gt;If you want to build a mobile app, the library to do so for React developers has always been React Native. There are some exciting libraries pushing the boundaries of React Native to extend to the web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Expo &lt;/u&gt;&lt;/strong&gt;is a tool similar to Vite, but for making mobile React apps. It has great features like fast refresh, and with Expo Go, you can easily run your project on your own device as you develop it. Expo is making it easier to take your mobile code base and also deploy it to the web.&lt;/p&gt;

&lt;p&gt;This is the end goal of other projects such as &lt;strong&gt;&lt;u&gt;Tamagui&lt;/u&gt;&lt;/strong&gt;, which you should also check out if you want to make a real native app that runs on Android, iOS, and the web.&lt;/p&gt;

&lt;p&gt;If you have a React app that you've already written to run in the browser, the fastest way to have it run as a native app and launch it on the Apple App Store or Google Play Store is to use &lt;strong&gt;&lt;u&gt;Capacitor.js&lt;/u&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Deployment
&lt;/h2&gt;

&lt;p&gt;There are more ways than ever to deploy your React app. Vercel is probably the easiest platform to deploy your React app with, whether it's client-rendered or server-rendered. They support just about every framework you can think of, including non-JavaScript languages. They have a generous hobby plan, and competitors in the same space include Netlify and Cloudflare Pages.&lt;/p&gt;

&lt;p&gt;Cloudflare Pages might be a little bit trickier to set up, especially if you have a full-stack React project, but it is the most generous in terms of price out of all of these options. If you don't mind paying for a server, you can use something like Railway or Render, which is great to deploy to if you have a server that is separate from your React app.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ The #1 Library To Know
&lt;/h2&gt;

&lt;p&gt;Finally, the number one essential library you should know if you're a React developer in 2024 is TypeScript. All of the frameworks I've mentioned include options to build a React app with TypeScript.&lt;/p&gt;

&lt;p&gt;TypeScript is a tool that allows you to detect type errors in your JavaScript code to help you prevent runtime errors. You can build all of your React projects with just JavaScript, but at some point, you're going to either see the benefits of using TypeScript yourself or be looking at a codebase that has TypeScript in it.&lt;/p&gt;

&lt;p&gt;I'd highly recommend you set aside some time to learn TypeScript. It's the most essential, the most in-demand tool to know as a React developer and can greatly improve your overall code quality.&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>react</category>
    </item>
    <item>
      <title>Networking and Networking Protocols</title>
      <dc:creator>Chanchal Verma</dc:creator>
      <pubDate>Mon, 01 Jan 2024 17:19:29 +0000</pubDate>
      <link>https://forem.com/chanchals7/networking-and-networking-protocols-3of6</link>
      <guid>https://forem.com/chanchals7/networking-and-networking-protocols-3of6</guid>
      <description>&lt;p&gt;In today's evolving world of technology, networking serves as the backbone connecting systems, devices, and services. Whether you're pursuing a career as a Network Engineer, DevOps Engineer, Cloud Engineer, System Engineer, Security Engineer, or Architect, having a good knowledge of networking is a prerequisite. In this article, we will explore what networking is, its relevance for various engineering roles, and delve into various networking protocols.&lt;/p&gt;

&lt;p&gt;What is Networking?&lt;br&gt;
Networking refers to the practice of connecting computers, servers, devices, and services together to allow communication and data transfer. It encompasses both the hardware infrastructure (routers, switches, cables) and the software protocols (TCP/IP, DNS) that enable smooth connectivity.&lt;/p&gt;

&lt;p&gt;What is a Network Protocol?&lt;br&gt;
Network protocols are often overlooked by many engineers, but they play a crucial role in making the internet work. A network protocol is a mechanism or a set of rules that define how data is transmitted and received over a network. These protocols enable communication between devices by establishing standardized procedures for encoding, transmitting, and decoding data.&lt;/p&gt;

&lt;p&gt;Some Important Protocols:&lt;/p&gt;

&lt;p&gt;HTTP (Hypertext Transfer Protocol):&lt;/p&gt;

&lt;p&gt;HTTP is the foundation of data communication on the web. It defines how messages are formatted and transmitted and how web browsers should respond to various commands.&lt;br&gt;
🌐📨🌐 (Sending and receiving messages on the web)&lt;br&gt;
HTTPS (Hypertext Transfer Protocol Secure) 🌐🔒:&lt;br&gt;
HTTPS is a secure version of HTTP, ensuring that data exchanged between a user's browser and a website is encrypted and secure.&lt;br&gt;
🌐🔐💻 (Secure communication between the web and your computer)&lt;/p&gt;

&lt;p&gt;HTTP/3 🌐🔒:&lt;br&gt;
HTTP/3 is the third version of the Hypertext Transfer Protocol. It's designed to improve the performance and security of web communication by using the QUIC protocol.&lt;br&gt;
🌐🚀🔐 (Faster and more secure web communication)&lt;/p&gt;

&lt;p&gt;TCP/IP (Transmission Control Protocol/Internet Protocol) 🌐💼:&lt;br&gt;
TCP/IP is a set of protocols that govern how data should be transmitted across networks, forming the backbone of the internet.&lt;br&gt;
🌐🤝💼 (Shaking hands for reliable communication over the internet)&lt;/p&gt;

&lt;p&gt;UDP (User Datagram Protocol) 🚀📦:&lt;br&gt;
UDP is a communication protocol that sends data without establishing a connection. It's often used for real-time applications where speed is crucial.&lt;br&gt;
🚀💨📦 (Sending data packets swiftly without waiting)&lt;/p&gt;

&lt;p&gt;Web Socket 🌐🧤:&lt;br&gt;
Web Sockets provide a full-duplex communication channel over a single, long-lived connection, allowing real-time data transfer between a client and a server.&lt;br&gt;
🌐🔄🧤 (Constant two-way communication like passing a ball back and forth)&lt;/p&gt;

&lt;p&gt;SMTP (Simple Mail Transfer Protocol) ✉️📤:&lt;br&gt;
SMTP is a protocol for sending emails between servers, defining how email messages should be sent and received.&lt;br&gt;
✉️📤📧 (Putting a letter in the mailbox to send an email)&lt;/p&gt;

&lt;p&gt;FTP (File Transfer Protocol) 🔄📂:&lt;br&gt;
FTP is a standard network protocol used to transfer files between a client and a server on a computer network.&lt;br&gt;
🔄📂💻 (Swapping files between computers like passing folders around)&lt;/p&gt;

&lt;p&gt;Understanding these protocols is vital for professionals in the tech industry, as they form the basis for efficient and standardized communication in the interconnected world of digital information exchange. Stay curious, keep learning, and embrace the dynamic landscape of networking! 🌐🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Road to DevOps.....</title>
      <dc:creator>Chanchal Verma</dc:creator>
      <pubDate>Mon, 07 Aug 2023 06:55:47 +0000</pubDate>
      <link>https://forem.com/chanchals7/road-to-devops-25b4</link>
      <guid>https://forem.com/chanchals7/road-to-devops-25b4</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. Learn Basic Programming:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Start with a programming language like Python, Ruby, or Go. Understand the basics of variables, loops, functions, and data structures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Understand Version Control:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Learn how to use Git for version control. Understand branching, merging, and collaboration using platforms like GitHub or GitLab.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Learn Linux:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Familiarize yourself with the Linux command line, basic system administration, and shell scripting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Master Cloud Platforms:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Learn cloud platforms like AWS, Azure, or Google Cloud. Understand services, networking, security, and deployment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Automation and Infrastructure as Code (IaC):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Learn tools like Ansible, Terraform, or Puppet for automating infrastructure provisioning and configuration management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Continuous Integration and Continuous Deployment (CI/CD):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Understand CI/CD pipelines and tools like Jenkins, Travis CI, GitLab CI/CD, or CircleCI for automating software delivery.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Containerization and Orchestration:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Learn Docker for containerization and Kubernetes for container orchestration. Understand concepts like pods, services, deployments, and scaling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Monitoring and Logging:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Learn monitoring tools like Prometheus and Grafana. Understand logging using tools like ELK Stack (Elasticsearch, Logstash, Kibana).&lt;/p&gt;

&lt;p&gt;Understand security best practices for cloud environments, infrastructure, and applications. Learn about Identity and Access Management (IAM), encryption, and vulnerability assessment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. Collaboration and Communication:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Develop soft skills for effective communication and collaboration with development and operations teams. Understand Agile and DevOps culture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11. Gain Hands-On Experience:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Work on real-world projects to apply your knowledge. Building your own projects or contributing to open-source projects can help you gain practical experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;12. Continuous Learning:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The field of DevOps is constantly evolving. Stay updated with new tools, technologies, and best practices by reading blogs, attending webinars, and participating in conferences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;13. Certification:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Consider getting certified in relevant areas like AWS Certified DevOps Engineer, Certified Kubernetes Administrator (CKA), or Certified Jenkins Engineer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;14. Build Your Online Presence:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create a professional online presence through LinkedIn, GitHub, and personal blog to showcase your skills and projects.&lt;/p&gt;

&lt;p&gt;Remember, becoming a DevOps engineer is a journey, and it's important to continuously learn, adapt, and experiment. Tailor this roadmap based on your interests and career goals, and don't hesitate to seek guidance from mentors or online communities.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Essential Web Development Checklist: Your Guide to Starting Your Web Development Journey</title>
      <dc:creator>Chanchal Verma</dc:creator>
      <pubDate>Thu, 08 Jun 2023 03:19:59 +0000</pubDate>
      <link>https://forem.com/chanchals7/essential-web-development-checklist-your-guide-to-starting-your-web-development-journey-3k9e</link>
      <guid>https://forem.com/chanchals7/essential-web-development-checklist-your-guide-to-starting-your-web-development-journey-3k9e</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt;&lt;br&gt;
Embarking on a web development journey can be exciting and rewarding. However, it's essential to have a checklist to ensure you cover all the necessary aspects of web development. This article provides you with a comprehensive web development checklist, outlining the key elements and best practices to consider when starting your web development journey.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Planning and Research:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define your project goals, target audience, and desired features.&lt;/li&gt;
&lt;li&gt;Conduct thorough market research to understand industry trends and user expectations.&lt;/li&gt;
&lt;li&gt;Identify and analyze competitor websites for inspiration and differentiation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Domain and Hosting:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose a memorable and relevant domain name that reflects your brand.&lt;/li&gt;
&lt;li&gt;Select a reliable web hosting provider that offers sufficient storage, bandwidth, and uptime guarantees.&lt;/li&gt;
&lt;li&gt;Ensure your hosting environment supports the required technologies for your web development stack.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Design and User Experience:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a visually appealing and intuitive website design.&lt;/li&gt;
&lt;li&gt;Focus on responsive design to ensure your website looks and functions well on various devices.&lt;/li&gt;
&lt;li&gt;Pay attention to user experience by optimizing page load times and simplifying navigation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Content Creation and Management:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Develop high-quality and engaging content that aligns with your target audience's needs.&lt;/li&gt;
&lt;li&gt;Implement a content management system (CMS) for easy content creation, editing, and publishing.&lt;/li&gt;
&lt;li&gt;Optimize content for search engines (SEO) to improve visibility and organic traffic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Front-End Development:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write clean and semantic HTML markup for the website's structure.&lt;/li&gt;
&lt;li&gt;Utilize CSS for styling and ensure consistent branding throughout the site.&lt;/li&gt;
&lt;li&gt;Enhance user interactivity and functionality with JavaScript and modern frameworks like React or Angular.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Back-End Development:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose an appropriate server-side language (e.g., Node.js, Python, PHP) based on your project requirements.&lt;/li&gt;
&lt;li&gt;Design and implement a secure and scalable database structure.&lt;/li&gt;
&lt;li&gt;Develop robust server-side logic to handle user requests, data processing, and authentication.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Testing and Debugging:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Perform comprehensive testing across different browsers and devices to ensure cross-compatibility.&lt;/li&gt;
&lt;li&gt;Conduct unit tests, integration tests, and user acceptance testing (UAT) to identify and fix issues.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implement error handling and logging mechanisms for efficient debugging.&lt;br&gt;
&lt;strong&gt;Security and Performance:&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implement secure practices, such as input validation, secure authentication, and protection against common vulnerabilities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Optimize website performance by minimizing file sizes, leveraging caching techniques, and optimizing database queries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Regularly update software dependencies and apply security patches to protect against potential threats.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Search Engine Optimization (SEO):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conduct keyword research and implement on-page optimization techniques.&lt;/li&gt;
&lt;li&gt;Create SEO-friendly URLs, meta tags, and descriptive headings.&lt;/li&gt;
&lt;li&gt;Build quality backlinks and implement social media integration to improve website visibility.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Launch and Maintenance:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploy your website to a production server and perform final checks.&lt;/li&gt;
&lt;li&gt;Set up website analytics to track user behavior, traffic sources, and conversion metrics.&lt;/li&gt;
&lt;li&gt;Regularly update content, monitor website performance, and address any issues promptly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Starting your web development journey requires careful planning, attention to detail, and a systematic approach. By following this web development checklist, you'll be well-prepared to create exceptional websites that meet user expectations, deliver a seamless user experience, and drive your online presence to new heights. Remember to continuously update your skills, stay updated with the latest technologies, and always prioritize the needs of your target audience. Happy coding!&lt;/p&gt;

&lt;p&gt;For suh more updates you can follow me on&lt;br&gt;
&lt;a href="https://github.com/ChanchalS7" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/chanchals7/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/Chanchal_S7" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dev.to/chanchals7"&gt;DEV&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Deep and Shallow Copy in JavaScript: An In-Depth Guide</title>
      <dc:creator>Chanchal Verma</dc:creator>
      <pubDate>Tue, 02 May 2023 06:38:32 +0000</pubDate>
      <link>https://forem.com/chanchals7/deep-and-shallow-copy-in-javascript-an-in-depth-guide-51o9</link>
      <guid>https://forem.com/chanchals7/deep-and-shallow-copy-in-javascript-an-in-depth-guide-51o9</guid>
      <description>&lt;p&gt;When working with JavaScript, you may come across situations where you need to make copies of objects or arrays. This is where the concepts of deep and shallow copying come into play. In this guide, we will explore what deep and shallow copying are, why they are important, and how to implement them in your code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Copying?
&lt;/h2&gt;

&lt;p&gt;Before we dive into the specifics of deep and shallow copying, it's important to understand what copying means in the context of JavaScript. In simple terms, copying refers to the process of creating a new object or array with the same values as an existing one.&lt;/p&gt;

&lt;p&gt;There are two main types of copying in JavaScript: shallow copying and deep copying.&lt;/p&gt;

&lt;h3&gt;
  
  
  Shallow Copying:
&lt;/h3&gt;

&lt;p&gt;Shallow copying refers to creating a new object or array with the same values as the original, but the new object or array only holds references to the original object's or array's values. This means that any changes made to the original object or array will also be reflected in the copied object or array.&lt;/p&gt;

&lt;p&gt;For example, consider the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const originalArray = [1, 2, 3, 4];
const newArray = originalArray;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this case, newArray is a shallow copy of originalArray. Any changes made to the originalArray will also be reflected in newArray.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why use Shallow Copying?
&lt;/h3&gt;

&lt;p&gt;Shallow copying can be useful in situations where you need to create a new object or array quickly and efficiently. Since a shallow copy only holds references to the original object's or array's values, it requires less memory than a deep copy.&lt;/p&gt;

&lt;p&gt;Shallow copying is also useful when working with large objects or arrays, as creating a deep copy of a large object or array can be a time-consuming process.&lt;/p&gt;

&lt;p&gt;How to Implement Shallow Copying in JavaScript?&lt;/p&gt;

&lt;p&gt;There are several ways to implement shallow copying in JavaScript. Here are some examples:&lt;/p&gt;

&lt;p&gt;Spread operator:&lt;br&gt;
The spread operator is a popular method for creating shallow copies of objects and arrays. Here is an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const originalObject = {a: 1, b: 2, c: 3};
const newObject = {...originalObject};

const originalArray = [1, 2, 3, 4];
const newArray = [...originalArray];

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In both cases, the spread operator is used to create a shallow copy of the original object or array.&lt;/p&gt;

&lt;p&gt;Object.assign():&lt;br&gt;
Another method for creating shallow copies of objects is to use the Object.assign() method. Here is an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const originalObject = {a: 1, b: 2, c: 3};
const newObject = Object.assign({}, originalObject);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this case, Object.assign() is used to create a new object that is a shallow copy of the original object.&lt;/p&gt;

&lt;h3&gt;
  
  
  Deep Copying:
&lt;/h3&gt;

&lt;p&gt;Deep copying, on the other hand, refers to creating a new object or array with the same values as the original, but the new object or array holds new copies of the original object's or array's values. This means that any changes made to the original object or array will not be reflected in the copied object or array.&lt;/p&gt;

&lt;p&gt;For example, consider the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const originalArray = [1, 2, 3, 4];
const newArray = JSON.parse(JSON.stringify(originalArray));

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this case, newArray is a deep copy of originalArray. Any changes made to originalArray will not be reflected in newArray.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why use Deep Copying?
&lt;/h3&gt;

&lt;p&gt;Deep copying is useful in situations where you need to create a new object or array with independent values from the original object.&lt;/p&gt;

&lt;p&gt;For suh more Coding content you can follow me on&lt;br&gt;
&lt;a href="https://github.com/ChanchalS7" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/chanchals7/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dev.to/chanchals7"&gt;DEV&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What are Pure and Impure functions in JavaScript</title>
      <dc:creator>Chanchal Verma</dc:creator>
      <pubDate>Sat, 29 Apr 2023 06:00:53 +0000</pubDate>
      <link>https://forem.com/chanchals7/what-are-pure-and-impure-functions-in-javascript-52d6</link>
      <guid>https://forem.com/chanchals7/what-are-pure-and-impure-functions-in-javascript-52d6</guid>
      <description>&lt;p&gt;Once upon a time, in a small village, there was a mathematician named John who loved solving mathematical problems. John used to teach math to kids in his village. One day, John was explaining about functions to his students, he told them that a function is a set of instructions that can be reused multiple times.&lt;/p&gt;

&lt;p&gt;John explained to his students that there are two types of functions in JavaScript, Pure functions and Impure functions.&lt;/p&gt;

&lt;p&gt;He said that Pure functions are the ones that always return the same output for the same input, no matter when or where they are called. Pure functions do not have any side effects, which means they do not modify any variables outside of their scope, and they also do not interact with the outside world in any way.&lt;/p&gt;

&lt;p&gt;On the other hand, Impure functions are the ones that do not always return the same output for the same input, and they may modify variables outside of their scope or interact with the outside world in some way.&lt;/p&gt;

&lt;p&gt;To explain it to his students, John took an example of a pure and an impure function.&lt;/p&gt;

&lt;p&gt;`&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsv7u4z7gvvhm6wtdum1x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsv7u4z7gvvhm6wtdum1x.png" alt="Image description" width="740" height="710"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  You can more deep dive into it in the following way :
&lt;/h2&gt;

&lt;p&gt;In simple terms, pure functions do not have an internal state. Therefore, all operations performed in pure functions are not affected by their state. As a result, the same input parameters will give the same deterministic output regardless of how many times you run the function.To get a better understanding, let’s consider the following example.&lt;/p&gt;

&lt;p&gt;`function add(a,b) { &lt;br&gt;
 return a + b&lt;br&gt;
}&lt;br&gt;
console.log(add(4,5))&lt;/p&gt;

&lt;p&gt;`&lt;/p&gt;

&lt;p&gt;This example contains a simple add() function, which gives 9 as the output. It is a very predictable output, and it does not depend on any external code. This makes the add() function a pure function.&lt;br&gt;
If a function is declared pure and does not have a state, it can share many instances inside a class. Also, it is advised to avoid mutations inside pure functions.&lt;br&gt;
Advantages of pure functions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A pure function works as an independent function that gives the same output for the same inputs.&lt;/li&gt;
&lt;li&gt;Pure functions are readable because of independent behavior. Moreover, they are straightforward to debug.&lt;/li&gt;
&lt;li&gt;You can clone an external state into a pure function, but it does not change the purity of the function. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Impure Functions&lt;/strong&gt;&lt;br&gt;
An impure function is a function that contains one or more side effects. It mutates data outside of its lexical scope and does not predictably produce the same output for the same input.&lt;br&gt;
For example, consider the following code snippet:&lt;/p&gt;

&lt;p&gt;`var addNew = 0;&lt;br&gt;
function add(a,b){ &lt;br&gt;
  addNew =1;   return a + b + addNew} &lt;br&gt;
console.log(add(4,5))&lt;/p&gt;

&lt;p&gt;`&lt;/p&gt;

&lt;p&gt;In the above example, there is a variable named addNew, and it is declared outside of the add() function. But the state of that variable is changed inside the add() function. So, the add() function has a side effect on a variable outside of its scope and is therefore considered an impure function.&lt;br&gt;
JavaScript doesn’t adhere to rigorous notions of function purity and immutability. Any program you develop will need impure functions to modify the state of JavaScript variables (named memory locations).&lt;br&gt;
In general, it’s ideal to keep the impure elements of your programs distinct from the data processing, which is usually pure. Also, updating and maintaining your applications will be much easier if you confine impure elements to their particular functions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example of impure functions :&lt;/strong&gt;&lt;br&gt;
Math.random(), Date.now(), arr.splice(), arr.push(), arr.sort()&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of impure functions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Impure functions can use an in-place solution to reduce the space complexity.&lt;/li&gt;
&lt;li&gt;In impure functions, the state can be modified to use the parent variable and call for the function compiling.&lt;/li&gt;
&lt;li&gt;As mentioned, the main difference between pure and impure functions in JavaScript is side effects. So, let’s discuss some specifics about the side effects.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Pure functions vs. impure functions&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Let’s compare and contrast the differences between pure and impure functions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pure functions do not have side effects. Impure functions can cause side effects.&lt;/li&gt;
&lt;li&gt;Pure functions return the same output if we use the same input parameters. However, impure functions give different outcomes when we pass the same arguments multiple times.&lt;/li&gt;
&lt;li&gt;Pure functions always return some results. Impure functions can execute without producing anything.&lt;/li&gt;
&lt;li&gt;Debugging pure functions is relatively easier than debugging impure functions.&lt;/li&gt;
&lt;li&gt;Pure functions cannot execute AJAX calls or standard DOM manipulation.&lt;/li&gt;
&lt;li&gt;Impure functions aren’t inherently wrong. They merely can cause some confusion in more extensive systems in the form of spaghetti code
.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For suh more Cding content you can  follow me on &lt;br&gt;
&lt;a href="https://github.com/ChanchalS7" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/chanchals7/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dev.to/chanchals7"&gt;DEV&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>merninterview</category>
      <category>javascript</category>
      <category>functional</category>
    </item>
  </channel>
</rss>
