<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Sathish A</title>
    <description>The latest articles on Forem by Sathish A (@sathish_226_).</description>
    <link>https://forem.com/sathish_226_</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%2F3184270%2Fba0ef13f-bca2-4c44-9cc4-0f70beefbe0c.jpeg</url>
      <title>Forem: Sathish A</title>
      <link>https://forem.com/sathish_226_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sathish_226_"/>
    <language>en</language>
    <item>
      <title>My Interview Experience at MVI Technologies</title>
      <dc:creator>Sathish A</dc:creator>
      <pubDate>Fri, 17 Oct 2025 18:10:50 +0000</pubDate>
      <link>https://forem.com/sathish_226_/my-interview-experience-at-mvi-technologies-5gho</link>
      <guid>https://forem.com/sathish_226_/my-interview-experience-at-mvi-technologies-5gho</guid>
      <description>&lt;p&gt;Hello everyone,&lt;/p&gt;

&lt;p&gt;I want to share my small experience about my interview in MVI Technologies. That day was really awesome and I learn many new things.&lt;/p&gt;

&lt;p&gt;First I got one mail from MVI about my interview schedule. I was so happy that time. They give me 5 days time for prepare before interview day. So I start my preparation immediately.&lt;/p&gt;

&lt;p&gt;In that days I study Core Java, JDBC, Arrays, and String programs. I practice many examples and try to improve my logic. I was little nervous but I feel I prepare well.&lt;/p&gt;

&lt;p&gt;Then the interview day came. That day was really nice. They ask some good questions from file handling and collections. Some questions are mix with small task also, that was nice.&lt;/p&gt;

&lt;p&gt;But only problem is time not enough, only 1 hour. Some questions I see first time. I try my best. &lt;/p&gt;

&lt;p&gt;These are questions from the interview. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;1.Task&lt;/strong&gt;: Create a Java program that works with product data and calculates category-wise total sales.&lt;br&gt;
Requirements:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a text file named products.txt programmatically.&lt;/li&gt;
&lt;li&gt;Write product details into the file. Each product has three fields:
Category (e.g., Phone, Stationery, Music)
Product Name,Product Price&lt;/li&gt;
&lt;li&gt;Category Details:
There should be 3 categories: Phone, Stationery, Music.
Each category should have 3 products with their respective prices.
Example: Phone,Samsung,15000&lt;/li&gt;
&lt;li&gt;Read the products.txt file and calculate the total price for each category.&lt;/li&gt;
&lt;li&gt;Create another text file named summary.txt and write category-wise totals into it.
Each line should have the category name and total price.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;Example:&lt;br&gt;
Phone : 125000&lt;br&gt;
Stationery : 100&lt;br&gt;
Music : 14200&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2.Task&lt;/strong&gt;:&lt;br&gt;
You are given a string containing letters and digits. Write a program to reverse only the letters in the string while keeping the digits in their original positions.&lt;br&gt;
Rules:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Only alphabetic characters (a–z, A–Z) should be reversed.&lt;/li&gt;
&lt;li&gt;Digits (0–9) must remain at the same index as in the original string.&lt;/li&gt;
&lt;li&gt;No inbuilt methods like StringBuilder.reverse() should be used; solve it manually using arrays and loops.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;Example:&lt;br&gt;
Input:  "abcde1234fgh567ijk"&lt;br&gt;
Output: "kjihg1234fed567cba"&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;3.Task&lt;/strong&gt;:&lt;br&gt;
Write a Java program that performs the following tasks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a file programmatically and allow the user to enter data.&lt;/li&gt;
&lt;li&gt;Store the user input in a Map with the following structure:
Key: Long number
Value: String word&lt;/li&gt;
&lt;li&gt;The user should enter at least 3 entries.
Validation Conditions:
Condition 1 (Number Key Validation):&lt;/li&gt;
&lt;li&gt;The number must be even.&lt;/li&gt;
&lt;li&gt;All digits of the number must also be even.
Examples of valid numbers: 246864, 888222
Examples of invalid numbers: 248678 (contains 7, 1, 3, etc.), 135792
Condition 2 (String Value Validation):&lt;/li&gt;
&lt;li&gt;The word must have exactly 6 letters.&lt;/li&gt;
&lt;li&gt;The word must be a palindrome (reads the same forwards and backwards).
Example valid words: madam, deeded (length must be exactly 6)
If both conditions are satisfied, store the number-word pair in the Map.&lt;/li&gt;
&lt;li&gt;After all entries are collected, write the valid data from the Map to another file.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;Example Flow:&lt;br&gt;
Enter number: 246864&lt;br&gt;
Enter word: deified&lt;br&gt;
--&amp;gt; Valid, added to map&lt;/p&gt;

&lt;p&gt;Enter number: 248678&lt;br&gt;
Enter word: madamm&lt;br&gt;
--&amp;gt; Invalid, not added&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;4.Task&lt;/strong&gt;:&lt;br&gt;
Write a Java program that performs the following steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Get employee details from the user:
Employee ID (integer)
Employee Name (string)
Employee Salary (double)
2.Store all the entered employees into an ArrayList as objects.
Create an Employee class with fields: id, name, and salary.
Get input for at least 3 employees from the user.&lt;/li&gt;
&lt;li&gt;After storing data in ArrayList,
Transfer all data into a LinkedList (one by one using loops — don’t use foreach or streams).&lt;/li&gt;
&lt;li&gt;Then, programmatically create a file (e.g., employees.txt) and write all the employee details into the file.&lt;/li&gt;
&lt;li&gt;Use only basic collections and file handling —
No Map, no Stream, no foreach.
Use Iterate interface&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;I put all answers in my repo. If you want you can check my repo...&lt;/p&gt;

&lt;p&gt;[(&lt;a href="https://gitlab.com/sathish226/java_exercise/-/tree/main/Java/src/mvi_Interview_Questions?ref_type=heads)" rel="noopener noreferrer"&gt;https://gitlab.com/sathish226/java_exercise/-/tree/main/Java/src/mvi_Interview_Questions?ref_type=heads)&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;Thank you for reading my small experience.&lt;/p&gt;

&lt;p&gt;Keep learning and never give up!!!&lt;/p&gt;

</description>
      <category>java</category>
      <category>interview</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>TossConf 25 – Day 2: Stalls, Real-World Tech Talks, and Open Source Energy</title>
      <dc:creator>Sathish A</dc:creator>
      <pubDate>Sun, 27 Jul 2025 17:54:01 +0000</pubDate>
      <link>https://forem.com/sathish_226_/tossconf-25-day-2-stalls-real-world-tech-talks-and-open-source-energy-5aee</link>
      <guid>https://forem.com/sathish_226_/tossconf-25-day-2-stalls-real-world-tech-talks-and-open-source-energy-5aee</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;After enjoying Day 1, I was very excited for Day 2 of TossConf 25. This day was even more special because we were going to set up our own stall and interact with more people.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We got up early, took the bus, and reached St. Joseph’s College on time. The college team welcomed us with a nice breakfast. After eating, we moved to the auditorium to start the sessions.&lt;/p&gt;

&lt;p&gt;1st Talk – &lt;strong&gt;Vijay Kumar Sir&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%2F2i8zbiz41goac2nauryn.jpeg" 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%2F2i8zbiz41goac2nauryn.jpeg" alt=" " width="800" height="368"&gt;&lt;/a&gt;&lt;br&gt;
Topic: &lt;strong&gt;Between Ethics and Exploitation – The Infinity War&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;He gave a deep and thoughtful talk about ethics in open-source.&lt;br&gt;
    He shared that he personally used open-source tools for many years but never contributed back, and this made him feel guilty&lt;br&gt;
He admitted feeling guilty for not contributing earlier but said guilt can be a motivation to start helping the community.&lt;br&gt;
    His speech made many of us reflect on our role in open source.&lt;/p&gt;

&lt;p&gt;2nd Talk – &lt;strong&gt;Yagapriyan&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%2F9r4cyhswbqols7wlddoe.jpeg" 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%2F9r4cyhswbqols7wlddoe.jpeg" alt=" " width="800" height="368"&gt;&lt;/a&gt;&lt;br&gt;
Topic: &lt;strong&gt;A Short History of Linux&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This was a simple and interesting session on how Linux began.&lt;br&gt;
    He explained how Linux started from UNIX and became a major part of today's tech world.The talk was short but very informative.At the end, he asked a few questions and gave small gifts to the winners, making it fun.&lt;/p&gt;

&lt;p&gt;Track Sessions - I joined Track 1&lt;/p&gt;

&lt;p&gt;There were two parallel tracks with different talks. I attended Track 1 and listened to some great sessions.&lt;/p&gt;

&lt;p&gt;Talk 1: – &lt;strong&gt;Keerthana Rajesh Kumar&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%2F5gemdj4xyw40h4kv9mhh.jpeg" 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%2F5gemdj4xyw40h4kv9mhh.jpeg" alt=" " width="542" height="720"&gt;&lt;/a&gt;&lt;br&gt;
Topic: &lt;strong&gt;Dissecting Ente – A Deep Dive into the Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;She explained the technical structure of a secure photo storage app called Ente.She showed where and how user photos are stored securely.&lt;br&gt;
Used clear diagrams and explained complex parts in simple words.&lt;br&gt;
    I learned how apps manage memory and file storage safely.&lt;/p&gt;

&lt;p&gt;Talk 2: – &lt;strong&gt;Abinaya SV&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%2F6kpca2q5hx0vhqxxf06a.jpeg" 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%2F6kpca2q5hx0vhqxxf06a.jpeg" alt=" " width="720" height="542"&gt;&lt;/a&gt;&lt;br&gt;
Topic: &lt;strong&gt;What’s Data Engineering? Your First Steps into Open Source&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This was a beginner-friendly session on data engineering.She explained what data engineers do in real-time projects.She shared how to start learning data tools and contribute to open-source.&lt;br&gt;
    Her slides were very visual, with pictures and examples that made it easy to follow.&lt;/p&gt;

&lt;p&gt;We Set Up Our Stall – &lt;strong&gt;F-Droid Stall&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%2F3tiguqzc3ldcrjt4htlt.jpeg" 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%2F3tiguqzc3ldcrjt4htlt.jpeg" alt=" " width="800" height="1131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the sessions, it was time for our stall!&lt;br&gt;
    &lt;strong&gt;Our stall name was F-Droid – an open-source app store for Android&lt;/strong&gt;.There were 29+ stalls around us.I explained F-Droid to many students – how it works, why it's safe, and how it supports privacy.&lt;br&gt;
I felt proud to be part of this and was happy that our stall was one among many amazing ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Xonotic Game&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%2Fcl1eiipk3zu2t7q5ucrt.jpeg" 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%2Fcl1eiipk3zu2t7q5ucrt.jpeg" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At one nearby stall, I learned about Xonotic, an open-source first-person shooting game.It runs smoothly even on low-end laptops.&lt;br&gt;
    I had never heard of it before, and I was surprised by how good it looked and performed.&lt;/p&gt;

&lt;p&gt;Lunch Time – &lt;code&gt;Biryani!!&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Syed bro called us for lunch. We went to the canteen and had delicious biryani. It was a great meal and gave us energy for the rest of the day.&lt;/p&gt;

&lt;p&gt;Track 2 – More Talks in the Afternoon&lt;/p&gt;

&lt;p&gt;I joined Track 2 and attended more exciting sessions.&lt;/p&gt;

&lt;p&gt;Talk 1: &lt;strong&gt;Bowrna Prabhakaran&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%2Fyjyhg0sm12cyr0w7thny.jpeg" 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%2Fyjyhg0sm12cyr0w7thny.jpeg" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Topic: &lt;strong&gt;A Day in the Open Source World&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;She shared her daily routine as an open-source contributor working with Tamil text tools.She talked about tools like DictPress, MNPhone, and KNPhone.She explained phonetic hash algorithms, used to help with Tamil typing and search.&lt;br&gt;
    It was inspiring to see how she contributes to the Tamil tech community.&lt;/p&gt;

&lt;p&gt;Talk 2: &lt;strong&gt;Naveen Kumar&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%2Fm9oxz2jn3crkirhm6fy4.jpeg" 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%2Fm9oxz2jn3crkirhm6fy4.jpeg" alt=" " width="720" height="542"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Topic: &lt;strong&gt;Speed It Up – Building Efficient Indexes in MongoDB&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This was a technical but very easy-to-understand session about MongoDB indexing.He showed how to create indexes to make MongoDB faster.Explained the difference between single field and compound indexes.He used real-time examples and explained ESR rules clearly.&lt;br&gt;
    He ended with a quiz and gave a book to the winner.&lt;br&gt;
Even though I didn’t know much about MongoDB, I understood his explanation very well.&lt;/p&gt;

&lt;p&gt;Talk 3: &lt;strong&gt;Hari&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%2Fqcew7cipc2bqgc973rhk.jpeg" 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%2Fqcew7cipc2bqgc973rhk.jpeg" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Topic: &lt;strong&gt;Building Web with Batteries Included&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;He spoke about tools that help build websites quickly.He introduced tools like Builder and Prappy, which make web development easier.&lt;br&gt;
    His presentation was simple and smooth, great for people new to web building.&lt;/p&gt;

&lt;p&gt;Final Talk – &lt;strong&gt;Achnandhi&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%2F0pjkxs6bbe3lwna3tr0r.jpeg" 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%2F0pjkxs6bbe3lwna3tr0r.jpeg" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Topic: &lt;strong&gt;What Does Open Really Mean in Open Source AI?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This was a very thoughtful talk about open-source and artificial intelligence.He said that many AI projects share code but &lt;code&gt;do not share datasets&lt;/code&gt;.This makes the AI “not fully open”.&lt;br&gt;
    He explained how this affects transparency and the freedom to learn and improve AI.&lt;/p&gt;

&lt;p&gt;Group Photo &amp;amp; Final Moments&lt;/p&gt;

&lt;p&gt;After the final session, we all went to take a group photo. I spoke with many people, including &lt;code&gt;Syed Jafer&lt;/code&gt;, &lt;code&gt;Thanga Ayyanar&lt;/code&gt;, &lt;code&gt;Mohamed Salman&lt;/code&gt;, and &lt;code&gt;Mohan Sir&lt;/code&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%2Fu64trop4iitfw2v76ie8.jpeg" 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%2Fu64trop4iitfw2v76ie8.jpeg" alt=" " width="800" height="1066"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We shared our experiences and took a moment to thank &lt;code&gt;Payilagam&lt;/code&gt; and &lt;strong&gt;Muthuramalingam&lt;/strong&gt; Sir for giving us this opportunity.&lt;/p&gt;

&lt;p&gt;TossConf 25 was one of the biggest and most useful events I have attended. I learned many new things in simple Tamil, explored new tools, and gained real inspiration from open-source contributors.&lt;/p&gt;

&lt;p&gt;I look forward to the next event—this time not just as a participant, but maybe as a volunteer and speaker too.&lt;/p&gt;

&lt;p&gt;Thank you for reading my blog!&lt;br&gt;
See you in the next event. Have a great day!!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>networking</category>
      <category>community</category>
      <category>linux</category>
    </item>
    <item>
      <title>My Day 1 TossConf 25: Exploring Open Source with Tamil Linux Community</title>
      <dc:creator>Sathish A</dc:creator>
      <pubDate>Sun, 27 Jul 2025 17:35:47 +0000</pubDate>
      <link>https://forem.com/sathish_226_/my-day-1-tossconf-25-exploring-open-source-with-tamil-linux-community-6a0</link>
      <guid>https://forem.com/sathish_226_/my-day-1-tossconf-25-exploring-open-source-with-tamil-linux-community-6a0</guid>
      <description>&lt;p&gt;Last week on Friday and Saturday, I attended a very special event called TossConf 25, a meetup by the Tamil Linux Community. It was held at St. Joseph’s College, Chennai.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I usually go to tech meetups every Saturday in Chennai. But TossConf 25 was different. It was special for me because we started preparing for it one month before. I was part of the Payilagam team that helped organize the event. We were all excited to take part and contribute.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We went by bus and reached the college on time. Many known faces from the Linux community were there. I met &lt;strong&gt;Syed Jafer&lt;/strong&gt; brother, &lt;strong&gt;Thanga Ayyanar&lt;/strong&gt; brother, &lt;strong&gt;Salman&lt;/strong&gt; brother, and especially &lt;strong&gt;Mohan&lt;/strong&gt; Sir. Many other people also arrived and started talking and networking.&lt;/p&gt;

&lt;p&gt;First Talk by &lt;strong&gt;Senthil Kumar&lt;/strong&gt; Sir:&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%2F7o4hdhxhl4q69fcdmd45.jpeg" 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%2F7o4hdhxhl4q69fcdmd45.jpeg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;He is an expert in &lt;strong&gt;Debian Operating System&lt;/strong&gt;. His topic was all about:&lt;/p&gt;

&lt;p&gt;1.What is Debian OS&lt;br&gt;
2.How Debian started (its history)&lt;br&gt;
3.His personal experience using Debian in daily life&lt;/p&gt;

&lt;p&gt;He explained that Debian is a free and stable Linux-based OS used worldwide. He shared how he started using it, and what makes Debian special. His way of explaining was clear, and it was a great start to the event.&lt;/p&gt;

&lt;p&gt;Second Talk by &lt;strong&gt;Vignesh&lt;/strong&gt; Sir – &lt;strong&gt;SFLC (Software Freedom Law Center)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;His topic was about the legal side of technology. He spoke about:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What SFLC does (they provide legal help for free software users).&lt;/li&gt;
&lt;li&gt;Why it is important to know your digital rights.
&lt;/li&gt;
&lt;li&gt;How to contact SFLC if you face any legal issues related to open-source or tech.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;His speech was very unique and helpful. He explained that even in open-source, we should know about privacy, licenses, and laws. He gave some real examples and told us how SFLC supports people in such cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tea Break &amp;amp; Workshop Time:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After a short tea break, we moved on to the workshops. Two workshops were happening at the same time, but I chose to attend the one on Nix OS.&lt;/p&gt;

&lt;p&gt;Workshop:1 – Nix OS by &lt;strong&gt;Viveganandhan VS&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%2F4qd8qq0oq214q51g2pq9.jpeg" 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%2F4qd8qq0oq214q51g2pq9.jpeg" alt=" " width="800" height="602"&gt;&lt;/a&gt;&lt;br&gt;
This was my first time learning about Nix OS, and the session was amazing.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;He explained that Nix OS is a special Linux system where software installation is very clean and doesn't affect other parts of the system.
&lt;/li&gt;
&lt;li&gt;He used diagrams and pictures to explain how Nix OS works step by step.&lt;/li&gt;
&lt;li&gt;He showed how Nix OS helps to manage packages easily, reduce mistakes, and save time. &lt;/li&gt;
&lt;li&gt;Even though the topic was advanced, he made it easy to understand with real-life examples.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Before this session, I didn’t know anything about Nix OS. But after this workshop, I got a good idea of what it is and why it’s useful. He didn’t have much time, but he tried to cover everything possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lunch Break:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After the workshop, we had a tasty veg lunch at the college canteen. The college team gave us a warm welcome. It felt nice to sit and relax with other participants and talk about what we had learned so far.&lt;/p&gt;

&lt;p&gt;Workshop 2:&lt;strong&gt;Assembly Language Workshop by Mohan&lt;/strong&gt; Sir&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%2Fza2glnrcbu420bqfgepf.jpeg" 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%2Fza2glnrcbu420bqfgepf.jpeg" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This was the session I was waiting for. Even though I reached a bit late, I quickly understood what was going on.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Mohan Sir explained how Assembly Language works and how it’s connected to C programming.
&lt;/li&gt;
&lt;li&gt;He created a simple example program and showed how the machine understands code at a low level.&lt;/li&gt;
&lt;li&gt;He explained each step slowly and clearly, which made it easy for beginners to follow.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It was a very informative and hands-on session. I took full notes and learned how assembly is used with C to control how programs run at the hardware level.&lt;/p&gt;

&lt;p&gt;Day 1 Ends – &lt;strong&gt;Connections &amp;amp; Memories&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%2F2sd6u87dwidmgyuac8f2.jpeg" 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%2F2sd6u87dwidmgyuac8f2.jpeg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the end of the day, I met many new friends, spoke with senior developers, and interacted with Tamil Linux Community members. We had evening snacks, took some photos together, and then returned home by bus.&lt;/p&gt;

&lt;p&gt;It was a wonderful day full of learning, meeting new people, and gaining real knowledge. I enjoyed every moment.But I was even more excited about Day 2, because we were going to put up our own stall and show what we had learned and built!!&lt;/p&gt;

&lt;p&gt;Day 2 -&amp;gt; Continue.....&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ubuntu</category>
      <category>community</category>
      <category>archlinux</category>
    </item>
    <item>
      <title>June Ponal, July Kaatre - The JAVA Tech Meetup!!</title>
      <dc:creator>Sathish A</dc:creator>
      <pubDate>Sat, 12 Jul 2025 19:26:12 +0000</pubDate>
      <link>https://forem.com/sathish_226_/june-ponal-july-kaatre-the-java-tech-meetup-38da</link>
      <guid>https://forem.com/sathish_226_/june-ponal-july-kaatre-the-java-tech-meetup-38da</guid>
      <description>&lt;p&gt;&lt;strong&gt;HI Developers!!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi friends, &lt;strong&gt;Welcome to my blog&lt;/strong&gt;. What we are going to see in this blog is that today we went to &lt;strong&gt;CODE_ON_JVM&lt;/strong&gt; meetup at Yuniq Technologies in TICEL bio park and i am going tell you all about it. This is my second meetup.&lt;/p&gt;

&lt;p&gt;First of all, I have to say that i studied and grew up in &lt;strong&gt;Trichy&lt;/strong&gt;. But within a month of coming to Chennai. I came to know that there is &lt;strong&gt;so much Tech meetups and Hackathons&lt;/strong&gt; going on. Which makes me very specail. I get to know what is going on in Meetup and &lt;strong&gt;I meet a lot of Developers&lt;/strong&gt; and working proffesionals. This is the main prupose of this meetups. I really like going to meetups like this.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Today we left velachery at 9.00 am and reached the meeting place at 10.00. Then first they gave us a NOTE, PEN, and ID CARD. Then we went inside and sat in the first row. Because only then did the presentation become clear. Today there were &lt;strong&gt;two presentations&lt;/strong&gt;. One on &lt;strong&gt;Multi-Threading&lt;/strong&gt; and Two on &lt;strong&gt;Garbage Collection&lt;/strong&gt;. On below of this we will see clearly about the two topic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SESSION 1: Concurrency Multithreading Dasavathaaram:&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%2Fbp5q30e6dxer3pjcuws5.jpg" 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%2Fbp5q30e6dxer3pjcuws5.jpg" alt=" " width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Speaker&lt;/strong&gt; : &lt;code&gt;Jenifer&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt; : Real time example clearly explained how the multi-threading concept works using the character in the film Deasavadhaaram.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Concurrency&lt;/strong&gt; - The ability of a program to execute multiple tasks or process at the same time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Thread&lt;/strong&gt; - A thread is the smallest unit of execution in a program.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Multi-threading&lt;/strong&gt; - Means running two or more threads simultaneously in a program.&lt;br&gt;
&lt;strong&gt;Concepts&lt;/strong&gt;:&lt;br&gt;
1.&lt;code&gt;Krishnaveni Paati&lt;/code&gt; - &lt;strong&gt;Deadlock&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deadlock refers to a situation in multithreaded programming where two or more threads are permonently blocked, each waiting for a resorces that another thread in the group holds.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;2.&lt;code&gt;Fletcher&lt;/code&gt; - &lt;strong&gt;Race Condition&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A race condition in java occurs when multiple threads concurrently access and modify shared data, and the final outcome of the program depends on the timing and interleaving of these threads' execution.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3.&lt;code&gt;Govind Ramaswamy&lt;/code&gt; - &lt;strong&gt;Main Thread&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The main thread in java is the default thread that begins execution automatically when a java virtual maching(JVM) starts a program. It is the primary thread from which all other "child" threads can be created or spawned.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;4.&lt;code&gt;Avatar Singh&lt;/code&gt; - &lt;strong&gt;Daemon Thread&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A daemon thread in java is a low-prority, background thread that provides services to user thread. Its primary characteristics is that it does not prevent the JVM from exiting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;5.&lt;code&gt;Shinghen Narahashi&lt;/code&gt; - &lt;strong&gt;Threadpool&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A thread pool in java is a managed collection of threads that are readily available to excute tasks. Instead of creating a new thread for every task, which incures overhead, a thread pool reuses existing threads.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;6.&lt;code&gt;Vincent Poovaraagan&lt;/code&gt; - &lt;strong&gt;Synchornization&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Synchornization is a mechanism used to control the access of multiple threads to shared resources, ensuring data consistency and preventing race conditions in a multithreaded environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;7.&lt;code&gt;Balram naidu&lt;/code&gt; - &lt;strong&gt;Watchdog&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Daemon threads in java are well-suited for background tasks like log monitoring because they do not prevent the JVM from exiting when all user threads hava completed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;8.&lt;code&gt;George W.Bush&lt;/code&gt; - &lt;strong&gt;Exceptional Thread&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AN 'exception in thread' indicates that an unhandled exception occured within a specific thread, leading to its termination. This message often appears in the console output when a program encounters a runtime error that was not caught and processed by appropriate exception handling mechanisms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;9.&lt;code&gt;Rangaraj Nambi&lt;/code&gt; - &lt;strong&gt;AutomicInteger&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AtomicInteger is a class in java.util.concurrent.atomic package that provides atomic operations (thread-safe) on integers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;10.&lt;code&gt;K.S.Ravikumar&lt;/code&gt; - &lt;strong&gt;Semaphore&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Semaphore is a synchronization aid that controls access to a shared resources by maintaining a set of permits. It is used to limit the number of threads that can concurrently access a particular resources or section of code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have covered it as much as possible, just to make notes. &lt;strong&gt;I don't know much about this&lt;/strong&gt;, but after comparing it, I realize that it would work for this. I hope those who know about mult-threading, it will understand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TEA BREAK&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After everyone had their biscuits, the meetup continued after a short break. During this break, one of my senior came and asked me about the &lt;strong&gt;logical reasoning question&lt;/strong&gt; that i had asked in his interview. It was very good. I will tell you about it in detail in the next blog.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SESSION 2: Connection Game&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is a good game. The way i'm going to about it is that you're given two or three photos and you have to use them to figure out what the name in technology side. This game was really good and eye-catching.&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%2Fx855iet03ctiufmvri8v.jpg" 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%2Fx855iet03ctiufmvri8v.jpg" alt=" " width="591" height="1280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:Above the picture answer is &lt;strong&gt;DataBase&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SESSION 3: Garbage Collection (GC)&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%2Ft2aj4x52r2n0rp3stryp.jpg" 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%2Ft2aj4x52r2n0rp3stryp.jpg" alt=" " width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Speaker&lt;/strong&gt; : &lt;code&gt;Karthik&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt; : What does garbage collection do, what are its benefits, and how does it behave when the version is change.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;1.&lt;code&gt;What is Garbage Collection?&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GC is the automatic process of reclaiming memory used by unreachable objects. Prevents memory leaks and manages memory efficiently.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2.&lt;code&gt;Why is GC Important?&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automatic memory management and Improves application performance. Then avoids memory leaks and crashe its used for essential for scalablity in modern applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3.&lt;code&gt;Types of GC in JAVA?&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1.Serial GC, 2.Parallel GC, 3.CMS, 4.G1 GC, 5.ZGC, 6.Shenandoah&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;4.&lt;code&gt;Benefits of GC in JDK 17?&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Higher throughput, shorter GC pause times and improved scalablity and predictability.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SESSION 3: Quizz Competition&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The end there was a quizz competition. The Questions was all about java. I don't know much about it, but two of my &lt;strong&gt;seniors who came with me came first and won the prize&lt;/strong&gt;. One was named &lt;code&gt;Surya Prabhakar&lt;/code&gt; and the other was &lt;code&gt;Vignesh&lt;/code&gt;. This game helped me learn java better.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SESSION 4: Group Photo Session&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finally, everyone stood together, took a photo. Bought some stickers and talked to new friends. Then we ate lunch at the hotel and left. Today was a great day for me. I would like to express &lt;strong&gt;thanks to Code on JVM Team&lt;/strong&gt; for conduct the superb meetup.&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%2Fo5ehs6xo8gb5iw0cw7yj.jpg" 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%2Fo5ehs6xo8gb5iw0cw7yj.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for reading my blog Friend. See you in the next intresting blog...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep Learning!! Build Connection!!!&lt;/strong&gt; &lt;/p&gt;

</description>
      <category>java</category>
      <category>discuss</category>
      <category>learning</category>
      <category>programming</category>
    </item>
    <item>
      <title>Code, Community, and Coffee: A Day at the Java Meetup</title>
      <dc:creator>Sathish A</dc:creator>
      <pubDate>Sun, 29 Jun 2025 03:11:37 +0000</pubDate>
      <link>https://forem.com/sathish_226_/code-community-and-coffee-a-day-at-the-java-meetup-327i</link>
      <guid>https://forem.com/sathish_226_/code-community-and-coffee-a-day-at-the-java-meetup-327i</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hi Techies! I’ve got something cool to share from my Java meetup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yesterday, I attended a Java-focused meetup &lt;strong&gt;"Code on JVM – Anaivarum Ondraga Code Seivom"&lt;/strong&gt; (which means "Let’s all code together on JVM" in Tamil). The meetup was organized at &lt;strong&gt;Contentstack&lt;/strong&gt;, who generously provided the venue. It was a full-day event filled with tech talks, fun activities, and great networking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.Starting Strong: JAMstack &amp;amp; Strapi&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The event started with a presentation on &lt;strong&gt;Strapi&lt;/strong&gt;, an open-source CMS (Content Management System). The speaker explained how Strapi helps developers easily manage and deliver content to websites and mobile apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why websites become slow?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When a website is built using traditional methods (like PHP + MySQL), every time a user visits a page, the server has to process many tasks – fetch content, apply styling, run logic, etc. This increases &lt;strong&gt;loading time&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;But with &lt;strong&gt;JAMstack&lt;/strong&gt;, we separate these tasks. It uses &lt;strong&gt;JavaScript&lt;/strong&gt; for logic, &lt;strong&gt;APIs&lt;/strong&gt; for data, and &lt;strong&gt;Markup (HTML)&lt;/strong&gt; for design – making the site fast and scalable.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;: Imagine your favorite news app. Instead of building every page from scratch, the data is already available in Strapi as an API. So, the app can just fetch and display the news instantly – fast and smooth!&lt;/p&gt;
&lt;/blockquote&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%2Fwrgge3egzpiwz3wzok38.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%2Fwrgge3egzpiwz3wzok38.png" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.Bug Screening Challenge – Test Your Eyes!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next, we had a fun team activity: the &lt;strong&gt;"Error Screening Challenge."&lt;/strong&gt; Teams were shown a piece of buggy code on screen and had just &lt;strong&gt;45 seconds&lt;/strong&gt; to fix it.&lt;/p&gt;

&lt;p&gt;I was part of a team called &lt;strong&gt;“The JVM Five.”&lt;/strong&gt; We worked together, but honestly, I didn’t perform my best. Still, it was a valuable experience.&lt;/p&gt;

&lt;p&gt;Here’s a &lt;strong&gt;realistic code example&lt;/strong&gt; from that session:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Buggy Code&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Calculator&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kt"&gt;int&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;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&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="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Result: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Problem&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;This code will throw a &lt;strong&gt;divide by zero error&lt;/strong&gt; because we can't divide any number by zero.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Fixed Code&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Calculator&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kt"&gt;int&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;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

        &lt;span class="k"&gt;if&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="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&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="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Result: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Error: Cannot divide by zero!"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;This is how we use &lt;strong&gt;basic conditional checks&lt;/strong&gt; to prevent runtime errors.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;3.Break Time – Snacks, Juice &amp;amp; Small Talks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After the challenge, we had a short break with &lt;strong&gt;juice and snacks&lt;/strong&gt;. A good moment to refresh and network with fellow developers.&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%2F7zbxp4lowhtwqis51fpk.jpg" 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%2F7zbxp4lowhtwqis51fpk.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.From Traditional to Digital – The Power of Data Pipelines&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the managers from &lt;strong&gt;Contentstack&lt;/strong&gt; gave a session on &lt;strong&gt;data pipelines&lt;/strong&gt; and how the digital world has evolved.&lt;/p&gt;

&lt;p&gt;He compared:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Traditional Era&lt;/strong&gt; – Data was stored in files and handled manually.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Middle Era&lt;/strong&gt; – Databases became common, and Excel or Access were used to analyze data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Now (Digital Era)&lt;/strong&gt; – We use real-time tools like Snowflake, BigQuery, Kafka, and dashboards to manage and analyze huge volumes of data automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;: Think about how customer data was collected before – handwritten forms. Today, when you use an app, your location, clicks, searches – everything is tracked and sent to a data pipeline in real-time for analysis. That’s the power of today’s data systems!&lt;/p&gt;
&lt;/blockquote&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%2Fvg761ga7x56pui0uezwa.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%2Fvg761ga7x56pui0uezwa.png" alt=" " width="800" height="533"&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%2Fy61p657xn3nzjn9qhiph.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%2Fy61p657xn3nzjn9qhiph.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5.Java Multi-threading – Tea Shop Waiter Example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The next speaker explained &lt;strong&gt;Java Multithreading&lt;/strong&gt; in a simple and brilliant way using a &lt;strong&gt;tea shop analogy&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;Imagine a tea shop with only &lt;strong&gt;one waiter&lt;/strong&gt;. If five customers come, he serves &lt;strong&gt;one by one&lt;/strong&gt;, so everyone has to wait. This is like &lt;strong&gt;single-threading in Java&lt;/strong&gt; – one task at a time.&lt;/p&gt;

&lt;p&gt;But now, imagine &lt;strong&gt;three waiters&lt;/strong&gt; in the shop. They can take and serve orders &lt;strong&gt;at the same time&lt;/strong&gt;. This is &lt;strong&gt;multithreading&lt;/strong&gt; – Java can run multiple tasks simultaneously using threads.&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%2Fen2jc8qqt30fatlvpavm.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%2Fen2jc8qqt30fatlvpavm.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6.Spring AI and LLM – The Future of Java + AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the most interesting talks was on &lt;strong&gt;Spring AI&lt;/strong&gt; and how it connects with &lt;strong&gt;LLMs (Large Language Models)&lt;/strong&gt; like &lt;code&gt;ChatGPT&lt;/code&gt;, &lt;code&gt;Claude&lt;/code&gt;, and &lt;code&gt;Ollama&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The speaker created a &lt;strong&gt;React + Next.js&lt;/strong&gt; page that showed all three AI tools in one interface and compared their responses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Points&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spring AI helps Java developers use AI tools in their applications.&lt;/li&gt;
&lt;li&gt;LLMs like ChatGPT can generate smart text, answer questions, write code, etc.&lt;/li&gt;
&lt;li&gt;The speaker showed how to integrate these models into apps and when to use which one.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;: He gave an example where a user asks the same question to ChatGPT, Claude, and Ollama – and all three gave different styles of answers. He explained which one is better depending on your project needs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;His speaking &lt;strong&gt;style and demo were impressive&lt;/strong&gt; – he made a complex topic simple and exciting.&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%2Fw8oo2ceeqv4ro87thzad.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%2Fw8oo2ceeqv4ro87thzad.png" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7.Photo Time &amp;amp; Missed PostgreSQL Session&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After all the sessions, we took group &lt;strong&gt;photos&lt;/strong&gt; to celebrate the event and capture the memories.&lt;/p&gt;

&lt;p&gt;We had one more session planned on &lt;strong&gt;PostgreSQL&lt;/strong&gt;, but due to the event running late, we couldn’t attend it. I felt bad missing it, but I’ve made up my mind to definitely attend it &lt;strong&gt;next time&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%2F2yrjv0azvh4h8fziewwt.jpg" 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%2F2yrjv0azvh4h8fziewwt.jpg" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Day:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Even though I didn’t perform well in the coding challenge, I learned a lot from others and enjoyed every moment of the day. Being part of &lt;strong&gt;"The JVM Five"&lt;/strong&gt; team was fun. This day was full of knowledge, fun, and inspiration.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Special thanks to the &lt;strong&gt;Payilagam team&lt;/strong&gt; for sponsoring and encouraging us to participate in this event. Their support means a lot and helps learners like me grow in the tech world.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;See you in the next tech journey, Keep Learing!!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>ai</category>
      <category>learning</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Real-Life Java Loop Scenarios - Thanks to MY Senior Neelakandan...</title>
      <dc:creator>Sathish A</dc:creator>
      <pubDate>Wed, 25 Jun 2025 16:05:08 +0000</pubDate>
      <link>https://forem.com/sathish_226_/real-life-java-loop-scenarios-thanks-to-my-senior-neelakandan-3ii3</link>
      <guid>https://forem.com/sathish_226_/real-life-java-loop-scenarios-thanks-to-my-senior-neelakandan-3ii3</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hello developers!!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Today I practiced Java loops with the help of my senior, &lt;strong&gt;Neelakandan&lt;/strong&gt;, who gave me tricky logic-based questions. These questions were not from textbooks - they were based on &lt;strong&gt;real-time thinking&lt;/strong&gt;. That helped me understand the loop concept very clearly.&lt;/p&gt;

&lt;p&gt;So in this blog, I’m going to share 4 Java loop codes with &lt;strong&gt;real-world scenarios&lt;/strong&gt;, clear logic, and code explanation. Let’s dive in!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Scenario 1: Count Repeated Value (Like Survey Feedback)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Inspired by Neelakandan brother's question to test repetition counting using while loop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world Scenario:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine a survey where users selected different values. We want to &lt;strong&gt;count how many times a particular value (like "70") was selected&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Code&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Main&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;70&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;70&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;70&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;70&lt;/span&gt;&lt;span class="o"&gt;};&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;++;&lt;/span&gt;
            &lt;span class="o"&gt;}&lt;/span&gt;
            &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++;&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="nl"&gt;Output:&lt;/span&gt;
      &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;The loop checks each value in the array. If the number matches the &lt;code&gt;key&lt;/code&gt; (70), it increases the &lt;code&gt;count&lt;/code&gt;. We used a &lt;code&gt;while loop&lt;/code&gt; to scan the array one by one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario 2: Find Big Number in a List (Like Scoreboard Highest Score)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world Scenario&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;You have a list of scores. You want to &lt;strong&gt;identify the highest score&lt;/strong&gt; while the list is being read one by one.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Code&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Main&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;70&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;};&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;big&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;];&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;big&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                &lt;span class="n"&gt;big&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;];&lt;/span&gt;
                &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;big&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
            &lt;span class="o"&gt;}&lt;/span&gt;
            &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++;&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="nl"&gt;Output:&lt;/span&gt;
&lt;span class="mi"&gt;4&lt;/span&gt;
&lt;span class="mi"&gt;30&lt;/span&gt;
&lt;span class="mi"&gt;40&lt;/span&gt;
&lt;span class="mi"&gt;70&lt;/span&gt;
&lt;span class="mi"&gt;100&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;We start with the first number as the biggest. Then, in the loop, we compare and update it if we find a bigger one. It prints whenever a new big value is found.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario 3: Dosa Offer Balance Calculation (Like Cashback System)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This idea was a fun one given by Neelakandan - &lt;strong&gt;a dosa shop balance increasing by offer logic.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You have ₹12 and you go to a dosa shop that gives &lt;strong&gt;50% cashback&lt;/strong&gt; every time you eat. Do this 3 times. What is your final balance?&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Code&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Main&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;balance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;temp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;balance&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
            &lt;span class="n"&gt;balance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;balance&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
            &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++;&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;balance&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="nl"&gt;Output:&lt;/span&gt;
      &lt;span class="mi"&gt;42&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Each time we divide the current balance by 2 and add it back. This repeats 3 times. Perfect use of &lt;code&gt;while loop&lt;/code&gt; to simulate &lt;strong&gt;limited offer cycles&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario 4: Gold Value Cutting Down (Like Daily Price Halving)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simulate a gold value decreasing over time&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Gold value starts at ₹3000. Each day, the value reduces to &lt;strong&gt;half of the previous day's value&lt;/strong&gt;. Do this for 7 days.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Code&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Main&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;temp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
            &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
            &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
            &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++;&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="nl"&gt;Output:&lt;/span&gt;
&lt;span class="mi"&gt;1500&lt;/span&gt;
&lt;span class="mi"&gt;750&lt;/span&gt;
&lt;span class="mi"&gt;375&lt;/span&gt;
&lt;span class="mi"&gt;187&lt;/span&gt;
&lt;span class="mi"&gt;93&lt;/span&gt;
&lt;span class="mi"&gt;46&lt;/span&gt;
&lt;span class="mi"&gt;23&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;This code uses a &lt;code&gt;while loop&lt;/code&gt; to cut the value into half each day. It's a great example of &lt;strong&gt;progressive reduction&lt;/strong&gt; using loops.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Points:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These 4 examples helped me truly understand how powerful loops are when solving real-time problems. &lt;strong&gt;Special thanks to Neelakandan Brother&lt;/strong&gt; for pushing me to think like a developer instead of just writing code.&lt;/p&gt;

&lt;p&gt;Every loop has a story:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;for loop&lt;/code&gt; = fixed steps.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;while loop&lt;/code&gt; = unknown steps.&lt;/li&gt;
&lt;li&gt;Logic = apply your brain , not just your fingers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Every line of code teaches something new!.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>java</category>
      <category>career</category>
      <category>learning</category>
    </item>
    <item>
      <title>React Learning Blog : Props Drilling, useRef, and useContext Explained Simply.</title>
      <dc:creator>Sathish A</dc:creator>
      <pubDate>Tue, 24 Jun 2025 12:51:49 +0000</pubDate>
      <link>https://forem.com/sathish_226_/react-learning-blog-props-drilling-useref-and-usecontext-explained-simply-34ak</link>
      <guid>https://forem.com/sathish_226_/react-learning-blog-props-drilling-useref-and-usecontext-explained-simply-34ak</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hello Everyone!!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Today, I learned some important React concepts. I will share them in simple words so that beginners can also understand easily.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;1.What is Props Drilling?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In React, data is passed from a parent component to a child using &lt;strong&gt;props&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But sometimes, we want to send this data to a deeply nested child component. In that case, the data has to go through many components — even if some components don’t use this data.&lt;br&gt;
This is called &lt;strong&gt;Props Drilling&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example:&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&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;message&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 Sathish!&lt;/span&gt;&lt;span class="dl"&gt;"&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;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Parent&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Parent&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;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Child&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Child&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;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;GrandChild&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;GrandChild&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;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;In this example, &lt;code&gt;message&lt;/code&gt; is passed from App to GrandChild through Parent and Child.&lt;/li&gt;
&lt;li&gt;But Parent and Child are not using this data — they are just passing it.&lt;/li&gt;
&lt;li&gt;This is called &lt;strong&gt;props drilling&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2.Important Hook: useRef&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;useRef&lt;/strong&gt; hook helps us directly access a DOM element like an input box.&lt;br&gt;
We can get the value or focus the input without re-rendering the component.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example:&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useRef&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;UseRefDemo&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;inputElement&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useRef&lt;/span&gt;&lt;span class="p"&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;const&lt;/span&gt; &lt;span class="nx"&gt;showValue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&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;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;inputElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;current&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;inputElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;current&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;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;ref&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;inputElement&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;showValue&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Show Value&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;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;ul&gt;
&lt;li&gt;When you type something in the input box and click the button, the value will be printed in the console.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3.Important Hook: useContext&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;useContext&lt;/strong&gt; hook solves the props drilling problem.&lt;br&gt;
Instead of passing data manually, we can share data between components easily using &lt;strong&gt;Context API&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step-by-Step Example&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Create Context&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;UserContext&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createContext&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;Step 2: Provide Context Value&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;UserContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./UserContext&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Child&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./Child&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&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="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;UserContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Provider&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello Sathish from Context!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Child&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;UserContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Provider&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;App&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;Step 3: Use Context in Child&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;UserContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./UserContext&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Child&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;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;UserContext&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;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;Child&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt; Now &lt;code&gt;Child&lt;/code&gt; gets the value directly — no need to pass props from Parent or App!&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Props Drilling&lt;/strong&gt; — passing data manually from parent to child to grandchild.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;useRef&lt;/strong&gt; — directly access DOM elements (like input box) without re-rendering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;useContext&lt;/strong&gt; — solve props drilling problem by sharing data easily across components.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;code&gt;React&lt;/code&gt;, &lt;code&gt;Props Drilling&lt;/code&gt;, &lt;code&gt;useRef&lt;/code&gt;, &lt;code&gt;useContext&lt;/code&gt;, &lt;code&gt;React Hooks&lt;/code&gt;, &lt;code&gt;Context API&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;React becomes simple when you break it into small pieces — learn step by step, and everything will be clear.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>learning</category>
    </item>
    <item>
      <title>My Frontend Developer Interview Experience at Redisolve Technologies (23.06.2025)</title>
      <dc:creator>Sathish A</dc:creator>
      <pubDate>Mon, 23 Jun 2025 12:43:21 +0000</pubDate>
      <link>https://forem.com/sathish_226_/my-frontend-developer-interview-experience-at-redisolve-technologies-23062025-1730</link>
      <guid>https://forem.com/sathish_226_/my-frontend-developer-interview-experience-at-redisolve-technologies-23062025-1730</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hi Friends!!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;On 23rd June 2025, I attended an interview for the &lt;strong&gt;position of Frontend Developer at Redisolve Technologies&lt;/strong&gt;. It was a good learning experience where I was asked important frontend concepts.&lt;/p&gt;

&lt;p&gt;In this blog, I am going to &lt;strong&gt;explain all the questions asked in detail with simple words and real examples&lt;/strong&gt;, so even beginners can understand and learn easily. Let's dive in! &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;1.How to Optimize Webpage for Performance?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A website must load fast and smoothly for a good user experience.&lt;br&gt;
To optimize performance, we can compress images (like WebP), minify JS/CSS/HTML, and use &lt;strong&gt;lazy loading&lt;/strong&gt; for images and videos. We can also use a &lt;strong&gt;CDN&lt;/strong&gt; to serve content faster and enable browser caching.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;: &lt;strong&gt;Lazy Loading Image&lt;/strong&gt;&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;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"image.webp"&lt;/span&gt; &lt;span class="na"&gt;loading=&lt;/span&gt;&lt;span class="s"&gt;"lazy"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Sample Image"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2.How to Handle CORS in JavaScript?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CORS (Cross-Origin Resource Sharing)&lt;/strong&gt; is a browser rule that blocks access to resources from a different origin (domain) unless the server allows it. If the server allows it, it sends this header:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight make"&gt;&lt;code&gt;&lt;span class="nl"&gt;Access-Control-Allow-Origin&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Example&lt;/code&gt; &lt;strong&gt;Using fetch:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://api.example.com/data&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="na"&gt;mode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cors&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="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&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;3.What is Closure? How does it Work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;closure&lt;/strong&gt; means an inner function can access variables from the outer function even after the outer function has finished running.&lt;br&gt;
Closures are &lt;strong&gt;useful to create private variables or remember previous data&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example:&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;outer&lt;/span&gt;&lt;span class="p"&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;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;inner&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="o"&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;count&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;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;counter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;outer&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nf"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// 1&lt;/span&gt;
&lt;span class="nf"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// 2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4.Client Side Rendering vs Server Side Rendering&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;Client Side Rendering (CSR)&lt;/strong&gt;: JS builds the page in the browser.&lt;br&gt;
-&lt;strong&gt;Server Side Rendering (SSR)&lt;/strong&gt;: Page built on server, ready HTML sent to browser.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CSR – React App using Vite.
SSR – Next.js App that sends ready HTML.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5.How to Manage Version and Collaborate in Git?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Git allows &lt;strong&gt;teams to work on the same project using branches&lt;/strong&gt;.&lt;br&gt;
Developers create branches, commit changes, then merge to main branch.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example:&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; feature-login
git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Added login feature"&lt;/span&gt;
git push origin feature-login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;6.Explain NPM and Yarn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Both are package managers for JavaScript projects.&lt;br&gt;
&lt;strong&gt;npm&lt;/strong&gt; is default with Node.js, while &lt;strong&gt;Yarn&lt;/strong&gt; was made for speed and security.&lt;br&gt;
You can install libraries, update or remove them easily.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&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;react
yarn add react
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;7.How to Debug Frontend Applications?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Debugging finds and fixes errors.&lt;br&gt;
You can use &lt;strong&gt;console.log()&lt;/strong&gt;, browser DevTools (Elements, Network, Sources), and &lt;strong&gt;breakpoints&lt;/strong&gt; to check code flow.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example:&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="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;Debugging here&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;p&gt;&lt;strong&gt;8.Synchronous vs Asynchronous in JS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synchronous&lt;/strong&gt;: Code runs line by line, blocking the next line.&lt;br&gt;
&lt;strong&gt;Asynchronous&lt;/strong&gt;: Runs in background (API calls, setTimeout).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="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;Start&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Async&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="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;End&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;p&gt;&lt;strong&gt;9.How Does Event Loop Work in JavaScript?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The event loop lets JS handle async operations like setTimeout, promises.&lt;br&gt;
Synchronous code runs first; then event loop runs callbacks from queue.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="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="s1"&gt;1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;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="s1"&gt;3&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;p&gt;&lt;strong&gt;10.Explain CSS Positions: relative, absolute, fixed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CSS positions decide how an &lt;strong&gt;element is placed in a page&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;relative&lt;/strong&gt;: Moves based on its original place.&lt;br&gt;
-&lt;strong&gt;absolute&lt;/strong&gt;: Moves based on the nearest ancestor with position set.&lt;br&gt;
-&lt;strong&gt;fixed&lt;/strong&gt;: Stays fixed to the window even during scroll.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.relative&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;relative&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.absolute&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.fixed&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;fixed&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nl"&gt;bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nl"&gt;right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&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;&lt;strong&gt;11.What is Media Query?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Media queries &lt;strong&gt;make your website responsive&lt;/strong&gt; — looking good on all devices (mobiles, tablets, desktops).&lt;br&gt;
It changes styles based on screen width or height.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example:&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@media&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;600px&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;lightblue&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;&lt;strong&gt;12.What is SPA?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SPA (Single Page Application)&lt;/strong&gt; loads one HTML file and updates content &lt;strong&gt;using JavaScript without refreshing the entire page&lt;/strong&gt;.&lt;br&gt;
React, Angular, Vue are frameworks for SPA.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;: Gmail, Facebook — no page reloads when you switch tabs or open mails.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;13.Build Tools: Webpack and Vite&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Build tools bundle JS, CSS into fewer files to load faster.&lt;br&gt;
&lt;strong&gt;Webpack&lt;/strong&gt; is older, heavy but powerful; &lt;strong&gt;Vite&lt;/strong&gt; is faster with modern features.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Vite Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm create vite@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;14.Difference Between Development and Production&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development&lt;/strong&gt;: Unminified code, full error logs, easy debugging.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Production&lt;/strong&gt;: Minified, optimized, fast loading, errors hidden from users.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev   &lt;span class="c"&gt;# Development Mode&lt;/span&gt;
npm run build &lt;span class="c"&gt;# Production Mode&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;15.Difference Between ID and Class in HTML&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;ID&lt;/strong&gt;: Unique, used once (#id).&lt;br&gt;
-&lt;strong&gt;Class&lt;/strong&gt;: Can be reused for multiple elements (.class).Example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example:&lt;/code&gt;&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;"header"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"box"&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;&lt;strong&gt;16.How to Use Box Model in CSS?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The box model shows how content, padding, border, and margin create space around elements.&lt;br&gt;
Adjusting padding/margin controls spacing and layout.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="nx"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="nx"&gt;px&lt;/span&gt; &lt;span class="nx"&gt;solid&lt;/span&gt; &lt;span class="nx"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="nx"&gt;px&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;&lt;strong&gt;17.Difference: Arrow Function vs Traditional Function&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Arrow functions are short and &lt;strong&gt;do not have their own &lt;code&gt;this&lt;/code&gt;&lt;/strong&gt;.&lt;br&gt;
Traditional functions &lt;strong&gt;have their own &lt;code&gt;this&lt;/code&gt; and can be hoisted&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="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="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;greetOld&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;Hello&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;p&gt;&lt;strong&gt;18.Explain em, rem, px in CSS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;px&lt;/strong&gt;: Fixed size.&lt;br&gt;
-&lt;strong&gt;em&lt;/strong&gt;: Relative to parent element’s font size.&lt;br&gt;
-&lt;strong&gt;rem&lt;/strong&gt;: Relative to root (html) font size.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;html&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;font&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="nx"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;font&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="nx"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="cm"&gt;/* 32px */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;19.What are Template Literals?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Template literals &lt;strong&gt;help write multi-line strings and use variables easily&lt;/strong&gt;.&lt;br&gt;
Use backticks &lt;strong&gt;()&lt;/strong&gt; and &lt;strong&gt;${}&lt;/strong&gt; to embed expressions.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Sathish&lt;/span&gt;&lt;span class="dl"&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="s2"&gt;`Welcome, &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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;20.var, let, const in JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;var&lt;/strong&gt;: Function-scoped, can redeclare.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;let/const&lt;/strong&gt;: Block-scoped; const can’t be reassigned.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;x&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&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;z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;[(&lt;a href="https://redisolve.com/)" rel="noopener noreferrer"&gt;https://redisolve.com/)&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The End!!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This interview helped me revise important frontend concepts like closures, event loop, git, CSS box model, and build tools. These are must-know topics for every frontend developer. I suggest every learner practice these deeply with examples to build strong confidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning never exhausts the mind. Every interview is a new lesson!!&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>career</category>
      <category>learning</category>
    </item>
    <item>
      <title>My First Hackathon Experience: Building a GitHub Workflow Tool at ThoughtWorks</title>
      <dc:creator>Sathish A</dc:creator>
      <pubDate>Sun, 22 Jun 2025 07:15:21 +0000</pubDate>
      <link>https://forem.com/sathish_226_/my-first-hackathon-experience-building-a-github-workflow-tool-at-thoughtworks-520d</link>
      <guid>https://forem.com/sathish_226_/my-first-hackathon-experience-building-a-github-workflow-tool-at-thoughtworks-520d</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hi Developers!!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Yesterday was a very special day for me. I attended &lt;strong&gt;my first hackathon&lt;/strong&gt;. I am a fresher, so everything was new and exciting.&lt;/p&gt;

&lt;p&gt;This hackathon was organized by &lt;strong&gt;ThoughtWorks Technologies&lt;/strong&gt;. I went there with my full team, but later I joined a different team. I did not know anyone before, but everyone was friendly and helpful.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;In my new team, there were four people&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;1.&lt;strong&gt;Manikandan&lt;/strong&gt; - A seasoned &lt;code&gt;full-stack developer&lt;/code&gt; with impressive problem-solving skills&lt;br&gt;
2.&lt;strong&gt;Mithun&lt;/strong&gt; - A &lt;code&gt;senior programmer&lt;/code&gt; with years of industry experience&lt;br&gt;
3.&lt;strong&gt;Arun&lt;/strong&gt; - A fellow &lt;code&gt;fresher&lt;/code&gt; who, like me, was eager to learn and contribute&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Our Project&lt;/strong&gt;: &lt;code&gt;GitHub Workflow Management System&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem We Solved&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers often &lt;strong&gt;struggle with tracking bugs and managing task&lt;/strong&gt; assignments&lt;/li&gt;
&lt;li&gt;Team leads need a &lt;strong&gt;centralized system to raise tickets&lt;/strong&gt; and monitor progress&lt;/li&gt;
&lt;li&gt;Integration between code commits and project management is often fragmented&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Our Solution&lt;/strong&gt;:&lt;br&gt;
We built a comprehensive workflow management tool with the following features:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.User Authentication System:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Secure login functionality&lt;/li&gt;
&lt;li&gt;Role-based access (Team Lead, Developer, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2.Dashboard Interface:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clean, intuitive UI displaying project overview&lt;/li&gt;
&lt;li&gt;Latest commit messages from connected repositories&lt;/li&gt;
&lt;li&gt;Real-time status updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3.Ticket Management System&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Team leads can create and assign tickets for bugs/features&lt;/li&gt;
&lt;li&gt;Developers can update status and add comments&lt;/li&gt;
&lt;li&gt;Priority-based task organization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4.GitHub Integration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Direct connection to repositories&lt;/li&gt;
&lt;li&gt;Commit message tracking&lt;/li&gt;
&lt;li&gt;Branch management visibility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application functioned similar to popular tools like Trello but with deeper GitHub integration and specific focus on development workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical Implementation:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack Used&lt;/strong&gt;:&lt;br&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: &lt;code&gt;React.js&lt;/code&gt; with modern hooks&lt;br&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: &lt;code&gt;Node.js&lt;/code&gt; with Express&lt;br&gt;
&lt;strong&gt;Database&lt;/strong&gt;: &lt;code&gt;MongoDB&lt;/code&gt; for flexible data storage&lt;br&gt;
&lt;strong&gt;Integration&lt;/strong&gt;: &lt;code&gt;GitHub API&lt;/code&gt; for repository connections&lt;br&gt;
&lt;strong&gt;Styling&lt;/strong&gt;: &lt;code&gt;CSS3&lt;/code&gt; with responsive design principles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitFlow Tool:&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%2Foru0v5dhb9io75c0w9lv.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%2Foru0v5dhb9io75c0w9lv.png" alt=" " width="800" height="1200"&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%2Flaxbsetd5yepgum00yh9.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%2Flaxbsetd5yepgum00yh9.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Learned from This Hackathon?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to work in a new team with unknown people&lt;/li&gt;
&lt;li&gt;How senior developers solve real coding problems&lt;/li&gt;
&lt;li&gt;Basics of &lt;strong&gt;React, Node.js, and MongoDB&lt;/strong&gt; in real projects&lt;/li&gt;
&lt;li&gt;How to fetch commit messages from GitHub using APIs&lt;/li&gt;
&lt;li&gt;How to handle the task flow like raising and assigning bugs (Trello model)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also learned the importance of teamwork, communication, and project management during a hackathon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;About the Day:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It was a &lt;strong&gt;wonderful day full of learning&lt;/strong&gt;. I met new friends, learned new tech tools, and understood how real developers build applications.&lt;br&gt;
I want to &lt;strong&gt;join more hackathons&lt;/strong&gt; in the future and improve my coding and problem-solving skills.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special Thanks To&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;A heartfelt thanks to the &lt;strong&gt;Payilagam team&lt;/strong&gt; for their valuable &lt;strong&gt;guidance and support&lt;/strong&gt; in helping us participate in the hackathon.Then &lt;strong&gt;especially Manikandan Brother&lt;/strong&gt;, who explained many things to me as a fresher.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn, Build, Collaborate - the hackathon way!!&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%2F7jkih3aky3n3jh9zzlpk.jpg" 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%2F7jkih3aky3n3jh9zzlpk.jpg" alt=" " width="800" height="600"&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%2F6jnff9miknrfzj7kw0j7.jpg" 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%2F6jnff9miknrfzj7kw0j7.jpg" alt=" " width="800" height="369"&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%2F8f1a0v5xpbe7yn7889h6.jpg" 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%2F8f1a0v5xpbe7yn7889h6.jpg" alt=" " width="591" height="1280"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>javascript</category>
      <category>react</category>
      <category>node</category>
    </item>
    <item>
      <title>My React Learning - Day [XI] (Component Drill, useEffect, CSS, JSON Handling)</title>
      <dc:creator>Sathish A</dc:creator>
      <pubDate>Fri, 20 Jun 2025 16:47:02 +0000</pubDate>
      <link>https://forem.com/sathish_226_/my-react-learning-day-xi-component-drill-useeffect-css-json-handling-m5i</link>
      <guid>https://forem.com/sathish_226_/my-react-learning-day-xi-component-drill-useeffect-css-json-handling-m5i</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hello Coders!!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Today I learned some very useful and important concepts in React which are helpful to build real projects easily. Let me share them in simple words.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;1.Component Drilling&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In React, when I want to pass data from &lt;strong&gt;Parent to Child components&lt;/strong&gt;, we use &lt;strong&gt;props&lt;/strong&gt;.&lt;br&gt;
But when data needs to go deeply (Parent → Child → Grandchild...), this process is called &lt;strong&gt;Component Drilling&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Parent&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;msg&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 from Parent&lt;/span&gt;&lt;span class="dl"&gt;"&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;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Child&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;msg&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Child&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;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;GrandChild&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;GrandChild&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;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Data passed from Parent → Child → Grandchild.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2.useEffect Hook&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I also learned about &lt;code&gt;useEffect&lt;/code&gt;. It runs side-effects like fetching data, changing the title, etc.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useEffect&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Demo&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;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;Component Mounted&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="p"&gt;[]);&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;useEffect Example&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Here, the message runs &lt;strong&gt;only once&lt;/strong&gt; when the component loads.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3.Writing CSS in React&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I understood 3 ways to add CSS:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.Inline CSS&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;red&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="na"&gt;style&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hello CSS&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2.External CSS file:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./App.css&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;p&gt;&lt;strong&gt;3.CSS Modules (for component-level styling):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;styles&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./App.module.css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;styles&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;heading&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;CSS Module&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4.Creating &amp;amp; Connecting JSON File&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I learned how to create a simple JSON file inside React project:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;data.json&lt;/code&gt;:&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Sathish"&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"React"&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="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;How to use JSON in a component:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./data.json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;DataComponent&lt;/span&gt;&lt;span class="p"&gt;()&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="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;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;ul&gt;
&lt;li&gt;JSON data shown in the component properly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5.Component - Connected to JSON - Output&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In today's class example — we created &lt;strong&gt;only one component&lt;/strong&gt;, imported &lt;strong&gt;JSON file&lt;/strong&gt;, used &lt;code&gt;map()&lt;/code&gt; &lt;strong&gt;function&lt;/strong&gt; to display data on screen. Simple and clear output. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;End of the Day:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today's session helped me understand how &lt;strong&gt;data moves between components&lt;/strong&gt;, how to handle &lt;strong&gt;side-effects using useEffect&lt;/strong&gt;, how to &lt;strong&gt;write CSS in React&lt;/strong&gt;, and how to &lt;strong&gt;connect JSON files&lt;/strong&gt; to React components — these are real project basics. I feel more confident to build small apps now!!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep calm and code on...!!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>javascript</category>
      <category>react</category>
      <category>learning</category>
    </item>
    <item>
      <title>React Learning Blog- Mini Project: Bulb On/Off Toggle App using `useState`</title>
      <dc:creator>Sathish A</dc:creator>
      <pubDate>Thu, 19 Jun 2025 15:25:23 +0000</pubDate>
      <link>https://forem.com/sathish_226_/react-learning-blog-mini-project-bulb-onoff-toggle-app-using-usestate-1chc</link>
      <guid>https://forem.com/sathish_226_/react-learning-blog-mini-project-bulb-onoff-toggle-app-using-usestate-1chc</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Today's Learning&lt;/strong&gt;&lt;br&gt;
In today’s React session, I practiced how to &lt;strong&gt;dynamically change UI based on state&lt;/strong&gt; using the &lt;code&gt;useState&lt;/code&gt; Hook. To make this concept clear, I built a small but interesting mini-project – &lt;strong&gt;A Bulb On/Off Toggle App&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Mini Project Explanation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.&lt;strong&gt;Project Name&lt;/strong&gt;: Bulb On/Off Toggle&lt;br&gt;
2.&lt;strong&gt;Main Concepts Used&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React Functional Component&lt;/li&gt;
&lt;li&gt;useState Hook&lt;/li&gt;
&lt;li&gt;Conditional Rendering&lt;/li&gt;
&lt;li&gt;onClick Event Handling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key Code Breakdown&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Bulb&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="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;bulbOnOff&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setBulbOnOff&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&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="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;img&lt;/span&gt; 
        &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;
          &lt;span class="nx"&gt;bulbOnOff&lt;/span&gt;
            &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://toppng.com/uploads/preview/light-bulb-on-off-png-115539402943y50vxr5yi.png&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;https://toppng.com/uploads/preview/light-bulb-on-off-png-11553940171g57vp25a8k.png&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setBulbOnOff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;bulbOnOff&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;bulbOnOff&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;On&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;Off&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;Bulb&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;Topics Covered Today&lt;/strong&gt;&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;Topic&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;useState&lt;/code&gt; Hook&lt;/td&gt;
&lt;td&gt;To manage the bulb's state (On/Off).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;State Initialization&lt;/td&gt;
&lt;td&gt;&lt;code&gt;const [bulbOnOff, setBulbOnOff] = useState(true)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Event Handling&lt;/td&gt;
&lt;td&gt;Button &lt;code&gt;onClick&lt;/code&gt; to toggle bulb state.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Conditional Rendering&lt;/td&gt;
&lt;td&gt;Change the bulb image and button text based on state.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;What I Learned Today&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to use the &lt;code&gt;useState&lt;/code&gt; Hook to control the component's data.&lt;/li&gt;
&lt;li&gt;How to change an image dynamically using &lt;strong&gt;conditional rendering&lt;/strong&gt; (&lt;code&gt;? :&lt;/code&gt; operator).&lt;/li&gt;
&lt;li&gt;Handling user interaction via &lt;code&gt;onClick&lt;/code&gt; event.&lt;/li&gt;
&lt;li&gt;How to change button text based on state.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;My Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This small project helped me clearly understand &lt;strong&gt;state manipulation and dynamic rendering in React&lt;/strong&gt;. It made me feel confident in using the &lt;code&gt;useState&lt;/code&gt; Hook for real UI changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Every bug is a hidden lesson..."&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>beginners</category>
    </item>
    <item>
      <title>My Node.js - First Interview Experience &amp; Important Concepts!</title>
      <dc:creator>Sathish A</dc:creator>
      <pubDate>Wed, 18 Jun 2025 17:45:01 +0000</pubDate>
      <link>https://forem.com/sathish_226_/my-nodejs-first-interview-experience-important-concepts-48j9</link>
      <guid>https://forem.com/sathish_226_/my-nodejs-first-interview-experience-important-concepts-48j9</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hello, friends!!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Today I attended my &lt;strong&gt;first Node.js interview round&lt;/strong&gt; as part of my backend development journey. Since Node.js is closely related to &lt;strong&gt;JavaScript&lt;/strong&gt;, most of the interview questions covered both JavaScript and Node.js basics.&lt;/p&gt;

&lt;p&gt;This interview made me realize how important it is to understand &lt;strong&gt;core concepts&lt;/strong&gt; before diving deeper into backend development.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let me share what I learned and some &lt;strong&gt;important topics with short explanations!!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JavaScript &amp;amp; Node.js Topics from the Interview:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.Function Declaration vs Function Expression:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Declaration&lt;/strong&gt;: You can call the function before it's defined (hoisting).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expression&lt;/strong&gt;: Stored in a variable; cannot call before definition.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2.setTimeout() in JavaScript:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Executes a function &lt;strong&gt;after a delay&lt;/strong&gt; (in milliseconds).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;Example:&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="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;Hello after 2 seconds&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="mi"&gt;2000&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;3.Selecting Elements from DOM:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="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="s1"&gt;id&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&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;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.class&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;p&gt;&lt;strong&gt;4.Async/Await in JS:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Makes &lt;strong&gt;asynchronous code&lt;/strong&gt; look synchronous and clean.&lt;/li&gt;
&lt;li&gt;Used with Promises.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5.Callback Function:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A function passed as an argument to another function and executed later.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6.What is Node.js?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Runtime environment&lt;/strong&gt; to run JS outside the browser.&lt;/li&gt;
&lt;li&gt;Uses Google’s V8 Engine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;7.Why Node.js uses V8 Engine?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;V8 makes JS execution &lt;strong&gt;fast and efficient&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;8.Why Node.js is Single-threaded?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Handles tasks using &lt;code&gt;Event Loop&lt;/code&gt; and &lt;code&gt;Non-blocking I/O&lt;/code&gt;, so no need for multiple threads.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;9.Can you access DOM in Node.js?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;❌ No, because Node.js runs on the server, not in the browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10.Simple HTTP Server in Node.js:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;http&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;http&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createServer&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hello World&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;end&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3000&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;11.Synchronous vs Asynchronous Functions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Synchronous&lt;/code&gt;: Blocks execution.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Asynchronous&lt;/code&gt;: Does not block execution.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;12.HTTP Methods:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GET, POST, PUT, DELETE.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;13.‘this’ Keyword in JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refers to the &lt;strong&gt;current object&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In global scope: &lt;code&gt;window&lt;/code&gt; object (browser).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;14.undefined vs null&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;undefined&lt;/code&gt;: Variable declared but not assigned.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;null&lt;/code&gt;: Assigned as "no value".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;15.== vs ===&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;==&lt;/code&gt; compares only value (type conversion).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;===&lt;/code&gt; compares value + type (strict).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;16.Truthy &amp;amp; Falsy Values:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Falsy&lt;/code&gt;: 0, "", null, undefined, NaN, false.&lt;/li&gt;
&lt;li&gt;Everything else is &lt;code&gt;truthy&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;17.Global vs Local Scope&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Global&lt;/code&gt;: Accessible everywhere.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Local&lt;/code&gt;: Accessible only inside functions or blocks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;18.Startup vs Big Companies - My Preference:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.Startups = &lt;code&gt;Learning&lt;/code&gt;, &lt;code&gt;Growth&lt;/code&gt;, &lt;code&gt;Multi-tasking&lt;/code&gt;&lt;br&gt;
2.Big Companies = &lt;code&gt;Stability&lt;/code&gt;, &lt;code&gt;Process&lt;/code&gt;, &lt;code&gt;Big Teams&lt;/code&gt;&lt;br&gt;
3.For now, I prefer startups to learn and grow fast! &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%2Fmpd8twa7hdwjg7hlc2s9.jpg" 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%2Fmpd8twa7hdwjg7hlc2s9.jpg" alt=" " width="800" height="886"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Takeaway for the Day&lt;/strong&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Strong JavaScript knowledge is the foundation for learning Node.js. I’ll keep practicing small tasks daily!"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;Learn!!&lt;/code&gt;. &lt;code&gt;Build!!&lt;/code&gt;. &lt;code&gt;Repeat!!...&lt;/code&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>node</category>
      <category>career</category>
    </item>
  </channel>
</rss>
