<?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: Susmita Dey</title>
    <description>The latest articles on DEV Community by Susmita Dey (@susmitadey).</description>
    <link>https://dev.to/susmitadey</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%2F801056%2F11c5cf42-863e-469e-8d5b-bfb18c5776c7.png</url>
      <title>DEV Community: Susmita Dey</title>
      <link>https://dev.to/susmitadey</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/susmitadey"/>
    <language>en</language>
    <item>
      <title>Dependency Injections Made Easy: How They Work</title>
      <dc:creator>Susmita Dey</dc:creator>
      <pubDate>Mon, 28 Apr 2025 13:04:12 +0000</pubDate>
      <link>https://dev.to/susmitadey/dependency-injections-made-easy-how-they-work-32ao</link>
      <guid>https://dev.to/susmitadey/dependency-injections-made-easy-how-they-work-32ao</guid>
      <description>&lt;p&gt;Hello everyone, hope you’re all doing great. At some point, we've all faced the challenge of managing code that's more tangled than a bowl of spaghetti 🍝. But don’t worry, today we're going to explore a cool concept that will make your life much easier: &lt;strong&gt;Dependency Injection&lt;/strong&gt;. It’s not as intimidating as it sounds, and we’ll break it down step by step. So without further ado, let’s get started!&lt;/p&gt;




&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Dependency Injection is a way of writing software or code.&lt;/p&gt;

&lt;p&gt;There’s a &lt;strong&gt;myth&lt;/strong&gt; that Dependency Injection (DI) is something special only for Java or SpringBoot.&lt;br&gt;&lt;br&gt;
But the truth?&lt;br&gt;&lt;br&gt;
It's just like &lt;strong&gt;OOP (Object-Oriented Programming)&lt;/strong&gt; — a concept, not a Java-exclusive thing.&lt;/p&gt;

&lt;p&gt;Just like classes and objects exist across C++, Java, Python, GoLang, etc.,&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Dependency Injection&lt;/strong&gt; can be used in many different languages to write better software!&lt;/p&gt;


&lt;h2&gt;
  
  
  What is Dependency Injection (DI)?
&lt;/h2&gt;

&lt;p&gt;According to Wikipedia:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“In software engineering, dependency injection is a programming technique in which an object or function receives other objects or functions that it requires, as opposed to creating them internally.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In simple words:&lt;/p&gt;

&lt;p&gt;Dependency Injection means &lt;strong&gt;giving an object the things (dependencies) it needs to do its job, instead of making it go hunt for them itself.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine you're &lt;strong&gt;Batman&lt;/strong&gt; 🦇.&lt;br&gt;&lt;br&gt;
You don't build your Batmobile yourself every time you fight crime, right?&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Alfred&lt;/strong&gt; (your awesome butler) brings it to you.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Batman = your class&lt;br&gt;&lt;br&gt;
Batmobile = dependency&lt;br&gt;&lt;br&gt;
Alfred = dependency injector 🚗✨&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s Dependency Injection!&lt;/p&gt;
&lt;h3&gt;
  
  
  Why Should You Even Care About DI? 💬
&lt;/h3&gt;

&lt;p&gt;There are many reasons you should care about DI and following are some of them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;It makes your code &lt;strong&gt;cleaner&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It makes your code &lt;strong&gt;easier to test&lt;/strong&gt; (no more crying while writing unit tests 😭)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It makes your software &lt;strong&gt;flexible&lt;/strong&gt; and &lt;strong&gt;scalable&lt;/strong&gt; (so your app doesn’t fall apart like a Jenga tower)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  What Are Dependencies Anyway? 🎒
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;A dependency&lt;/strong&gt; is just something your code needs to function.&lt;br&gt;&lt;br&gt;
Think of it like when you’re gaming 🎮 —&lt;br&gt;&lt;br&gt;
Your character needs a sword 🗡️ or a shield 🛡️ to survive.&lt;br&gt;&lt;br&gt;
The sword is a &lt;strong&gt;dependency&lt;/strong&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A &lt;code&gt;Car&lt;/code&gt; class needs an &lt;code&gt;Engine&lt;/code&gt; to run.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A &lt;code&gt;PizzaStore&lt;/code&gt; needs a &lt;code&gt;PizzaOven&lt;/code&gt; to bake pizzas. 🍕&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  The Problem With Tight Coupling 😬
&lt;/h2&gt;

&lt;p&gt;Tight coupling is when your class is &lt;strong&gt;GLUED&lt;/strong&gt; too tightly to the stuff it uses.&lt;/p&gt;

&lt;p&gt;Imagine if your gaming character was born &lt;strong&gt;with&lt;/strong&gt; a sword attached forever. No upgrading, no switching weapons.&lt;br&gt;&lt;br&gt;
Boring, right? 😑&lt;br&gt;&lt;br&gt;
Same in code: you want the freedom to swap things out.&lt;/p&gt;


&lt;h2&gt;
  
  
  How Dependency Injection Works 🔧
&lt;/h2&gt;

&lt;p&gt;The idea is simple:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Instead of building stuff inside the class, you give it everything it needs from outside.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Let’s look at an example 🎮
&lt;/h3&gt;

&lt;p&gt;Here’s the &lt;strong&gt;tight coupling&lt;/strong&gt; version (not so great):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# dep_one.py -&amp;gt; Tightly Coupled Example (Bad ❌)
&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Database&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Connected to Database&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Service&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Database&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;# tightly coupled to Database!
&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# Usage
&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Service&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_data&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Here, &lt;code&gt;Service&lt;/code&gt; is &lt;strong&gt;glued&lt;/strong&gt; to the &lt;code&gt;Database&lt;/code&gt; class.&lt;br&gt;&lt;br&gt;
If you want to switch to a different type of database later (like from MySQL to MongoDB), it’ll be messy.&lt;br&gt;&lt;br&gt;
It’s like being forced to always use the same boring sword in every game level. 🥱&lt;/p&gt;

&lt;p&gt;Now here’s the &lt;strong&gt;Dependency Injection&lt;/strong&gt; version (so much better!):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# dep_one.py (improved) -&amp;gt; Dependency Injection Example (Good ✅)
&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Database&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Connected to Database&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Service&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;  &lt;span class="c1"&gt;# loosely coupled!
&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# Usage
&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Database&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;service&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Service&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_data&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Now, &lt;code&gt;Service&lt;/code&gt; doesn’t care &lt;strong&gt;what&lt;/strong&gt; database you give it.&lt;br&gt;&lt;br&gt;
You could give it a super fancy &lt;code&gt;NoSQLDatabase&lt;/code&gt; or even a &lt;strong&gt;FakeDatabase&lt;/strong&gt; for testing! 🛠️&lt;br&gt;&lt;br&gt;
It’s like swapping your sword for a lightsaber whenever you want. 🔥&lt;/p&gt;


&lt;h2&gt;
  
  
  DI Magic in FastAPI (Python Framework Example) ✨
&lt;/h2&gt;

&lt;p&gt;Okay, let's level up now.&lt;br&gt;&lt;br&gt;
Here’s how &lt;strong&gt;FastAPI&lt;/strong&gt;, a super popular Python web framework, &lt;strong&gt;uses Dependency Injection&lt;/strong&gt; under the hood.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;fastapi&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FastAPI&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Depends&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastAPI&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Database&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Connected to Database&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;disconnect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Disconnected from Database&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_database&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;db&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Database&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="c1"&gt;# Connect to the database when needed
&lt;/span&gt;        &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;
    &lt;span class="k"&gt;finally&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;disconnect&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nd"&gt;@app.get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/chai&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;read_chai&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nc"&gt;Depends&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;get_database&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;db&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Chai is ready!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What’s happening here?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;get_database()&lt;/code&gt; is a function that &lt;em&gt;provides&lt;/em&gt; a &lt;code&gt;Database&lt;/code&gt; object.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Depends(get_database)&lt;/code&gt; tells FastAPI:&lt;br&gt;&lt;br&gt;
👉 "Hey, inject a Database here when someone hits this endpoint!"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When someone calls &lt;code&gt;/chai&lt;/code&gt;, FastAPI &lt;strong&gt;connects&lt;/strong&gt; to the database &lt;strong&gt;for you&lt;/strong&gt;, and &lt;strong&gt;disconnects&lt;/strong&gt; cleanly afterward.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚡ No messy manual connection handling. ⚡ No tight coupling inside your route functions. ⚡ Smooth, clean, scalable code!&lt;/p&gt;

&lt;p&gt;It's like having a chaiwala deliver fresh chai ☕️ every time someone rings your doorbell — &lt;strong&gt;and&lt;/strong&gt; they politely leave when they're done!&lt;/p&gt;




&lt;h2&gt;
  
  
  Types of Dependency Injection
&lt;/h2&gt;

&lt;p&gt;There are &lt;strong&gt;3 ways&lt;/strong&gt; to do it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Constructor Injection&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Give the dependency when creating the object.&lt;/li&gt;
&lt;li&gt;Like getting your pizza delivered while ordering.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Setter Injection&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Set the dependency later, after the object is created.
&lt;/li&gt;
&lt;li&gt;Like getting toppings added after you baked the pizza.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Interface Injection&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Force the class to get the dependency through an interface.
&lt;/li&gt;
&lt;li&gt;Like asking every pizza store to &lt;em&gt;implement&lt;/em&gt; a “setOven” rule before they bake anything.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Quick Comparison 🍕
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Type&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;When to Use&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Constructor Injection&lt;/td&gt;
&lt;td&gt;When the dependency is REQUIRED immediately&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Setter Injection&lt;/td&gt;
&lt;td&gt;When the dependency is OPTIONAL or can change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interface Injection&lt;/td&gt;
&lt;td&gt;When you want stricter rules enforced across many classes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Why Dependency Injection is Awesome 🌟
&lt;/h2&gt;

&lt;p&gt;It’s awesome due to many reasons, few of them are here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Maintainability:&lt;/strong&gt; Changing a dependency? No problem. Your class doesn’t break.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Testability:&lt;/strong&gt; You can easily plug in fake/mock stuff for testing. (Fake Batmobiles during practice runs!)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flexibility:&lt;/strong&gt; Swapping parts becomes easy. (Today a Jetpack, tomorrow a Unicorn!)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Some Cool Frameworks That Help With DI 🛠️
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Spring&lt;/strong&gt; (Java) — like Alfred on steroids. 🧹&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Microsoft .NET Core&lt;/strong&gt; (C#) — your personal Jarvis.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Google Guice&lt;/strong&gt; (Java) — DI with a spicy sauce.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They handle all the messy wiring so you can just focus on saving Gotham (or building your app).&lt;/p&gt;




&lt;h2&gt;
  
  
  Best Practices &amp;amp; Common Mistakes ✨
&lt;/h2&gt;

&lt;p&gt;Following are some of the &lt;strong&gt;best practices&lt;/strong&gt; of using Dependency Injection:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Only inject what’s really needed. Don’t overload your classes like an overpacked suitcase. 🧳&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep it simple. DI is meant to make life easier, not harder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Combine DI with other design patterns smartly (like Strategy, Factory).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Following are some of the &lt;strong&gt;common mistakes&lt;/strong&gt; to avoid while using Dependency Injection:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Overusing DI:&lt;/strong&gt; Not everything needs to be injected. Sometimes it’s okay to just make an object normally.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Confusing DI with Service Locator Pattern:&lt;/strong&gt; They're different!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Forgetting the SOLID principles:&lt;/strong&gt; DI helps but doesn't &lt;em&gt;automatically&lt;/em&gt; fix bad design.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Real-World Examples 🌍
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Web Application:&lt;/strong&gt; In a web application, your LoginService needs a UserRepository and you can inject UserRepository into LoginService. This is how DI works here.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Microservices:&lt;/strong&gt; Here, your OrderService needs Payment Gateway and you can inject different gateways based on country (Stripe, PayPal, etc.).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Dependency Injection is not rocket science. 🚀&lt;br&gt;&lt;br&gt;
It's just about writing better, smarter, more flexible code. It makes your life (and your teammates’ lives) much easier. It keeps your project from turning into a spaghetti mess. 🍝&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Without DI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;With DI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Framework DI (FastAPI)&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Class creates its own dependencies&lt;/td&gt;
&lt;td&gt;Dependencies are passed from outside&lt;/td&gt;
&lt;td&gt;Framework injects dependencies automatically&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hard to change/test&lt;/td&gt;
&lt;td&gt;Easy to swap/mock/test&lt;/td&gt;
&lt;td&gt;Super smooth and automatic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tightly coupled mess&lt;/td&gt;
&lt;td&gt;Loosely coupled clean code&lt;/td&gt;
&lt;td&gt;Built-in magic ✨&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you ever feel stuck, just think:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;"How would Alfred solve this for Batman?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And trust me, future you will thank present you. 😎&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%2Fmedia.tenor.com%2Fa5ooToScxWoAAAAM%2Fbubu-dancing-dance.gif%2520align%3D" 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%2Fmedia.tenor.com%2Fa5ooToScxWoAAAAM%2Fbubu-dancing-dance.gif%2520align%3D" alt="Thank You GIFs | Tenor" width="220" height="213"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope that you have learned something new via this blog. Feel free to share your feedback and queries in the comments.&lt;/p&gt;

&lt;p&gt;Thank you for reading, and let's connect on &lt;a href="https://www.linkedin.com/in/susmitacodes/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; or &lt;a href="https://x.com/its_SusmitaDey" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. Also, feel free to &lt;a href="https://susmitadey.hashnode.dev/sponsor" rel="noopener noreferrer"&gt;support&lt;/a&gt; &lt;a href="https://susmitadey.hashnode.dev/sponsor" rel="noopener noreferrer"&gt;my work&lt;/a&gt;.😊&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>python</category>
      <category>database</category>
    </item>
    <item>
      <title>TypeScript in a Nutshell - The Ultimate Guide</title>
      <dc:creator>Susmita Dey</dc:creator>
      <pubDate>Sun, 27 Apr 2025 14:54:56 +0000</pubDate>
      <link>https://dev.to/susmitadey/typescript-in-a-nutshell-the-ultimate-guide-5f6i</link>
      <guid>https://dev.to/susmitadey/typescript-in-a-nutshell-the-ultimate-guide-5f6i</guid>
      <description>&lt;p&gt;Hello everyone 👋 I'm back with another blog for you all which will help you to understand and learn all about TypeScript - in a nutshell.&lt;/p&gt;

&lt;p&gt;TypeScript has emerged as a cornerstone of modern web development, offering developers a robust toolset to write safer, more maintainable code. As a statically typed superset of JavaScript, it combines the flexibility of JavaScript with the rigor of static type checking, catching errors at compile time rather than runtime. This article explores TypeScript's core concepts, advanced features, and best practices, providing a comprehensive guide for developers looking to leverage its full potential.&lt;/p&gt;

&lt;p&gt;So, without further ado let's get started.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡What is TypeScript?
&lt;/h2&gt;

&lt;p&gt;TypeScript is also known as the superset of JavaScript. But what does that mean?&lt;/p&gt;

&lt;p&gt;Well, imagine JavaScript is a pizza 🍕—TypeScript is that same pizza, but with extra cheese, better toppings, and a crust that doesn’t fall apart. It takes everything we love about JavaScript and adds some powerful extras, especially &lt;em&gt;type-safety&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The only job of TypeScript is &lt;strong&gt;static checking&lt;/strong&gt;—a fancy way of saying it catches errors while you're typing, before your code even runs. This is something many other languages like Java, Golang, and C# have been doing for years.&lt;/p&gt;

&lt;p&gt;Static checking means your IDE becomes your coding buddy. It watches over your shoulder and gently says, “Hey, you sure you want to assign a string to a number?” It’s like spellcheck for your code!&lt;/p&gt;

&lt;p&gt;You could also call TypeScript a development tool because, while it adds this extra layer during development, it &lt;em&gt;compiles down&lt;/em&gt; to good old JavaScript before hitting the browser. So, the end user sees plain JavaScript—but you get the peace of mind from using TypeScript.&lt;/p&gt;

&lt;p&gt;In a nutshell, TypeScript helps you write cleaner, safer code that scales well, is easier to understand, and makes bugs cry themselves to sleep 😴.&lt;/p&gt;




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

&lt;p&gt;Following are the major differences between JavaScript and TypeScript and why you should use TypeScript over JavaScript.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Feature&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;JavaScript (JS)&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;TypeScript (TS)&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Type System&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Dynamic typing - Types inferred at runtime based on values.&lt;/td&gt;
&lt;td&gt;Static typing - Types defined at development time and checked during compilation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Type Annotations&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Not present in pure JavaScript.&lt;/td&gt;
&lt;td&gt;Allows explicit type annotations for variables, functions, and more.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Error Detection&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Errors may only be caught during runtime, leading to potential runtime errors.&lt;/td&gt;
&lt;td&gt;Errors are caught during development (compilation), reducing runtime errors.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Code Maintainability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lacks strong type checking, which can lead to codebase maintainability challenges.&lt;/td&gt;
&lt;td&gt;Improves code maintainability and readability through static types.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tooling and IDE Support&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Limited tooling and IDE support for code completion, refactoring, and error checking.&lt;/td&gt;
&lt;td&gt;Rich tooling and IDE support, enabling better development experience.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Compilation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Not compiled - Interpreted by the browser or JavaScript engines.&lt;/td&gt;
&lt;td&gt;Must be compiled into JavaScript before execution.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Compatibility&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Compatible with all browsers and JavaScript environments.&lt;/td&gt;
&lt;td&gt;As TypeScript code gets transpiled to JavaScript, it works across platforms.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Community and Adoption&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Vast and established community support.&lt;/td&gt;
&lt;td&gt;Growing popularity and adoption, especially in larger projects.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Integration with JS Libraries&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Easily integrates with existing JavaScript libraries.&lt;/td&gt;
&lt;td&gt;Supports JavaScript libraries but might require type declarations for type checking.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Learning Curve&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Easier to learn due to less complexity.&lt;/td&gt;
&lt;td&gt;Requires learning TypeScript's type system and additional features.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Null and Undefined&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No strict checks for null and undefined values.&lt;/td&gt;
&lt;td&gt;Supports strict null checks to avoid null/undefined-related errors.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Interfaces&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Not directly supported, though similar functionality can be achieved with objects.&lt;/td&gt;
&lt;td&gt;Supports interfaces for defining contracts between objects and classes.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Enumerations&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Supports enumerations using objects or constants.&lt;/td&gt;
&lt;td&gt;Has built-in support for enumerations with enum keyword.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  💭Understanding TypeScript With an Example
&lt;/h3&gt;

&lt;p&gt;TypeScript is like a special friend for JavaScript that helps make our code safer and more organized. Imagine you have a magic marker that can label your toy boxes with different colors. TypeScript does something similar for our code!&lt;/p&gt;

&lt;p&gt;In regular JavaScript, we can put any kind of toy in any box, but sometimes it gets messy, and we might not find the right toy when we need it. TypeScript comes to the rescue by letting us put labels on the boxes, so we know exactly what kind of toy goes inside each one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's take an example:&lt;/strong&gt; Imagine we have a box full of our cars, and another for our stuffed animals. In JavaScript, we can put anything in these boxes, like a car in the stuffed animal box, which can be confusing. But with TypeScript, we can say, &lt;strong&gt;&lt;em&gt;"Hey, this box is only for cars, and that box is only for stuffed animals."&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's how we write it in TypeScript:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Toy boxes with labels in TypeScript&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;carBox&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Toy car&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// This box is only for toy cars&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;stuffedAnimalBox&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Stuffed animal&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// This box is only for stuffed animals&lt;/span&gt;

&lt;span class="c1"&gt;// Now, if we try to put the wrong toy in the wrong box, TypeScript will tell us:&lt;/span&gt;
&lt;span class="nx"&gt;carBox&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Teddy bear&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Oops, TypeScript says, "Hey, you can't put a teddy bear in the car box!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With TypeScript, our code becomes super clear, and it helps us catch mistakes early on, just like a helpful friend! So, TypeScript is like a magical marker that brings order and safety to our toy boxes, making sure everything stays neat.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️Installation and Setup
&lt;/h2&gt;

&lt;p&gt;Alright, let’s get TypeScript running in your project. It’s super easy to set up and only takes a few steps.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ Step 1: Install TypeScript
&lt;/h3&gt;

&lt;p&gt;You can install TypeScript globally so you can use the &lt;code&gt;tsc&lt;/code&gt; (TypeScript compiler) command from anywhere:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; typescript
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can now check if it’s working by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tsc &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you see a version number, congrats—you’ve installed TypeScript! 🎉&lt;/p&gt;




&lt;h3&gt;
  
  
  📁 Step 2: Initialize Your Project
&lt;/h3&gt;

&lt;p&gt;Let’s now create a TypeScript project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;my-typescript-app
&lt;span class="nb"&gt;cd &lt;/span&gt;my-typescript-app
npm init &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now initialize TypeScript in your project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tsc &lt;span class="nt"&gt;--init&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Boom! This creates a file called &lt;code&gt;tsconfig.json&lt;/code&gt;. This little guy is super important. It’s like the control center for how TypeScript behaves in your project.&lt;/p&gt;




&lt;h3&gt;
  
  
  🧪 What's &lt;em&gt;tsconfig.json&lt;/em&gt;?
&lt;/h3&gt;

&lt;p&gt;Think of &lt;code&gt;tsconfig.json&lt;/code&gt; as your TypeScript rulebook. It tells the compiler what rules to follow, which files to include, and how strict it should be with your code.&lt;/p&gt;

&lt;p&gt;Here’s a quick look at what it might contain:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"compilerOptions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"target"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"es6"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;                        &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Which&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;JS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;version&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;compile&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;to&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"module"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"commonjs"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;                   &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Module&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;system&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"strict"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;                         &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Turn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;on&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;all&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;strict&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;checks&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"esModuleInterop"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Helps&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;with&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;importing&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;non-TS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;libraries&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"outDir"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"./dist"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;                     &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Where&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;compiled&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;JS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;files&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"rootDir"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"./src"&lt;/span&gt;&lt;span class="w"&gt;                      &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Where&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;your&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;TS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;files&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;live&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"include"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"src"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;                       &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Which&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;folders/files&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;include&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"exclude"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"node_modules"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;               &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;What&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;ignore&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;🧠 &lt;strong&gt;Pro Tip:&lt;/strong&gt; Start with &lt;code&gt;strict: true&lt;/code&gt; — it’s like a safety helmet for your code. It'll catch more bugs early.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you’re ever confused about what a config option does, &lt;a href="https://www.typescriptlang.org/docs/" rel="noopener noreferrer"&gt;TypeScript’s official docs&lt;/a&gt; explain everything clearly.&lt;/p&gt;




&lt;h3&gt;
  
  
  🧪 Step 3: Write Your First TypeScript File
&lt;/h3&gt;

&lt;p&gt;Make a folder called &lt;code&gt;src&lt;/code&gt;, and inside it, create a file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;src
&lt;span class="nb"&gt;touch &lt;/span&gt;src/index.ts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add some simple TypeScript code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;greet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`Hello, &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;!`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;TypeScript Hero&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  🚀 Step 4: Compile TypeScript to JavaScript
&lt;/h3&gt;

&lt;p&gt;To compile your code, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tsc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will generate a &lt;code&gt;dist&lt;/code&gt; folder (or whatever you set in &lt;code&gt;outDir&lt;/code&gt;) with the JavaScript version of your TypeScript code.&lt;/p&gt;

&lt;p&gt;Now you can run it using Node:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node dist/index.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Boom! You’ve just written and compiled your first TypeScript code! 🎯&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 TypeScript Data Types – The Full Masala
&lt;/h2&gt;

&lt;p&gt;Okay, buckle up! This is where the real fun begins. TypeScript gives us a wide variety of data types—kind of like a buffet. You’ve got your &lt;strong&gt;simple starters&lt;/strong&gt;, some &lt;strong&gt;complex main courses&lt;/strong&gt;, and even a few &lt;strong&gt;special desserts&lt;/strong&gt; that spice things up.&lt;/p&gt;

&lt;p&gt;Let’s break it down like your favorite Netflix binge: &lt;strong&gt;Primitive&lt;/strong&gt;, &lt;strong&gt;Non-Primitive&lt;/strong&gt;, &lt;strong&gt;Special&lt;/strong&gt;, and &lt;strong&gt;Complex&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  🥔 Primitive Types – The Basics
&lt;/h3&gt;

&lt;p&gt;These are your simple, everyday types—small, but mighty.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Strings
&lt;/h4&gt;

&lt;p&gt;Strings are generally used for text. Anything inside quotes is a string.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Pikachu&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Number
&lt;/h4&gt;

&lt;p&gt;For all numbers—integers, decimals, negatives, you name it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;3.14&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Boolean
&lt;/h4&gt;

&lt;p&gt;Boolean is just &lt;em&gt;true&lt;/em&gt; or &lt;em&gt;false&lt;/em&gt;. That’s it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;isLoggedIn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;boolean&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  4. Null and Undefined
&lt;/h4&gt;

&lt;p&gt;They’re a bit like &lt;em&gt;ghost values&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;undefined&lt;/code&gt; = value hasn’t been assigned yet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;null&lt;/code&gt; = intentionally empty.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  5. Big Integers (For huge numbers)
&lt;/h4&gt;

&lt;p&gt;Big Integers are mostly used for financial or scientific stuff.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;huge&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;bigint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;9007199254740991&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  6. Symbol (Unique identifiers)
&lt;/h4&gt;

&lt;p&gt;Symbols are dvanced, but useful when you want something truly unique.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;sym1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;symbol&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Symbol&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;🎯 Tip: Use primitive types when your data is simple and predictable.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  🍛 Non-Primitive Types – The Real Flavor
&lt;/h3&gt;

&lt;p&gt;These are the complex data structures you’ll use almost every day.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Objects
&lt;/h4&gt;

&lt;p&gt;Objects are the backbone of JS/TS—think of it like a container for key-value pairs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;person&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nl"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ash&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Arrays
&lt;/h4&gt;

&lt;p&gt;Arrays are lists of stuff. You can define what type of stuff it holds.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Mango&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Banana&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Grapes&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Tuple
&lt;/h4&gt;

&lt;p&gt;Tuples are fixed-length arrays with specific types at each position.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;coordinates&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;userInfo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Username&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;42&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;🤹‍♀️ Think of tuples like the "thali" of types—every item in a fixed place with a purpose.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  🎩 Special Types – TypeScript Magic
&lt;/h3&gt;

&lt;p&gt;Here’s where TS goes full wizard mode.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Any – The “YOLO” Type
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;any&lt;/code&gt; disables type checking. You should avoid it if possible—it’s like removing your helmet while skydiving.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;any&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;42&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;random&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;now I’m a string!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Unknown – Safer version of &lt;em&gt;any&lt;/em&gt;
&lt;/h4&gt;

&lt;p&gt;Usage of &lt;code&gt;unknown&lt;/code&gt; is still flexible, but you have to type-check before using.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;unknown&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toUpperCase&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Never – Literally never happens
&lt;/h4&gt;

&lt;p&gt;This keyword is used for functions that never return.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;throwError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nx"&gt;never&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  4. Void – No return value
&lt;/h4&gt;

&lt;p&gt;The keyword &lt;code&gt;void&lt;/code&gt; is usually used in functions that don’t return anything.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;logMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  🧱 Complex Types – Structuring Your Empire
&lt;/h3&gt;

&lt;p&gt;These are more like blueprints for your codebase. Super helpful in bigger projects.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Type aliases
&lt;/h4&gt;

&lt;p&gt;It helps us to create our own custom types.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;UserID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;UserID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;101&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Interfaces
&lt;/h4&gt;

&lt;p&gt;Interfaces are like blueprints for your objects and classes. Think of it like giving your code a contract to follow.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;isActive&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;boolean&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;newUser&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;John&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;john@example.com&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;isActive&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;🧾 Pro Tip: Use &lt;code&gt;interface&lt;/code&gt; when you’re defining shapes for objects/classes. Use &lt;code&gt;type&lt;/code&gt; when combining or customizing.&lt;/p&gt;

&lt;p&gt;Using interfaces helps other developers (and you from the past 😅) understand what shape your data is supposed to have. It also allows powerful patterns like dependency injection and polymorphism.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  3. Union types – Either this or that
&lt;/h4&gt;

&lt;p&gt;Union types are super handy when values can be one of many types.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;score&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;score&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;score&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;A+&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  4. Intersection types – Merge multiple types
&lt;/h4&gt;

&lt;p&gt;Intesection types combine two or more types into one.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Admin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;AdminPerson&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Admin&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;admin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;AdminPerson&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;moderator&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Alex&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Enums
&lt;/h3&gt;

&lt;p&gt;Enums let you define a set of named constants. They're super useful when you have a fixed set of values.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;enum&lt;/span&gt; &lt;span class="nx"&gt;Direction&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;Up&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;Down&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;Left&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;Right&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now instead of magic numbers like &lt;code&gt;0&lt;/code&gt;, &lt;code&gt;1&lt;/code&gt;, or &lt;code&gt;2&lt;/code&gt;, your code becomes readable: &lt;code&gt;Direction.Up&lt;/code&gt;. Clean and clear like a freshly wiped whiteboard.&lt;/p&gt;




&lt;h3&gt;
  
  
  📦 Bonus: Literal Types
&lt;/h3&gt;

&lt;p&gt;Sometimes you want to lock values to a few specific options.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Dessert&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cake&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cookie&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ice-cream&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  🧠 Summary Table (Quick Glance)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Type Category&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Examples&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Real-life Analogy&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Primitive&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;string&lt;/code&gt;, &lt;code&gt;number&lt;/code&gt;, &lt;code&gt;boolean&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Basic spices in a masala box&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Non-Primitive&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;object&lt;/code&gt;, &lt;code&gt;array&lt;/code&gt;, &lt;code&gt;tuple&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Full meal platter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Special&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;any&lt;/code&gt;, &lt;code&gt;unknown&lt;/code&gt;, &lt;code&gt;never&lt;/code&gt;, &lt;code&gt;void&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Secret sauce that needs careful use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Complex/Custom&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;interface&lt;/code&gt;, unions&lt;/td&gt;
&lt;td&gt;Recipe books or restaurant blueprints&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  🧪 Edge Cases
&lt;/h3&gt;

&lt;p&gt;TypeScript tries its best, but weird things can happen. Edge cases often come up with unions (&lt;code&gt;string | number&lt;/code&gt;), optional fields, or deep nested structures.&lt;/p&gt;

&lt;p&gt;Good news: TypeScript has your back with tools like &lt;code&gt;unknown&lt;/code&gt;, &lt;code&gt;never&lt;/code&gt;, and advanced type guards to keep things in check.&lt;/p&gt;




&lt;h2&gt;
  
  
  💂‍♀️Type Guards and Type Checking
&lt;/h2&gt;

&lt;p&gt;Type guards are your way of telling TypeScript, “Hey, I know what I’m doing—trust me.”&lt;/p&gt;

&lt;p&gt;They help you write safer code by checking the type of a variable at runtime.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;isStringOrNum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;It's a string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;It's a number&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use these whenever you're dealing with flexible input like API data or dynamic values. Type guards help you stay in control when things get fuzzy.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤷‍♀️Ignore Type Checking (But Only When Necessary 😅)
&lt;/h2&gt;

&lt;p&gt;Sometimes TypeScript can get a little… overprotective. If you’re absolutely sure about a value but TypeScript keeps yelling, you can override it using type assertions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;username&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;HTMLInputElement&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or silence the checker with a comment (but be careful!):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// @ts-ignore&lt;/span&gt;
&lt;span class="nf"&gt;someSketchyCodeThatYouPromiseIsSafe&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only use this as a last resort. Think of it like pulling the fire alarm—only do it when you &lt;em&gt;really&lt;/em&gt; need to.&lt;/p&gt;




&lt;h3&gt;
  
  
  🛠 Tooling and Ecosystem
&lt;/h3&gt;

&lt;p&gt;TypeScript isn't just a language—it's got an &lt;strong&gt;amazing ecosystem&lt;/strong&gt; too. Some cool tooling that works beautifully with it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;TSLint / ESLint&lt;/strong&gt;: Helps keep your code clean and consistent.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prettier&lt;/strong&gt;: Auto-formats your code for readability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ts-node&lt;/strong&gt;: Run TypeScript files directly without compiling manually.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;VS Code&lt;/strong&gt;: Arguably the best IDE for TypeScript (auto-completion, linting, refactoring—all just work).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡&lt;br&gt;
Also worth noting: TypeScript makes &lt;strong&gt;collaboration &lt;/strong&gt;easier on teams. When someone new joins your project, they can understand your code faster because types act like documentation.&lt;/p&gt;




&lt;h2&gt;
  
  
  📽Project Ideas and Implementation
&lt;/h2&gt;

&lt;p&gt;The best way to learn TypeScript is to build something with it! Here are a few fun projects to try out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Todo App&lt;/strong&gt;: Add TypeScript to a basic React or vanilla JS todo app. Start with &lt;code&gt;type Todo = { id: number; text: string; completed: boolean }&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Weather Dashboard&lt;/strong&gt;: Fetch data from an API and display it with proper types.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Portfolio Site&lt;/strong&gt;: Convert your personal site into TypeScript.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blog CMS&lt;/strong&gt;: Build a blog editor where types define your post, author, and tags.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;E-Commerce Cart&lt;/strong&gt;: Model products, cart items, and discounts with interfaces and enums.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of these ideas will help you experience TypeScript's features like type aliases, unions, interfaces, and more in action.&lt;/p&gt;




&lt;h3&gt;
  
  
  💻 Real-World Use Cases of TypeScript
&lt;/h3&gt;

&lt;p&gt;You might be wondering: “Okay, this sounds cool, but where is TypeScript actually used?”&lt;/p&gt;

&lt;p&gt;Turns out… &lt;strong&gt;everywhere&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Frontend frameworks&lt;/strong&gt; like React, Angular (which uses TypeScript by default), Vue, Svelte—they all support or prefer TypeScript now.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Backend development&lt;/strong&gt; with Node.js is more manageable with TypeScript, especially when dealing with APIs and data models.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;APIs and SDKs&lt;/strong&gt; are safer and clearer when typed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Design systems and component libraries&lt;/strong&gt; love TypeScript because interfaces and types help keep UI components predictable.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basically, if your app is going to grow—or be maintained by more than one person—TypeScript makes your life easier.&lt;/p&gt;




&lt;h2&gt;
  
  
  🥋Best Practices of Writing TypeScript
&lt;/h2&gt;

&lt;p&gt;Following are some of the best practices you must following while dealing with TypeScript:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enable Strict Mode&lt;/strong&gt;: Activate &lt;code&gt;strict: true&lt;/code&gt; in &lt;code&gt;tsconfig.json&lt;/code&gt; to enforce rigorous type checks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Avoid&lt;/strong&gt; &lt;code&gt;any&lt;/code&gt; &lt;strong&gt;like a mosquito:&lt;/strong&gt; Prefer &lt;code&gt;unknown&lt;/code&gt; or explicit types to maintain type safety.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use Utility Types&lt;/strong&gt;: Built-in types like &lt;code&gt;Partial&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;Pick&amp;lt;T, K&amp;gt;&lt;/code&gt;, and &lt;code&gt;Omit&amp;lt;T, K&amp;gt;&lt;/code&gt; are your Swiss Army knives for working with objects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistent Naming&lt;/strong&gt;: Stick to conventions like with &lt;code&gt;I&lt;/code&gt; (e.g., &lt;code&gt;IUser&lt;/code&gt;) or use &lt;code&gt;Type&lt;/code&gt; suffixes (e.g., &lt;code&gt;UserType&lt;/code&gt;) so others instantly get what’s what.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Modularize Types&lt;/strong&gt;: Keep your types in a separate &lt;code&gt;types.ts&lt;/code&gt; or &lt;code&gt;interfaces.ts&lt;/code&gt; file for clarity and reuse.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;TypeScript isn’t just a tool—it’s your development buddy. It won’t make your chai or coffee ☕, but it will definitely save you from late-night bug hunts and “why is this &lt;code&gt;undefined&lt;/code&gt; again?!” moments.&lt;/p&gt;

&lt;p&gt;Sure, it takes a bit of time to get used to the syntax and type system, but once you do, there’s no looking back. Your code becomes cleaner, your intent becomes clearer, and your bugs… well, they show up &lt;em&gt;before&lt;/em&gt; the user sees them.&lt;/p&gt;

&lt;p&gt;So start small. Maybe type-check your variables. Add an interface or two. Play around. Make mistakes—TypeScript will kindly point them out before they cause chaos.&lt;/p&gt;

&lt;p&gt;Whether you're building a to-do app or the next unicorn startup 🦄, TypeScript is that reliable teammate who never gets tired of checking your work.&lt;/p&gt;

&lt;p&gt;Now go ahead and give your JavaScript the TypeScript treatment—and write code like a boss 💪&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%2Fmedia.tenor.com%2Fa5ooToScxWoAAAAM%2Fbubu-dancing-dance.gif%2520align%3D" 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%2Fmedia.tenor.com%2Fa5ooToScxWoAAAAM%2Fbubu-dancing-dance.gif%2520align%3D" alt="Thank You GIFs | Tenor" width="220" height="213"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope that you have learned something new via this blog. Feel free to share your feedback and queries in the comments.&lt;/p&gt;

&lt;p&gt;Thank you for reading, and let's connect on &lt;a href="https://www.linkedin.com/in/susmitacodes/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; or &lt;a href="https://x.com/its_SusmitaDey" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. Also, feel free to &lt;a href="https://susmitadey.hashnode.dev/sponsor" rel="noopener noreferrer"&gt;support&lt;/a&gt; &lt;a href="https://susmitadey.hashnode.dev/sponsor" rel="noopener noreferrer"&gt;my work&lt;/a&gt;.😊&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>typescript</category>
      <category>frontend</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Navigating the Developer Relations Landscape: Lessons from DevRel University</title>
      <dc:creator>Susmita Dey</dc:creator>
      <pubDate>Sun, 12 Nov 2023 11:29:17 +0000</pubDate>
      <link>https://dev.to/susmitadey/navigating-the-developer-relations-landscape-lessons-from-devrel-university-5ep1</link>
      <guid>https://dev.to/susmitadey/navigating-the-developer-relations-landscape-lessons-from-devrel-university-5ep1</guid>
      <description>&lt;p&gt;In the ever-evolving tech industry, a profound understanding of developers isn't just advantageous; it's imperative, especially when your business model hinges on developers embracing your products and services. As a Developer Relations Engineer, I embarked on a journey to enhance my skills and insights through the DevRel University course, seeking to glean wisdom from experienced professionals in the field.&lt;/p&gt;




&lt;h2&gt;
  
  
  Class 1: Developer-First vs. Developer-Plus Companies
&lt;/h2&gt;

&lt;p&gt;In the first class, the spotlight was on the fundamental philosophies that shape the landscape of Developer Relations. &lt;strong&gt;'Developer-First' companies&lt;/strong&gt; are those that tailor their offerings exclusively to developers, while &lt;strong&gt;'Developer-Plus' companies&lt;/strong&gt;, while not exclusive, still prioritize developers as a crucial customer base. This distinction profoundly influences the strategies, tone, and direction of DevRel efforts, shaping how we connect with and support the developer community.&lt;/p&gt;

&lt;h2&gt;
  
  
  Class 2: Landing Your First DevRel Role
&lt;/h2&gt;

&lt;p&gt;Securing a position in DevRel requires a unique blend of technical proficiency, community engagement skills, and soft skills. The second class focused on strategies for breaking into the field, emphasizing the importance of networking, crafting compelling narratives around personal projects, and showcasing an authentic passion for both technology and people. It's not just about the code; it's about connecting with individuals and communities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Class 3: The Impact of DevRel on Product
&lt;/h2&gt;

&lt;p&gt;Class three delved into the pivotal role DevRel professionals play as a bridge between the developer community and a company's product team. By gathering valuable feedback and insights from developers, DevRel ensures that the product evolves in ways that genuinely serve its users. It's not just about building products; it's about building products that resonate with and empower the developer community.&lt;/p&gt;

&lt;h2&gt;
  
  
  Class 4: The Importance of Documentation
&lt;/h2&gt;

&lt;p&gt;In the fourth class, the spotlight shifted to the crucial role of documentation in the developer journey. Effective documentation empowers users to fully harness a product's capabilities independently, reducing barriers to entry and fostering self-service learning. It's not just about the codebase; it's about providing the necessary tools and resources for developers to thrive.&lt;/p&gt;




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

&lt;p&gt;My journey through the DevRel University course has been enriching, unveiling insights that will undoubtedly shape my path as a Developer Relations Engineer. From understanding the core philosophies to navigating the intricate balance of technical proficiency and community engagement, this course has been a beacon of knowledge in the ever-evolving realm of developer relations.&lt;/p&gt;

</description>
      <category>devrel</category>
      <category>devreluni</category>
      <category>documentation</category>
      <category>techtalks</category>
    </item>
    <item>
      <title>HTTP and HTTPS</title>
      <dc:creator>Susmita Dey</dc:creator>
      <pubDate>Mon, 23 Jan 2023 11:21:48 +0000</pubDate>
      <link>https://dev.to/susmitadey/http-and-https-40gg</link>
      <guid>https://dev.to/susmitadey/http-and-https-40gg</guid>
      <description>&lt;p&gt;Hello folks, I'm back with another blog on HTTP and HTTPS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction to HTTP and HTTPS
&lt;/h2&gt;

&lt;p&gt;HTTP and HTTPS are the foundation of the modern web. They are protocols that allow communication between web clients and servers, enabling the transfer of data such as text, images, and videos. In this blog post, we will discuss the differences between HTTP and HTTPS, their history, and their importance to the web today.&lt;/p&gt;




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

&lt;p&gt;HTTP, or Hypertext Transfer Protocol, is the foundation of data communication for the World Wide Web. It is a set of rules for transferring files, such as text, images, and videos, between web clients and servers. HTTP operates on the application layer of the Internet Protocol Suite, which is the set of protocols used for communication over the internet.&lt;/p&gt;

&lt;p&gt;One of the key features of HTTP is its simplicity. It is a stateless protocol, which means that it does not store any information about the client or its previous requests. This makes it easy to implement and allows for a high degree of scalability. However, this statelessness also means that it does not provide any security features, such as encryption or authentication.&lt;/p&gt;




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

&lt;p&gt;HTTPS, or Hypertext Transfer Protocol Secure, is an extension of HTTP that adds security features to the protocol. It is based on Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols, which provide encryption and authentication. This means that data transferred over HTTPS is encrypted, making it much more difficult for attackers to intercept and read. Additionally, HTTPS provides authentication, which ensures that the client is communicating with the intended server and not an attacker's server.&lt;/p&gt;




&lt;h2&gt;
  
  
  Differences between HTTP and HTTPS
&lt;/h2&gt;

&lt;p&gt;The main difference between HTTP and HTTPS is the use of an SSL/TLS certificate. An SSL/TLS certificate is a digital certificate that provides proof of the authenticity of the website and its owner. When a client connects to an HTTPS website, the server sends its SSL/TLS certificate to the client. The client then verifies the certificate and, if it is valid, establishes an encrypted connection with the server.&lt;/p&gt;

&lt;p&gt;The first version of HTTPS was developed by Netscape in the mid-1990s. At the time, the web was primarily used for static content, such as text and images, and the need for security was not yet fully understood. As the web evolved and more sensitive information, such as financial and personal data, began to be transmitted over the internet, the need for security became more apparent.&lt;/p&gt;

&lt;p&gt;Today, HTTPS is an essential part of the web. It is used to protect sensitive information, such as login credentials and financial data, from attackers. It is also used to protect against man-in-the-middle attacks, in which an attacker intercepts and alters the communication between the client and server. In addition to its security benefits, HTTPS is also important for SEO and website ranking. Google has announced that HTTPS is a ranking signal in its search algorithm, meaning that HTTPS websites are more likely to be shown at the top of search results.&lt;/p&gt;




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

&lt;p&gt;In conclusion, HTTP and HTTPS are the foundation of the modern web. They are protocols that allow communication between web clients and servers, enabling the transfer of data such as text, images, and videos. HTTP is a simple, stateless protocol that is easy to implement, but lacks security features. HTTPS is an extension of HTTP that adds encryption and authentication, making it much more secure. Today, HTTPS is an essential part of the web, providing security and privacy for users, and is a ranking signal in Google search algorithm. As the internet and web continue to evolve, the importance of HTTPS will only continue to grow.&lt;/p&gt;




&lt;p&gt;Hope you found this useful. That's all for today. See you in some other blog.&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>dotnet</category>
      <category>help</category>
      <category>community</category>
    </item>
    <item>
      <title>Wanna get started with Tech and deep dive into it?</title>
      <dc:creator>Susmita Dey</dc:creator>
      <pubDate>Tue, 08 Nov 2022 04:19:00 +0000</pubDate>
      <link>https://dev.to/susmitadey/wanna-get-started-with-tech-and-deep-dive-into-it-4282</link>
      <guid>https://dev.to/susmitadey/wanna-get-started-with-tech-and-deep-dive-into-it-4282</guid>
      <description>&lt;p&gt;If yes, then check out my YouTube channel and subscribe for more amazing tech contents. &lt;/p&gt;

&lt;p&gt;Link:- &lt;a href="https://www.youtube.com/@TechWithSusmita" rel="noopener noreferrer"&gt;https://www.youtube.com/@TechWithSusmita&lt;/a&gt; &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>career</category>
    </item>
    <item>
      <title>Getting Started With ReactJS</title>
      <dc:creator>Susmita Dey</dc:creator>
      <pubDate>Mon, 20 Jun 2022 07:19:40 +0000</pubDate>
      <link>https://dev.to/susmitadey/getting-started-with-reactjs-1dc5</link>
      <guid>https://dev.to/susmitadey/getting-started-with-reactjs-1dc5</guid>
      <description>&lt;h2&gt;
  
  
  Introduction to React
&lt;/h2&gt;

&lt;p&gt;React is a JavaScript-based library used for making static &lt;strong&gt;Single Page Web Applications&lt;/strong&gt;. This was developed by Facebook. This helps in breaking down complex UI into simpler components. ReactJS has a high market in the field of Web development and it's increasing every day.&lt;/p&gt;

&lt;p&gt;ReactJS is often compared with Angular, Vue, and other JavaScript libraries and frameworks. People often call it a framework of JavaScript when compared with Angular as Angular is a JavaScript framework, but it's eventually a library and not a framework.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you don't know the difference between a framework and a library, then check out this &lt;a href="https://susmitadey.hashnode.dev/difference-between-a-framework-and-a-library" rel="noopener noreferrer"&gt;article&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Tools needed before installing ReactJS 🛠
&lt;/h2&gt;

&lt;p&gt;You need to have the following things installed before you start creating a React Application.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://nodejs.org/en/" rel="noopener noreferrer"&gt;NodeJS&lt;/a&gt; - Download the latest version of NodeJS&lt;/li&gt;
&lt;li&gt;A code editor like &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;A Chrome extension - &lt;a href="https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en" rel="noopener noreferrer"&gt;React Dev Tools&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I recommend you to be in Chrome while you're working with React for better experiences.&lt;/p&gt;




&lt;h2&gt;
  
  
  Do you need to learn JavaScript before React? 🤔
&lt;/h2&gt;

&lt;p&gt;If you're new to web development and haven't learned JavaScript but you're thinking to come out of the hell from working with HTML CSS on multiple pages for a single website by switching to ReactJS, then wait a while. If you want to do so, then you can do it but you'll face many problems if you don't know anything about JavaScript and finally give up with React being depressed.&lt;/p&gt;

&lt;p&gt;So, I'll always recommend you to learn some basics of JavaScript and then jump over to ReactJS. Also, you should know that React is made on top of JavaScript.&lt;/p&gt;




&lt;h2&gt;
  
  
  Creating Our First React App 👩‍💻
&lt;/h2&gt;

&lt;p&gt;Let's create a React app using the following steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open up a folder in your terminal.&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;npx create-react-app my-app&lt;/code&gt; in your terminal and hit Enter. This will take some time to install React and some other packages and dependencies to make your app ready.&lt;/li&gt;
&lt;/ul&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%2Flghremm0c5eko3cfyofx.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%2Flghremm0c5eko3cfyofx.png" alt="image.png" width="680" height="126"&gt;&lt;/a&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%2Fpdcmc47qkeakq2xkmobw.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%2Fpdcmc47qkeakq2xkmobw.png" alt="image.png" width="762" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go inside the folder by typing &lt;code&gt;cd my-app&lt;/code&gt; in your terminal.&lt;/li&gt;
&lt;li&gt;Now use &lt;code&gt;npm start&lt;/code&gt; in your terminal to see your app running locally at &lt;strong&gt;&lt;a href="http://localhost:3000/" rel="noopener noreferrer"&gt;http://localhost:3000/&lt;/a&gt;&lt;/strong&gt;
You'll see the following image when your app runs locally on your computer.&lt;/li&gt;
&lt;/ul&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%2Frprxnjaz7ln4ks07w0dz.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%2Frprxnjaz7ln4ks07w0dz.png" alt="image.png" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Understanding the file structure 📂
&lt;/h2&gt;

&lt;p&gt;You might get scared of watching the huge codebase i.e., the files and folders after you have created your React app. Some people might run like this shutting down their computers.&lt;/p&gt;


&lt;p&gt;&lt;a href="https://giphy.com/gifs/scared-boy-meets-world-12RfP2odT4hEOI" rel="noopener noreferrer"&gt;via GIPHY&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But no need to worry because I'm here to help you. Open up the folder called &lt;strong&gt;my-app&lt;/strong&gt; in Visual Studio Code. You'll see the folders somewhat like this.&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%2F4zs6x5q3hqewdhbiyx2z.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%2F4zs6x5q3hqewdhbiyx2z.png" alt="image.png" width="483" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, here forget about the &lt;em&gt;node modules&lt;/em&gt; folder as it only contains the packages and dependencies needed to make our ReactJS application. It got installed when we run our first command &lt;code&gt;npx create-react-app my-app&lt;/code&gt;. So, we'll not be dealing with that folder, just keep it as it is.&lt;/p&gt;

&lt;p&gt;Then comes the &lt;em&gt;public&lt;/em&gt; folder. It contains some images and other files along with the &lt;code&gt;index.html&lt;/code&gt;. Now here we only have to focus on our &lt;code&gt;index.html&lt;/code&gt; file and others are not needed currently. The &lt;code&gt;index.html&lt;/code&gt; file will contain the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"root"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here the root is used in &lt;code&gt;index.js&lt;/code&gt; file which is inside the &lt;em&gt;src&lt;/em&gt; folder to render the pages locally on localhost.&lt;/p&gt;

&lt;p&gt;⚠One important thing is that do not keep any secrets or credentials inside this folder as it will be leaked since it's a public folder.&lt;/p&gt;

&lt;p&gt;Next comes the &lt;code&gt;src&lt;/code&gt; folder. It contains various javascript and CSS files. Heading over to the &lt;code&gt;index.js&lt;/code&gt; file you can see the way they're creating ReactDOM and elements and rendering web pages. Then there are 2 stylesheets - &lt;code&gt;index.css&lt;/code&gt; and &lt;code&gt;App.css&lt;/code&gt; which are used for styling the pages. The main styling lies under &lt;code&gt;App.css&lt;/code&gt; for which you can visualize the beautiful web page running locally on your localhost. Now, let's see the &lt;code&gt;App.js&lt;/code&gt; file where we'll be working and writing our code to make our own websites. You'll find some HTML and javascript together in this file. You might get confused by this, but don't be because this is known as &lt;strong&gt;JSX&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Understanding JSX 🔎
&lt;/h2&gt;

&lt;p&gt;JSX stands for &lt;strong&gt;Javascript XML&lt;/strong&gt;. It is the syntax extension of Javascript which allows HTML to co-exist with Javascript in React. This feature ensures that all the code remains unified to supply the developer with the best possible experience. It also confirms that all files aren’t spread at various locations.&lt;/p&gt;

&lt;p&gt;JSX in simple terms is like HTML wearing the crown of JavaScript. Let's see the &lt;code&gt;App.js&lt;/code&gt; file inside the &lt;strong&gt;src&lt;/strong&gt; folder. It looks like this:&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%2Fw6862d4kquul8z42q0y0.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%2Fw6862d4kquul8z42q0y0.png" alt="image.png" width="800" height="644"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The highlighted part is known as JSX.&lt;/p&gt;

&lt;h3&gt;
  
  
  Points to remember while using JSX:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You have to write "className" instead of "class" as class is the reserved keyword in Javascript&lt;/li&gt;
&lt;li&gt;In place of "for" you have to use "htmlFor" &lt;/li&gt;
&lt;li&gt;JSX fragment feature:
With return() we can return only one tag or Element. If you want to return two elements using JSX, then you have to use the JSX Fragment Feature or cover the whole content inside one element. &lt;strong&gt;&lt;em&gt;For example&lt;/em&gt;&lt;/strong&gt;, if we want to return the content of an H1 tag and Div tag together we will be using a JSX fragment ( &amp;lt;&amp;gt;.....&amp;lt;/&amp;gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Code:&lt;/strong&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%2Fqfnp18dj6rye5lvxg64h.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%2Fqfnp18dj6rye5lvxg64h.png" alt="image.png" width="607" height="621"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&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%2Fiiijegr3pooiqfyh1pzt.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%2Fiiijegr3pooiqfyh1pzt.png" alt="image.png" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can learn more about JSX from &lt;a href="https://reactjs.org/docs/introducing-jsx.html" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;




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

&lt;p&gt;React is a very popular framework in today's world and also very demanding in getting jobs. &lt;/p&gt;

&lt;h3&gt;
  
  
  Some resources to learn ReactJS
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://reactjs.org/docs/getting-started.html" rel="noopener noreferrer"&gt;&lt;strong&gt;React documentation&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PLu0W_9lII9agx66oZnT6IyhcMIbUMNMdt" rel="noopener noreferrer"&gt;CodeWithHarry ReactJS playlist&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PLIJrr73KDmRyrDnDFy-hHvQ24rRjz6e_J" rel="noopener noreferrer"&gt;Reactjs - Learn React, Practically&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://reactplay.io/" rel="noopener noreferrer"&gt;React-Play&lt;/a&gt; - It's an open source project you can contribute to made by &lt;a class="mentioned-user" href="https://dev.to/atapas"&gt;@atapas&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=bMknfKXIFA8" rel="noopener noreferrer"&gt;Complete React Course by freecodecamp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, this was all about getting started with ReactJS. I hope you have understood. Feel free to give your feedback or ask questions in the comments section.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hope this helps you. Thank you for reading, and let's connect!
&lt;/h2&gt;

&lt;p&gt;Thank you for reading my blog. Feel free to subscribe to my &lt;a href="https://www.youtube.com/channel/UCsuzc8lqAbgUYo4yzpjtfSw" rel="noopener noreferrer"&gt;YouTube Channel&lt;/a&gt; and connect on &lt;a href="https://www.linkedin.com/in/susmita-dey-15a15a210/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; or &lt;a href="https://twitter.com/its_SusmitaDey" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;br&gt;
Also, feel free to &lt;a href="https://www.buymeacoffee.com/susmitadey" rel="noopener noreferrer"&gt;support&lt;/a&gt; my work.😊&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>My 3-months Open Source Journey at GSSoC'22</title>
      <dc:creator>Susmita Dey</dc:creator>
      <pubDate>Wed, 01 Jun 2022 07:34:47 +0000</pubDate>
      <link>https://dev.to/susmitadey/my-3-months-open-source-journey-at-gssoc22-179</link>
      <guid>https://dev.to/susmitadey/my-3-months-open-source-journey-at-gssoc22-179</guid>
      <description>&lt;p&gt;Hello folks!! In this blog, I want to share my journey and experiences of participating for the first in an open-source program like GirlScript Summer of Code as a contributor. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is GirlScript Summer of Code(GSSoC)?
&lt;/h2&gt;

&lt;p&gt;GirlScript Summer of Code is a 3-months long open-source program encouraging folks around the world to participate and get started with open source. It provides a healthy and friendly environment to the participants where everyone can learn new things and upgrade themselves in the field of tech. It is also a beginner-friendly open source program.&lt;/p&gt;

&lt;p&gt;One often gets confused between GirlScript Summer of Code(GSSoC) and Google Summer of Code(GSoC). But both are different and you can also use GSSoC to gain some experience before applying for GSoC in order to get selected for Google Summer of Code.&lt;/p&gt;

&lt;p&gt;I believe in learning in public and sharing knowledge in public, often called &lt;strong&gt;community work&lt;/strong&gt; is the most important thing that one should do in order to stand out from the crowd. This helps in building networking skills and also you get to know many amazing folks out there doing great in the tech field.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GSSoC&lt;/strong&gt; helps a lot in this field. We get to meet a lot of folks (experienced or not-experienced doesn't matter much) around the world to connect, learn and grow together.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Check out the official website of &lt;a href="https://gssoc.girlscript.tech/" rel="noopener noreferrer"&gt;GirlScript Summer of Code&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  My Approach towards GSSoC
&lt;/h2&gt;

&lt;p&gt;I got to know about GirlScript Summer of Code via Twitter. Someday had posted about it on Twitter and then I head over to it to know about it. It was only one or two months that I got started with open source and I wasn't sure how I'll perform throughout the program.&lt;/p&gt;

&lt;p&gt;I saw that they're accepting applications in the month of February and also there's a deadline for it. I got to know that they also have a program in the Winter Season. I thought to try it once rather than wait for a year for the winter program. So, I registered for it and waited for the mail to come. After a few days, I got selected for the program as a contributor. &lt;/p&gt;

&lt;p&gt;My badge is below. &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%2Fpzsfqy623rgruebhssfz.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%2Fpzsfqy623rgruebhssfz.png" alt="badge.png" width="500" height="500"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Schedule of GSSoC'22
&lt;/h2&gt;

&lt;p&gt;Below is the timeline for GSSoC 2022.&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%2Fv9rydwteltl57j9vz26p.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%2Fv9rydwteltl57j9vz26p.png" alt="image.png" width="629" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As per the schedule, the coding period started on the 1st of March and ended yesterday(31st of May). This happens every year and in the meanwhile, we have some mini amazing sessions while the coding period and get to learn a lot of things.&lt;/p&gt;

&lt;p&gt;Before the coding period starts, the mentors, Program Managers, and Project Admins provide us with some useful resources of &lt;strong&gt;Git&lt;/strong&gt; and &lt;strong&gt;GitHub&lt;/strong&gt; to get explore the platform and learn Git in order to get started with Open Source. They also take some amazing sessions for the same during the start of the coding period. We also get some useful resources for learning web or app development and Web3 in this 3-month long coding journey. You can check them out on their &lt;em&gt;&lt;a href="https://www.youtube.com/channel/UCBOlJtDcWNh0aUkS2CfI8Aw" rel="noopener noreferrer"&gt;YouTube Channel&lt;/a&gt;&lt;/em&gt;. The sessions are uploaded there.&lt;/p&gt;




&lt;h2&gt;
  
  
  Statistics of GSSoC'22
&lt;/h2&gt;

&lt;p&gt;This year there were 1000+ Contributors, 100+ Projects, and 100+ Mentors collaborating together in this program. GSSoC'22 was a success as it had 50-50 gender equality in the ratio of participants and a number of amazing folks participated all over the world.&lt;/p&gt;




&lt;h2&gt;
  
  
  Mentors and Projects
&lt;/h2&gt;

&lt;p&gt;The mentors and project admins were super-friendly. Whenever someone came up with a problem either in the discord server or on the GitHub under some issues or PRs, they always stood first to sort it out irrespective of gender or class, or any other things. &lt;/p&gt;

&lt;p&gt;We're given a list of projects on the &lt;a href="https://gssoc.girlscript.tech/project" rel="noopener noreferrer"&gt;website&lt;/a&gt; and also on the discord server to choose some of them to start contributing to it. I chose a couple of projects on discord after exploring them on the website and started contributing to it on 1st March.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Contributions to GSSoC Projects
&lt;/h2&gt;

&lt;p&gt;Here are my contributions below.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/SauravMukherjee44/Aec-Library-Website/pull/679" rel="noopener noreferrer"&gt;SauravMukherjee44/Aec-Library-Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/SauravMukherjee44/Aec-Library-Website/pull/658" rel="noopener noreferrer"&gt;SauravMukherjee44/Aec-Library-Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CatsInTech/Rezume/pull/70" rel="noopener noreferrer"&gt;CatsInTech/Rezume&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Ayush7614/Bundli-Frontend/pull/541" rel="noopener noreferrer"&gt;Ayush7614/Bundli-Frontend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Ayush7614/Bundli-Frontend/pull/528" rel="noopener noreferrer"&gt;Ayush7614/Bundli-Frontend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/arpit456jain/CodingEasy/pull/136" rel="noopener noreferrer"&gt;arpit456jain/CodingEasy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/arpit456jain/Cool-Front-End-Templates/pull/229" rel="noopener noreferrer"&gt;arpit456jain/Cool-Front-End-Templates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/arpit456jain/Amazing-Js-Projects/pull/233" rel="noopener noreferrer"&gt;arpit456jain/Amazing-Js-Projects&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Daksh777/TakeABreak/pull/153" rel="noopener noreferrer"&gt;Daksh777/TakeABreak&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Daksh777/TakeABreak/pull/20" rel="noopener noreferrer"&gt;Daksh777/TakeABreak&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/surajm-333/Ace-The-FrontEnd/pull/613" rel="noopener noreferrer"&gt;surajm-333/Ace-The-FrontEnd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/surajm-333/Ace-The-FrontEnd/pull/460" rel="noopener noreferrer"&gt;surajm-333/Ace-The-FrontEnd&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These are my current PRs and my rank on the leaderboard as of now is below.&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%2Fn51124l28a2xzknrer4u.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%2Fn51124l28a2xzknrer4u.png" alt="image.png" width="626" height="654"&gt;&lt;/a&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%2Frxx4wh5sj4yejsismn6z.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%2Frxx4wh5sj4yejsismn6z.png" alt="image.png" width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can check out the leaderboard of GSSoC by going &lt;a href="https://gssoc.girlscript.tech/leaderboard" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I gained being a contributor at GSSoC?
&lt;/h2&gt;

&lt;p&gt;I got to learn a lot of things by participating in this program. The most important thing that changed my life is by giving me the urge to learn full-stack web development(which I'm still learning now) as I needed some part of it in order to contribute to some web dev projects.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improved networking and communication skills&lt;/li&gt;
&lt;li&gt;Got to know many awesome folks like &lt;strong&gt;Praveen Kumar&lt;/strong&gt;, &lt;strong&gt;Daksh&lt;/strong&gt;, and many other folks.&lt;/li&gt;
&lt;li&gt;Started learning complete web development and a bit of UI/UX&lt;/li&gt;
&lt;li&gt;Improved documentation skills&lt;/li&gt;
&lt;li&gt;Started writing articles on Hashnode and other platforms&lt;/li&gt;
&lt;li&gt;Contributed to various open-source projects from documentation to coding.&lt;/li&gt;
&lt;li&gt;Acquired a habit of helping, learning, and growing together in public,  and a lot more... &lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  My Plans Regarding GSSoC in the future
&lt;/h2&gt;

&lt;p&gt;As I participated this year as a contributor, I'm planning to participate as a mentor or as a project admin coming up with my projects onboard to help folks learn to connect, network, collaborate and contribute to some awesome Open Source projects on GitHub.&lt;/p&gt;




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

&lt;p&gt;If you want my opinion to participate in this program or not, then I would straightaway tell you &lt;strong&gt;"Yes"&lt;/strong&gt;.&lt;br&gt;
This open-source program will help you kickstart your open source journey and develop your journey into tech making you upgraded with some valuable resources. This will also give you some experiences of working with real-life projects from your home. &lt;/p&gt;

&lt;p&gt;One more thing is that &lt;strong&gt;anyone can participate&lt;/strong&gt; in this program irrespective of country, region, state, or education whether you're in school or college it doesn't matter as &lt;strong&gt;Open Source is for all&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For me, it was a great experience in this 3-month long journey collaborating and connecting with people from various places.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hope this helps you. Thank you for reading, and let's connect!
&lt;/h2&gt;

&lt;p&gt;Thank you for reading my blog. Feel free to subscribe to my &lt;a href="https://www.youtube.com/channel/UCsuzc8lqAbgUYo4yzpjtfSw" rel="noopener noreferrer"&gt;YouTube Channel&lt;/a&gt; and connect on &lt;a href="https://www.linkedin.com/in/susmita-dey-15a15a210/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; or &lt;a href="https://twitter.com/its_SusmitaDey" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;br&gt;
Also, feel free to &lt;a href="https://www.buymeacoffee.com/susmitadey" rel="noopener noreferrer"&gt;support&lt;/a&gt; my work.😊&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>beginners</category>
      <category>programming</category>
      <category>github</category>
    </item>
    <item>
      <title>My Experiences of Participating in Holiday Hacks Hackathon</title>
      <dc:creator>Susmita Dey</dc:creator>
      <pubDate>Mon, 02 May 2022 10:29:57 +0000</pubDate>
      <link>https://dev.to/susmitadey/my-experiences-of-participating-in-holiday-hacks-hackathon-58nn</link>
      <guid>https://dev.to/susmitadey/my-experiences-of-participating-in-holiday-hacks-hackathon-58nn</guid>
      <description>&lt;h2&gt;
  
  
  Before Participation
&lt;/h2&gt;

&lt;p&gt;I came across a website named &lt;a href="https://devfolio.co/" rel="noopener noreferrer"&gt;Devfolio&lt;/a&gt; via my friend's reference. Actually one of my friend had participated in a hackathon named as &lt;a href="https://hack4bengal.tech/" rel="noopener noreferrer"&gt;Hack4Bengal&lt;/a&gt; and they had to submit their project on the Devfolio dashboard. So, I asked him to show me what project he and his teammates have made together and what is a hackathon and other stuffs and details of participating in a hackathon as I have never participated in any hackathon before. &lt;/p&gt;

&lt;p&gt;Then, he gave me the link to their submissions and I came to know about the website and discovered Holiday Hacks and other hackathons. I found &lt;a href="https://hack.iiitl.ac.in/" rel="noopener noreferrer"&gt;HackoFiesta&lt;/a&gt; on that website which was another hackathon held last week and obviously I had participated there(my first hackathon).&lt;br&gt;
I have documentation about my first hackathon in my other &lt;a href="https://susmitadey.hashnode.dev/" rel="noopener noreferrer"&gt;blog&lt;/a&gt;.&lt;br&gt;
So, basically this was my second hackathon and I registered for it to geek out with new people and build something great.&lt;/p&gt;




&lt;h2&gt;
  
  
  After Participation
&lt;/h2&gt;

&lt;p&gt;After participation, I joined their official discord server and checked in all the channels and criteria's of the hackathon. And after that, I learnt that it was the time for making a team. &lt;/p&gt;




&lt;h2&gt;
  
  
  Team Building 🤼
&lt;/h2&gt;

&lt;p&gt;As mentioned in their website, we're allowed to make a team of 4 members.&lt;br&gt;
So, I reached out other servers like EddieHub and Community Classroom on Discord and asked for girl teammates who is interested in participating in the hackathon with me.&lt;br&gt;
I asked for girls only because I wanted to have a girl's team and then a few days later 2 people reached me out. One was Vandana Vaswani and the other one was Akebu Simasiku. Then I invited them to join my discord server and created a private category for us to have our project discussion. &lt;/p&gt;




&lt;h2&gt;
  
  
  Project Discussion
&lt;/h2&gt;

&lt;p&gt;We fixed a meeting on last Wednesday and had an introductory session like getting to know each other and then we discussed about our team name and project idea. We came up with many team names and various project ideas. Eventually, it took a little time to think about it and also I came to know that it was the first hackathon for both of them. So, being the team leader I guided them and cheered them up for the hackathon. &lt;/p&gt;

&lt;p&gt;Finally, on the day before the starting of the hackathon, we finalized our project and team name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Our Team: Dev Girls&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Our Project: Moody&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It was under the theme &lt;strong&gt;Healthcare&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Brief Introduction About Our Project
&lt;/h2&gt;

&lt;p&gt;Moody is a chrome extension that will help you filter your home page of your Chrome Browser according to your mood and care for your mental heath and help you perform better. &lt;/p&gt;

&lt;p&gt;Mental health has become one of the most important and biggest issues nowadays. Although it cannot be cured properly(stress, anxiety) but we're trying to solve it as much as we can by this extension. &lt;/p&gt;

&lt;p&gt;Our project is Open Source and public on Github.&lt;/p&gt;

&lt;p&gt;Tech Stack:- &lt;strong&gt;HTML, Bootstrap, JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Check out the GitHub &lt;a href="https://github.com/Susmita-Dey/Moody" rel="noopener noreferrer"&gt;repository&lt;/a&gt; and the YT &lt;a href="https://youtu.be/jSUDUitqoOI" rel="noopener noreferrer"&gt;video&lt;/a&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%2Fpkmtnc6c7ju2qo2nubzq.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%2Fpkmtnc6c7ju2qo2nubzq.png" alt="image.png" width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Hackathon Starts 👩‍💻
&lt;/h2&gt;

&lt;p&gt;The hackathon started at 6 p.m. on 29th April(Friday) with the Opening Ceremony. We then started to design our extension pages using Figma and made a prototype of our extension in &lt;a href="https://www.figma.com/file/HthSH20cAg6WXbjLOW8af9/Moody---Chrome-Extension?node-id=0%3A1" rel="noopener noreferrer"&gt;Figma&lt;/a&gt;. I made a part of it and then handed it over to Vandana to do the rest of the part.&lt;br&gt;
Then I along with Akebu started coding. I made the landing page and pushed the code to GitHub while Akebu was documenting how to use our Chrome extension locally.&lt;br&gt;
Then, I made a few other pages for the moods and handed over to Akebu to complete the rest of it as I had to go to college on Saturday morning. &lt;/p&gt;

&lt;p&gt;Akebu did the rest of the part and after I came back from college, I started with the documentation part in the README; enhancing the README file on GitHub. But we ran into a major problem which still lies in the extension currently as we're not permitted to make any changes in the repo until the results are out. &lt;/p&gt;

&lt;p&gt;The problem is that we're unable to head over to the pages which are linked to our moods and we found the problem yesterday that it was happening due to one of the bootstrap classes &lt;code&gt;modals&lt;/code&gt;. We checked locally on our computers by removing the classes and found that it's working fine.&lt;/p&gt;




&lt;h2&gt;
  
  
  Project Submission 👩‍💻
&lt;/h2&gt;

&lt;p&gt;Time was running out and we're unable to fix the major bug and it was almost 5 p.m. in the evening and there's only 1hr left for the submission. So, we thought to leave the code as it is and start making the video for describing our project. I recorded the video and editing with Canva and VSDC and finally uploaded to YouTube. Meanwhile the deadline was extended for another 1hr and I got the chance to lower my stress and work properly. Then finally submitted the project on Devfolio dashboard.&lt;/p&gt;

&lt;p&gt;You can check out our project submission &lt;a href="https://devfolio.co/projects/moody-b6cf" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hackathon Ends
&lt;/h2&gt;

&lt;p&gt;At 7 p.m. the hackathon ended and a session started on the Aviyel platform. It was an amazing &lt;strong&gt;Open-source&lt;/strong&gt; session by &lt;a class="mentioned-user" href="https://dev.to/joshuapoddoku"&gt;@joshuapoddoku&lt;/a&gt; with the co-host Vaibhav Agrawal where they talked about the importance of &lt;strong&gt;Open Source, Community Building, and Networking&lt;/strong&gt; with people in tech and a bit about DevRel. It was like somewhat a mentoring session and all the participants there got to learn a lot. Also, during the session I had my GitHub profile review done by &lt;a class="mentioned-user" href="https://dev.to/joshuapoddoku"&gt;@joshuapoddoku&lt;/a&gt; Sir. This gave me the interest to participate more in future hackathons like there's a lot to gain from it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Our Learnings and Future Goals of Our Project
&lt;/h2&gt;

&lt;p&gt;The hackathon helped us to deep dive into Bootstrap classes and JavaScript. Since, we're the beginner's team and this was our first attempt to make a Chrome extension and that too within a short time limit of 24 hours, we faced many difficulties while building it.&lt;/p&gt;

&lt;p&gt;Our future plans for our project is to make it more better and add more emotions to our extension and the most important work to do is to fix the major bug on GitHub which still lies in our source code there.&lt;br&gt;
We're also thinking about to add new features to it and maintain the extension and help people to use it as much as they can.&lt;/p&gt;




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

&lt;p&gt;I personally would like to suggest you to go for hackathon. &lt;br&gt;
This would help you to &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;geek out with many new people, &lt;/li&gt;
&lt;li&gt;work as a team,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Source your ideas&lt;/strong&gt;,&lt;/li&gt;
&lt;li&gt;contribute and collaborate with people, and &lt;/li&gt;
&lt;li&gt;gain many new things.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't register with the fear that I won't be able to win the hackathon. Hackathons are the best way to nurture your learnings and come up with some great ideas and products to solve real-world problems. In this process, you'll get the taste of professional work of making a product or solving a real-life problem as a developer. &lt;/p&gt;

&lt;p&gt;Also, this will give you the eager/urge to learn some new technologies and develop your skills. 🚀&lt;/p&gt;




&lt;h2&gt;
  
  
  Hope this helps you. Thank you for reading, and let's connect!
&lt;/h2&gt;

&lt;p&gt;Thank you for reading my blog. Feel free to subscribe to my &lt;a href="https://www.youtube.com/channel/UCsuzc8lqAbgUYo4yzpjtfSw" rel="noopener noreferrer"&gt;YouTube Channel&lt;/a&gt; and connect on &lt;a href="https://www.linkedin.com/in/susmita-dey-15a15a210/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; or &lt;a href="https://twitter.com/its_SusmitaDey" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;br&gt;
Also, feel free to &lt;a href="https://www.buymeacoffee.com/susmitadey" rel="noopener noreferrer"&gt;support&lt;/a&gt; my work.😊&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Some of my Graphic Designs and Video Editing Work on Canva</title>
      <dc:creator>Susmita Dey</dc:creator>
      <pubDate>Fri, 18 Mar 2022 15:59:46 +0000</pubDate>
      <link>https://dev.to/susmitadey/some-of-my-graphic-designs-and-video-editing-work-on-canva-27ad</link>
      <guid>https://dev.to/susmitadey/some-of-my-graphic-designs-and-video-editing-work-on-canva-27ad</guid>
      <description>&lt;p&gt;Today I wanna showcase some of my designs on Canva.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Canva&lt;/strong&gt; is a design tool which you use to make your posters, business cards, thumbnails, book covers, videos, presentation and many more. It's free and easy to use. you can check it out on own via this &lt;a href="https://www.canva.com/" rel="noopener noreferrer"&gt;link&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;Here are some of my designs as listed below. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAE4-GE9ixw/OEY74Vlb4z3qVc1fqkCocA/view?utm_content=DAE4-GE9ixw&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;Channel Banner&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAE3H__b9HU/rhWZUFnKPynI4GDziH1VoQ/view?utm_content=DAE3H__b9HU&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;Organization Logo&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAE5oyXGVDE/7ZmbHnnbDvoaI6bq8Ewy0A/view?utm_content=DAE5oyXGVDE&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;YouTube Thumbnail&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAE5hsNtifE/w1x5tdM2byLOhqBLSO41Bw/watch?utm_content=DAE5hsNtifE&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;Video For My YouTube Channel&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAE5clBPkFc/84FuYdR_A2xGicv-31CPPA/view?utm_content=DAE5clBPkFc&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;Twitter Header&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAE2174x-Rk/frygzykVQuuX4N9rfQcI-w/watch?utm_content=DAE2174x-Rk&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;Mobile Video for my YT Channel&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAEzhXUpemQ/Srmi-6ZtyA-5Vdh_SYr7KA/view?utm_content=DAEzhXUpemQ&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;Instagram Story&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAE2E8k0rTw/cRCAFbdgxIqjQ47vOOwHzg/view?utm_content=DAE2E8k0rTw&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;Twitter Post&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAE2PpSlClI/ue7us41143y-ujXlgKHrhg/view?utm_content=DAE2PpSlClI&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;Blog Banner&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAEz0q-IFHQ/a78UZKP4-96gYFdn55ZM3w/view?utm_content=DAEz0q-IFHQ&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;YouTube Thumbnail&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAEs_M_HRAY/nk3BLEC5eYgdz9TEWgO6oA/watch?utm_content=DAEs_M_HRAY&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;Video Message&lt;/a&gt; - Made for one of my YouTube video&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAElgNWs_U8/yCHbcBg9GpDWyL7BEHsFAA/view?utm_content=DAElgNWs_U8&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;Poster&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAEkno3J7JU/RIN1NYnpYzHEhQP5oaMDJA/view?utm_content=DAEkno3J7JU&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;Card&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAErx-iyFa4/guz3niwT8L9F9KRaYpSs_Q/view?utm_content=DAErx-iyFa4&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;YouTube Intro&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.canva.com/design/DAEtEWGTQTQ/iwpeu3_1-gLIixBGyAcbmA/view?utm_content=DAEtEWGTQTQ&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=homepage_design_menu" rel="noopener noreferrer"&gt;Instagram Post&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;Thanks for reading this post and viewing my work. I've done many more of such work on Canva.&lt;br&gt;&lt;br&gt;
Here's a glimpse of all in one shot.&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%2F5gvm1j6rev27c5krfiye.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%2F5gvm1j6rev27c5krfiye.PNG" alt="1.PNG" width="800" height="329"&gt;&lt;/a&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%2Fmk2mj1hcp2ivkmlvmb98.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%2Fmk2mj1hcp2ivkmlvmb98.PNG" alt="demo1.PNG" width="641" height="661"&gt;&lt;/a&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%2F23zf7wi94zt1z91oafvi.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%2F23zf7wi94zt1z91oafvi.PNG" alt="demo2.PNG" width="641" height="659"&gt;&lt;/a&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%2Fhv9v0fuxbqa6weop5ky0.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%2Fhv9v0fuxbqa6weop5ky0.PNG" alt="demo3.PNG" width="800" height="609"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Hope this helps you. Thank you for reading, and let's connect!
&lt;/h2&gt;

&lt;p&gt;Thank you for reading my blog. Feel free to subscribe to my &lt;a href="https://www.youtube.com/channel/UCsuzc8lqAbgUYo4yzpjtfSw" rel="noopener noreferrer"&gt;YouTube Channel&lt;/a&gt; and connect on &lt;a href="https://www.linkedin.com/in/susmita-dey-15a15a210/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; or &lt;a href="https://twitter.com/its_SusmitaDey" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;br&gt;
Also, feel free to &lt;a href="https://www.buymeacoffee.com/susmitadey" rel="noopener noreferrer"&gt;support&lt;/a&gt; my work.😊&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>graphicdesign</category>
      <category>canva</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Variables and Datatypes in Python</title>
      <dc:creator>Susmita Dey</dc:creator>
      <pubDate>Sun, 13 Mar 2022 11:56:44 +0000</pubDate>
      <link>https://dev.to/susmitadey/variables-and-datatypes-in-python-37ji</link>
      <guid>https://dev.to/susmitadey/variables-and-datatypes-in-python-37ji</guid>
      <description>&lt;h2&gt;
  
  
  Variables
&lt;/h2&gt;

&lt;p&gt;As the name suggests, variables means something that can vary. That means, something that can be changed.&lt;br&gt;&lt;br&gt;
Let's take a real-world example to make you understand. &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%2Ftxgfteyf4767ci23pbaq.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%2Ftxgfteyf4767ci23pbaq.png" alt="Mixing ingredients - variables.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this image, you can see that there are two bowls containing some ingredients in it. And after some time a person is adding the items from the bowls into another single one in order to mix them. So, here gradually the value of the two bowls are decreasing and the value of the 3rd bowl is increasing. That means, in general, the amount of ingredients in the respective bowls are changing. So, here you can call  each bowl as a &lt;strong&gt;variable&lt;/strong&gt; and the items present in each of them as their &lt;strong&gt;value&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;By this, you might have got some idea of variables and their values.  &lt;/p&gt;


&lt;h2&gt;
  
  
  Declaring and Initializing Python Variables
&lt;/h2&gt;

&lt;p&gt;Now, let's see an example of python to demonstrate variables.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;
&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, you can see I have declared 3 variables named a, b and c. I've assigned them with values 5, 6 and 3 respectively.&lt;br&gt;&lt;br&gt;
So, this is the way of declaring and initializing variables in python.      &lt;/p&gt;

&lt;p&gt;📝&lt;strong&gt;Note that you cannot declare a variable and leave it without initializing it.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
For example -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, a is invalid and will give an error.&lt;/p&gt;




&lt;h3&gt;
  
  
  Multiple Assignment of Variables
&lt;/h3&gt;

&lt;p&gt;You can assign multiple variables will the same value together in the following way.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also assign multiple variables with different values together in a serial order.&lt;br&gt;&lt;br&gt;
For example:-&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, value of a is 5, value of b is 6 and value of c is 7.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Naming Convention of Variables in Python
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Variables should start with alphabets or with an underscore followed by alphabets.
For example:- &lt;code&gt;_var&lt;/code&gt; or &lt;code&gt;var_one&lt;/code&gt; or &lt;/li&gt;
&lt;li&gt;You can use _(underscore) and numbers to name your variables.
For example:- &lt;code&gt;name_1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;They should not contain any white-space or special characters like e.g. &amp;amp; (ampersand), $ (dollar).&lt;/li&gt;
&lt;li&gt;If you want to give your variables a big name, then you can use underscores (_) to separate the words.
For example:- &lt;code&gt;json_string&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Variable names are case sensitive in Python.
For example:- &lt;code&gt;age&lt;/code&gt; and &lt;code&gt;Age&lt;/code&gt; are two different variables.&lt;/li&gt;
&lt;li&gt;You can use camelCase to name your variable.
For example:- &lt;code&gt;myName&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;There are some reserved keywords in Python. Those keywords are already taken by the people who have made Python. So, don't use those keyword as a variable name otherwise python will become confused and it will throw errors.
Some of those keywords are:-  if, else, elif, range, class, for, def, del, is, try, from, while, etc.
There are many of them. You'll learn about them gradually.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  📒 Variable Object Reference
&lt;/h2&gt;

&lt;p&gt;Python is a high-level interpreted language. So, it treats every item as an object.&lt;br&gt;
For example:-&lt;br&gt;
You have assigned two variables a and b with the same value, say, 5.&lt;br&gt;
Now, 5 is an object located at a certain place in your computer's memory having a memory address and the two variables are acting as pointers pointing to the object.&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%2F1fm4w4yv8uu8wgyfn918.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%2F1fm4w4yv8uu8wgyfn918.png" alt="image.png" width="567" height="168"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Not only in this case, but in every case, i.e., whenever to declare and initialize a variable, the value assigned to it becomes an object and each variable points to their respective object value located at some point in the memory.&lt;/p&gt;


&lt;h3&gt;
  
  
  Checking the type of object
&lt;/h3&gt;

&lt;p&gt;You can check the type of object by using type() function in Python.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code snippet will return the following output -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="nc"&gt;int&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is because 6 is a number and is of type integer.&lt;br&gt;
Here, type() function is an in-built function in Python which is used to analyze the type of object.&lt;/p&gt;

&lt;p&gt;Let's take another example.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Susmita&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code snippet will return the following output -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="nc"&gt;str&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is because Susmita is a name of a person and is of type string.&lt;/p&gt;




&lt;h2&gt;
  
  
  Identity of Objects
&lt;/h2&gt;

&lt;p&gt;In Python, every every created object has an unique identity. Python provides every object different identity number and also ensures that no two object have the same identity.&lt;br&gt;&lt;br&gt;
We use id() function to identify the object identifier. It is a built-in function in Python. &lt;br&gt;
For example:-&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;
&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Susmita&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should give some random unique numbers as follows - &lt;br&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%2Fddef26e0dvjm2ig9dqhn.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%2Fddef26e0dvjm2ig9dqhn.png" alt="image.png" width="800" height="50"&gt;&lt;/a&gt;&lt;br&gt;
Here, you can see both the id's are different.&lt;/p&gt;

&lt;p&gt;Let's see another example -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Susmita&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Susmita&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This would return some random id both having the same values as follows.&lt;br&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%2F4pqdg5v9gnnxc39jxv8a.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%2F4pqdg5v9gnnxc39jxv8a.png" alt="image.png" width="800" height="53"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, you might feel confused. 😵&lt;br&gt;
So, let me explain. In the last example we've taken two variables having the same values called Susmita. Since python treats the values as objects and assigns the unique id to the objects and not to the variables and the variables act as pointers pointing to the object, so its obvious that the code snippet will return same values.&lt;br&gt;
Hope, this clears your confusion. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;p&gt;&lt;a href="https://giphy.com/gifs/daughter-houston-bathtub-hVYVYZZBgF50k" rel="noopener noreferrer"&gt;GIF source is via GIPHY&lt;/a&gt;&lt;/p&gt;&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Data Types
&lt;/h2&gt;

&lt;p&gt;Some of the basic datatypes in Python are -&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Integer(int)&lt;/li&gt;
&lt;li&gt;Floating Point(float)&lt;/li&gt;
&lt;li&gt;Strings(str)&lt;/li&gt;
&lt;li&gt;Boolean(bool)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In order to know the datatype of a variable after assigning some value to it, we use &lt;code&gt;type()&lt;/code&gt; function.&lt;/p&gt;


&lt;h2&gt;
  
  
  1. Integer Data Type
&lt;/h2&gt;

&lt;p&gt;By the term integer, we often understand that it can either be a negative or a positive number or zero.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;77&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, a and b both are integer datatypes as they contain integer values(one positive, one negative).&lt;br&gt;
Let's check it's datatype to get sure.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:-&lt;/strong&gt;&lt;br&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%2Fiyfp4n4bahzhze2k8jcc.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%2Fiyfp4n4bahzhze2k8jcc.png" alt="image.png" width="297" height="75"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  2. Float Data Type
&lt;/h2&gt;

&lt;p&gt;By the term float, we often understand that it can either be a negative or a positive decimal number.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;6.98&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;77.56&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, a and b both are float data types as they contain floating point values(one positive, one negative).&lt;br&gt;
Let's check it's datatype to get sure.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;7.7&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:-&lt;/strong&gt;&lt;br&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%2Fqelgquhyisp053omj2b0.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%2Fqelgquhyisp053omj2b0.png" alt="image.png" width="324" height="95"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  3. String Data Type
&lt;/h2&gt;

&lt;p&gt;By the term string, we often understand that it can be a word or a sentence or a paragraph.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Hello&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;I am Python&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, a and b both are string data types as they contain Strings. &lt;br&gt;
Let's check it's datatype to get sure.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Hello&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:-&lt;/strong&gt;&lt;br&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%2Fvtlzytz0w8jvmaul6wzk.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%2Fvtlzytz0w8jvmaul6wzk.png" alt="image.png" width="307" height="80"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;I am Python&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:-&lt;/strong&gt;&lt;br&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%2Fvtlzytz0w8jvmaul6wzk.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%2Fvtlzytz0w8jvmaul6wzk.png" alt="image.png" width="307" height="80"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:-&lt;/strong&gt; You can denote strings in both ways(either using '' or using "" ) as you like. But some important things you should keep in mind.&lt;/p&gt;

&lt;p&gt;Check out the following examples -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;55&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:-&lt;/strong&gt;&lt;br&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%2Fvtlzytz0w8jvmaul6wzk.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%2Fvtlzytz0w8jvmaul6wzk.png" alt="image.png" width="307" height="80"&gt;&lt;/a&gt;&lt;br&gt;
This is a string because we have written 55 inside &lt;em&gt;single quotation marks&lt;/em&gt; and then assigned to variable a.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;I&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;m Susmita&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:-&lt;/strong&gt;&lt;br&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%2Fvtlzytz0w8jvmaul6wzk.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%2Fvtlzytz0w8jvmaul6wzk.png" alt="image.png" width="307" height="80"&gt;&lt;/a&gt;&lt;br&gt;
Here, you can see I have used &lt;em&gt;double quotes&lt;/em&gt; to write the sentence. I can obviously use here single quotes but in this particular case it will give me error if I do so. Since, I haven't done it, so my program is working perfectly without any error.&lt;/p&gt;

&lt;p&gt;Now, your question might be why it will give error?&lt;/p&gt;

&lt;p&gt;Let's do that and run the program to see the output.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;I&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;Susmita&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;        # wrong code
print(type(a))
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:-&lt;/strong&gt;&lt;br&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%2Fkl9r30i5yk2hxrrsvsxg.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%2Fkl9r30i5yk2hxrrsvsxg.png" alt="image.png" width="522" height="131"&gt;&lt;/a&gt;&lt;br&gt;
It is because in the sentence I have written &lt;code&gt;I'm&lt;/code&gt; and as you can write strings using &lt;code&gt;''&lt;/code&gt;, so when you're writing &lt;code&gt;I&lt;/code&gt; and then using &lt;code&gt;'&lt;/code&gt; after that then it closes the string here and then it detects a string to be started after Susmita is written. So, this gives syntax error.&lt;br&gt;&lt;br&gt;
I hope it is clear to you now.&lt;/p&gt;

&lt;p&gt;There are some more parts of strings and we'll go deep dive into it later on when we will deal with Strings chapter.&lt;/p&gt;


&lt;h2&gt;
  
  
  4. Boolean Data Type
&lt;/h2&gt;

&lt;p&gt;By the term float, we often understand that it can either be a &lt;code&gt;True&lt;/code&gt; value or a &lt;code&gt;False&lt;/code&gt; value.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, a and b both are boolean data types as they contain boolean values.&lt;br&gt;
Let's check it's datatype to get sure.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:-&lt;/strong&gt;&lt;br&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%2Fv3b1dz1gtxdh4hj6r2za.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%2Fv3b1dz1gtxdh4hj6r2za.png" alt="image.png" width="304" height="90"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, this was the overall basics of understanding data types. There are some other data types in Python. We'll discuss them later in detail.&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%2F7qlnehy3gzn2bw5jfnao.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%2F7qlnehy3gzn2bw5jfnao.png" alt="image.png" width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Picture by &lt;a href="https://www.geeksforgeeks.org" rel="noopener noreferrer"&gt;GeeksForGeeks&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Hope this helps you. Thank you for reading, and let's connect!
&lt;/h2&gt;

&lt;p&gt;Thank you for reading my blog. Feel free to subscribe to my &lt;a href="https://www.youtube.com/channel/UCsuzc8lqAbgUYo4yzpjtfSw" rel="noopener noreferrer"&gt;YouTube Channel&lt;/a&gt; and connect on &lt;a href="https://www.linkedin.com/in/susmita-dey-15a15a210/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; or &lt;a href="https://twitter.com/its_SusmitaDey" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;br&gt;
Also, feel free to &lt;a href="https://www.buymeacoffee.com/susmitadey" rel="noopener noreferrer"&gt;support&lt;/a&gt; my work.😊&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Blogging As Your Next Income 💰</title>
      <dc:creator>Susmita Dey</dc:creator>
      <pubDate>Sun, 13 Mar 2022 10:43:09 +0000</pubDate>
      <link>https://dev.to/susmitadey/blogging-as-your-next-income-4dan</link>
      <guid>https://dev.to/susmitadey/blogging-as-your-next-income-4dan</guid>
      <description>&lt;h2&gt;
  
  
  What is Blogging?
&lt;/h2&gt;

&lt;p&gt;Blogging is something like documenting your learnings in an article. &lt;/p&gt;

&lt;p&gt;For example:- &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let's say you're watching a YouTube video based on a certain course.&lt;br&gt;
What you are learning from this video you can write it in a blog and also since it's a YouTube video don't forget to give it as a credit otherwise you might have to face some copyright issues which is not good.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, Blogging can be your next income.&lt;br&gt;
For example, think like you have written a blog on html like about the html tags you know. There are some useful html tags that people aren't aware of like the &lt;code&gt;details tag&lt;/code&gt; or the &lt;code&gt;article tag&lt;/code&gt;.&lt;br&gt;
There are quite few of them you can write it as a blog post.&lt;br&gt;
After you have written it as a blog post and if the reader who is reading the blog finds a helpful, then sometimes people sponsor you for the blog being excited and in this way that they want to thank you for the blog post. So, this can be as your next income in this way.&lt;/p&gt;

&lt;p&gt;You can write blogs as your part-time work also this helps you in documenting in your learnings and also this increases your documenting skills. &lt;/p&gt;




&lt;h2&gt;
  
  
  Importance of Writing Blogs
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Documentation is the most important part&lt;/strong&gt; for any software or any technology you want to use.&lt;br&gt;
For example:- &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;If you go to the official page of Tailwind(Framework of CSS), Then you can see the docs menu in the navbar. If you go to the docs page, then you will see there's so many a documentation which tells you how to use tailwind, how you can make a beautiful web pages&lt;br&gt;
using tailwind and many more...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you search for html docs in google, it will open the MDN docs at the very first as a search result option; where you can see how to use html tags and what to do with html tags, how you can make a table, how you can make a form, you can see everything each and everything is&lt;br&gt;
written there in detail.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So, this reveals that documentation is the most important thing for any software and any technology because documentation helps people to know about that software or the technology they are gonna use.&lt;/p&gt;

&lt;p&gt;If you want to get a job at a non-tech site, you can do documentation of a software or a new technology appearing in the market.&lt;/p&gt;

&lt;p&gt;So, this can also get you a job. Sounds cool 😎&lt;/p&gt;

&lt;p&gt;Note:- Coding is not only for the people who love tech or who love computer science. Coding is for all&lt;br&gt;
and also beside coding if you know how to document your learnings and how to write an article, then it's a bonus point to your resume this will add value to your resume. &lt;/p&gt;




&lt;h2&gt;
  
  
  Where to write blogs
&lt;/h2&gt;

&lt;p&gt;There are many websites available on the internet. I personally use &lt;a href="https://hashnode.com/" rel="noopener noreferrer"&gt;Hashnode&lt;/a&gt; and &lt;a href="https://dev.to/"&gt;Dev.to&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can also use &lt;a href="https://medium.com/" rel="noopener noreferrer"&gt;Medium&lt;/a&gt; if you want.&lt;br&gt;
These 3 are the most popular blogging sites on the internet where developers or people and tech may&lt;br&gt;
write their articles.&lt;/p&gt;

&lt;p&gt;If you want to write non-tech articles, you can also do it. There's no issue in that but if you want&lt;br&gt;
to write only non-tech articles, then I would recommend using blocker you can also use &lt;a href="https://www.blogger.com/" rel="noopener noreferrer"&gt;Blogger&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Blogger
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Blogger is by Google&lt;/strong&gt; and it is one of the most popular blogging site and also if O talk about blogger there you can put ads. Advertisements are offered by companies if they like your articles. Some companies often ask the article owners or the bloggers who use the blogger website to put ads of their company&lt;br&gt;
on their web page i.e., their blogging website. &lt;/p&gt;

&lt;p&gt;In that case make sure that when you are putting ads of some company on your blogging site, make sure that the ads are safe. You have to make sure that they are not spam. You might get some good&lt;br&gt;
amount of money by putting the ads of various companies on your blogging site but make sure the viewers who are reaching to your blogs and reading your blogs and finding helpful&lt;br&gt;
and they can see the ads pasted beside your article or down below the article in your blogging site.&lt;/p&gt;

&lt;p&gt;Otherwise the readers who are reading your blogs or articles on your website and then clicking on the ads to purchase something and they might be in danger and in this order it can harm your blogging site. &lt;/p&gt;

&lt;p&gt;If you want to write blogs on Hashnode, then they will often have a sponsor button otherwise say you can create an account on &lt;a href="https://www.buymeacoffee.com/" rel="noopener noreferrer"&gt;Buy Me A Coffee&lt;/a&gt; website and attach the link here in the Hashnode like-&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can support me by this &lt;a href="https://www.buymeacoffee.com/susmitadey" rel="noopener noreferrer"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Otherwise you can say like-&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Feel free to support me via this &lt;a href="https://www.buymeacoffee.com/susmitadey" rel="noopener noreferrer"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or, you can write as - &lt;code&gt;buy me a coffee&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;So, it's your choice.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tips to Start Writing Blogs
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Choose a particular platform to start writing your first blog&lt;/li&gt;
&lt;li&gt;If you're using any copyright content or the content which do not belong to yours completely, then do give a credit.&lt;/li&gt;
&lt;li&gt;Document your learning everyday.&lt;/li&gt;
&lt;li&gt;Learn to SEO(Search Engine Optimization) in order to rank your blogs or blogging site.&lt;/li&gt;
&lt;li&gt;Do side hustle everyday. In this way, you won't miss out of topics.&lt;/li&gt;
&lt;li&gt;Do not write blogs which are not useful. 
&amp;gt; For example:-
Think that you've ate something delicious today and you're writing like what you ate today. 
Don't do that. &lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;I hope you have got a brief idea about what is blogging and how you can document your learnings in an article and how you can use it as your next income or get a order getting a job by writing blogs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hope this helps you. Thank you for reading, and let's connect!
&lt;/h2&gt;

&lt;p&gt;Thank you for reading my blog. Feel free to subscribe to my &lt;a href="https://www.youtube.com/channel/UCsuzc8lqAbgUYo4yzpjtfSw" rel="noopener noreferrer"&gt;YouTube Channel&lt;/a&gt; and connect on &lt;a href="https://www.linkedin.com/in/susmita-dey-15a15a210/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; or &lt;a href="https://twitter.com/its_SusmitaDey" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;br&gt;
Also, feel free to &lt;a href="https://www.buymeacoffee.com/susmitadey" rel="noopener noreferrer"&gt;support&lt;/a&gt; my work.😊&lt;/p&gt;

</description>
      <category>blog</category>
      <category>documentation</category>
      <category>devjournal</category>
      <category>beginners</category>
    </item>
    <item>
      <title>My Journey of Being #WomenInTech</title>
      <dc:creator>Susmita Dey</dc:creator>
      <pubDate>Sun, 13 Mar 2022 08:16:44 +0000</pubDate>
      <link>https://dev.to/susmitadey/my-journey-of-being-womenintech-1b3g</link>
      <guid>https://dev.to/susmitadey/my-journey-of-being-womenintech-1b3g</guid>
      <description>&lt;h2&gt;
  
  
  School Days
&lt;/h2&gt;

&lt;p&gt;I studied in &lt;a href="https://www.cjmranaghat.org/" rel="noopener noreferrer"&gt;Convent of Jesus and Mary&lt;/a&gt; school. I was a Science student pursuing PCMB along with Computer Science as my subjects in Class 11 and 12. When I was in class 12 studying in school, I had no idea or thought that I would be into tech after an year. My ambition was to give the NEET Exam and get into a medical college. &lt;br&gt;
NEET is a medical exam held all over India.&lt;/p&gt;




&lt;h3&gt;
  
  
  About NEET Exam
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;National Eligibility cum Entrance Test (Undergraduate)&lt;/strong&gt; or &lt;strong&gt;NEET (UG)&lt;/strong&gt;, formerly the All India Pre-Medical Test (AIPMT), is an all India pre-medical entrance test for students who wish to pursue undergraduate medical (MBBS), dental (BDS) and AYUSH (BAMS, BUMS, BHMS, etc.) courses in government and private institutions in India and also, for those intending to pursue primary medical qualification abroad.&lt;/p&gt;

&lt;p&gt;The exam is conducted by &lt;strong&gt;National Testing Agency (NTA)&lt;/strong&gt;, which provides the results to the Directorate General of Health Services under Ministry of Health and Family Welfare and State Counselling Authorities for seat allocation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Source - Wikipedia&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Before NEET Exam
&lt;/h3&gt;

&lt;p&gt;I appeared my &lt;strong&gt;board exam in 2020&lt;/strong&gt; and it's a year when &lt;strong&gt;coronavirus&lt;/strong&gt; spread all over the world. My exam was going on and suddenly the &lt;strong&gt;Chief Minister&lt;/strong&gt; declared lockdown before the day of my last exam, which was Biology. I felt nervous about my marks. At that moment, there's a dilemma that &lt;strong&gt;NEET exam&lt;/strong&gt; will not be held this year. Some of them were protesting against it as there were huge cases of death and affected news of &lt;strong&gt;coronavirus&lt;/strong&gt;. At certain point, we students were sure that there would be no exam held this year. So, the on-fire preparation before the exam went down.&lt;/p&gt;

&lt;p&gt;We're told that our board marks of the last exam will be given as an average of our previously held mock tests. So, it made us tension-free at that part. But after a month or two, &lt;strong&gt;NTA&lt;/strong&gt; suddenly announced that &lt;strong&gt;NEET exam&lt;/strong&gt; will be held and also gave us the date of examination and date of issuing the admit card of the same.&lt;/p&gt;

&lt;p&gt;Then, I prepared my mind and started revising the topics again. But the time was very less at that moment and the exam was near. &lt;em&gt;I used &lt;a href="https://www.vedantu.com/" rel="noopener noreferrer"&gt;Vedantu&lt;/a&gt; for my preparation and it got me pretty ready for the exam.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Before the day of the exam, I was feeling nervous as I was appearing for the first time but I was confident too.&lt;/p&gt;




&lt;h3&gt;
  
  
  On the Exam Day
&lt;/h3&gt;

&lt;p&gt;I went to Kolkata and reached the place where I was given the seat to give my exam. It was a Christian school. There were many student like me. We're asked to go to the our respective rooms as given in the panel before 3 hours of our examination. We followed all rules and regulation and finally after 3 hours, an invigilator entered the room and distributed question papers and OMR sheet(a little later) among us. &lt;br&gt;
The paper was a bit tough. After the exam, I was sure that I could get a chance to land into a medical college. So, I happily came back home.&lt;/p&gt;




&lt;h3&gt;
  
  
  On the Result Day
&lt;/h3&gt;

&lt;p&gt;On the Result day, I was nervous and tensed but as I saw my result, it shook me. I was unable to crack the exam as I couldn't score above 650 rank, which is mandatory for a general candidate. &lt;/p&gt;




&lt;h3&gt;
  
  
  After the Result Days
&lt;/h3&gt;

&lt;p&gt;My parents told me to get into a general govt. college for a BSc degree and after that I can prepare for NEET sideways to appear next year. I agreed with them. Then I applied to many colleges for Microbiology and as an extra I also applied for Computer Science at one college.&lt;/p&gt;

&lt;p&gt;But I wasn't aware that my luck is waiting with Computer Science in hand; rejecting all my Microbiology applications. No college accepted my application to pursue Microbiology. The only college accepted my Computer Science application which I partially didn't wanted to as I feared programming. &lt;/p&gt;

&lt;p&gt;My best friend who was just the opposite of mine told me to get into tech as he was fond of Computer Science. He assured me that once I start coming up from all fear and problems and try to write my own program and learn programming languages and build projects, then there'd be no problems to enjoy tech.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Entry Into Tech
&lt;/h2&gt;

&lt;p&gt;I showed some courage and took up the course. Now, I'm a sophomore student at &lt;a href="https://kalyanimahavidyalaya.net.in/" rel="noopener noreferrer"&gt;Kalyani Mahavidyalaya&lt;/a&gt; pursuing &lt;strong&gt;BSc. Computer Science(Hons.).&lt;/strong&gt;&lt;br&gt;
Today, I feel like I've made the right decision to get into tech and dropped the thought of a medical student. Today I feel like tech was for me and I love building projects, learning new things and levelling up my skills everyday. Now, I'm in love with tech. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The person who once feared to write a single program to print prime numbers; she is now building projects like Math Quiz Game, Landing Pages and many more...&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Perks of getting into Tech
&lt;/h3&gt;

&lt;p&gt;According to my experiences, I have done the following - &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Met many new people in these one and half years. &lt;/li&gt;
&lt;li&gt;Got into Open Source and contributed to many repositories&lt;/li&gt;
&lt;li&gt;Currently participated in GSSoC'22 &lt;/li&gt;
&lt;li&gt;Applied for Campus Ambassador Role in Women Techmakers and EddieHub&lt;/li&gt;
&lt;li&gt;Learnt a lot of new skills&lt;/li&gt;
&lt;li&gt;Started my own YouTube channel&lt;/li&gt;
&lt;li&gt;Written many blogs and helped folks to solve their problems in tech&lt;/li&gt;
&lt;li&gt;Created my own GitHub oraganization - &lt;a href="https://github.com/opensourcecommunity-hub" rel="noopener noreferrer"&gt;OpenSourceHub&lt;/a&gt; to help folks to get into Open Source.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As you're now reading this blog, do you know that reading and writing blogs/documentation is also a skill?&lt;/p&gt;




&lt;h2&gt;
  
  
  Ways to close the gender gap
&lt;/h2&gt;

&lt;p&gt;I believe tech is for all. It's not limited to a particular gender. Also, it doesn't discriminate between men, women or non-binary. People getting into tech, often become developers or projects managers or something else in the niche of tech. But at the end of the day, what we all do is to build something and make the life of normal people easier, faster and more secured.&lt;/p&gt;

&lt;p&gt;You can keep these things in mind to close the gender gap.&lt;/p&gt;




&lt;h2&gt;
  
  
  The women in tech I admire
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.    Emma Dawson&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/emmalearnscode" rel="noopener noreferrer"&gt;Emma Dawson&lt;/a&gt; is a junior web developer and a valuable member and the repository maintainer of the &lt;a href="https://github.com/EddieHubCommunity" rel="noopener noreferrer"&gt;EddieHub Community&lt;/a&gt;. I follow her work a lot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Khushboo Verma&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/khushbooverma_" rel="noopener noreferrer"&gt;Khushboo Verma&lt;/a&gt; is a Software Engineer at Microsoft, Community Builder and a Public Speaker. I have learnt a lot from her Twitter threads and Twitter Spaces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Shruti Panjwani&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/_shrutipanjwani" rel="noopener noreferrer"&gt;Shruti Panjwani&lt;/a&gt; is a 17 years old girl. She is a Freelancer and a  Full Stack Engineer &amp;amp; Content Creator. She is also the Head of web presence of CloutlandersNFT. I have learnt a lot of things and taken inspiration of making projects from her YouTube Channel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Rishika&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/Rishika5000" rel="noopener noreferrer"&gt;Rishika&lt;/a&gt; is a Software Developer at LinkedIn and a Former Product intern at Adobe. She helps many people via her community work on Twitter and YouTube channel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Vaishnavi Dwivedi&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/dwvicy" rel="noopener noreferrer"&gt;Vaishnavi Dwivedi&lt;/a&gt; is building Michispotlight. She is a community manager at &lt;a href="https://t.co/Jyal0ZGZUx" rel="noopener noreferrer"&gt;dydxfoundation&lt;/a&gt; and also a dev advocate at Scaler. She is a GitHub field expert at &lt;a href="https://twitter.com/fof_mumbai" rel="noopener noreferrer"&gt;fof_mumbai&lt;/a&gt; and a full-stack product designer. I have learnt many new things from her community work and took inspiration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Nikita Gupta&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/nikigupta123" rel="noopener noreferrer"&gt;Nikita Gupta&lt;/a&gt; is a Sr Tech Recruiter at Uber, Founder of FAANGPath, Ex-Amazon, TEDx Speaker, Entrepreneur | Ft. &lt;a href="https://twitter.com/BusinessInsider" rel="noopener noreferrer"&gt;BusinessInsider&lt;/a&gt; and The Hollywood Times. She helps people to get into FAANG companies via this organization at LinkedIn named as FAANGPath.&lt;/p&gt;




&lt;h2&gt;
  
  
  Resources for women and non-binary folks
&lt;/h2&gt;

&lt;p&gt;There are a ton of awesome organizations and spaces for women and non-binary folks to take part in, meet with each other, and create stronger networks and grow together.&lt;/p&gt;

&lt;p&gt;Some of them are as follows - &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://womentechmakers.com/" rel="noopener noreferrer"&gt;Women TechMakers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://girlswhocode.com/" rel="noopener noreferrer"&gt;Girls Who Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gssoc.girlscript.tech/" rel="noopener noreferrer"&gt;GirlScript Summer of Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.blackgirlscode.com/" rel="noopener noreferrer"&gt;Black Girls Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://girldevelopit.com/" rel="noopener noreferrer"&gt;Girl Develop It&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mothercoders.org/" rel="noopener noreferrer"&gt;Mother Coders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ncwit.org/" rel="noopener noreferrer"&gt;National Center for Women &amp;amp; Information Technology (NCWIT)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.techwomen.org/" rel="noopener noreferrer"&gt;Tech Women&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can check out this &lt;a href="https://medium.com/make-school/6-resources-for-women-in-tech-f5f3f6392132" rel="noopener noreferrer"&gt;blog&lt;/a&gt; for detailed resources.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hope this helps you. Thank you for reading, and let's connect!
&lt;/h2&gt;

&lt;p&gt;Thank you for reading my blog. Feel free to subscribe to my &lt;a href="https://www.youtube.com/channel/UCsuzc8lqAbgUYo4yzpjtfSw" rel="noopener noreferrer"&gt;YouTube Channel&lt;/a&gt; and connect on &lt;a href="https://www.linkedin.com/in/susmita-dey-15a15a210/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; or &lt;a href="https://twitter.com/its_SusmitaDey" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;br&gt;
Also, feel free to &lt;a href="https://www.buymeacoffee.com/susmitadey" rel="noopener noreferrer"&gt;support&lt;/a&gt; my work.😊&lt;/p&gt;

</description>
      <category>womenintech</category>
      <category>wecoded</category>
      <category>computerscience</category>
    </item>
  </channel>
</rss>
