<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kanishka Shrivastava</title>
    <description>The latest articles on DEV Community by Kanishka Shrivastava (@kanishkashr).</description>
    <link>https://dev.to/kanishkashr</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%2F3773774%2F0d52e075-9296-4c61-8616-c363094d7b90.png</url>
      <title>DEV Community: Kanishka Shrivastava</title>
      <link>https://dev.to/kanishkashr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kanishkashr"/>
    <language>en</language>
    <item>
      <title>#beginners #sql #machinelearning #100daysofcode</title>
      <dc:creator>Kanishka Shrivastava</dc:creator>
      <pubDate>Wed, 15 Apr 2026 15:21:04 +0000</pubDate>
      <link>https://dev.to/kanishkashr/beginnerssqlmachinelearning100daysofcode-21d5</link>
      <guid>https://dev.to/kanishkashr/beginnerssqlmachinelearning100daysofcode-21d5</guid>
      <description>&lt;p&gt;Apr 15, 2026 · Day 4 of 30&lt;/p&gt;

&lt;p&gt;Day 4: I wrote my first SQL queries today and suddenly data feels a lot more accessible&lt;/p&gt;

&lt;p&gt;I took a small detour from Python today but an important one. I wrote my very first SQL queries.&lt;/p&gt;

&lt;p&gt;I know what you might be thinking: isn't this an ML journey? Yes. But data for ML has to come from somewhere. And a lot of the time, that somewhere is a database you query with SQL. So this felt like the right moment to start.&lt;/p&gt;

&lt;p&gt;Starting from zero&lt;/p&gt;

&lt;p&gt;I had never written a SQL query before today. Not even a simple one. I knew the word "database" and that SQL was how you talked to it that was the full extent of my knowledge going in.&lt;/p&gt;

&lt;p&gt;I started with the three most fundamental keywords: SELECT, FROM, and WHERE. And honestly? Within about 20 minutes, I felt like I could actually read data.&lt;/p&gt;

&lt;p&gt;SELECT name, age FROM users WHERE age &amp;gt; 25;&lt;/p&gt;

&lt;p&gt;That query just clicked immediately. You're saying: give me the name and age columns, from the users table, but only rows where age is greater than 25. It reads almost like plain English.&lt;/p&gt;

&lt;p&gt;The moment it connected to ML&lt;/p&gt;

&lt;p&gt;I kept thinking back to the Titanic dataset from Day 3. What if that data lived in a database instead of a CSV? I could query exactly the rows I needed say, only passengers in third class before even loading them into Pandas.&lt;/p&gt;

&lt;p&gt;SQL isn't separate from ML. It's often the first step getting the right data out before you do anything with it. That realisation made today feel very worth it.&lt;br&gt;
What the three keywords actually do&lt;/p&gt;

&lt;p&gt;SELECT tells the database which columns you want. FROM tells it which table to look in. WHERE filters the rows based on a condition. Together, those three cover a huge amount of real-world data work.&lt;/p&gt;

&lt;p&gt;SELECT survived, pclass, age FROM titanic WHERE pclass = 1;&lt;/p&gt;

&lt;p&gt;I wrote that imagining the Titanic data in a database. First class passengers only. Three columns. Clean and specific. That's the power of SQL you don't have to load everything and filter in Python. You ask for exactly what you need.&lt;/p&gt;

&lt;p&gt;What's next&lt;/p&gt;

&lt;p&gt;I want to go deeper GROUP BY, COUNT, joins between tables. But today was about getting comfortable with the basics, and I feel good about where I landed.&lt;/p&gt;

&lt;p&gt;Four days in and the pieces are starting to connect in ways I didn't expect when I started.&lt;/p&gt;

&lt;p&gt;QUESTION FOR YOU&lt;/p&gt;

&lt;p&gt;How important has SQL been in your ML or data work day to day? Is it something I should go deeper on early, or just know the basics and move on?&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>database</category>
      <category>machinelearning</category>
      <category>sql</category>
    </item>
    <item>
      <title>#beginners #machinelearning #pandas #kaggle</title>
      <dc:creator>Kanishka Shrivastava</dc:creator>
      <pubDate>Tue, 14 Apr 2026 13:20:27 +0000</pubDate>
      <link>https://dev.to/kanishkashr/beginnersmachinelearningpandaskaggle-4om0</link>
      <guid>https://dev.to/kanishkashr/beginnersmachinelearningpandaskaggle-4om0</guid>
      <description>&lt;p&gt;Apr 14, 2026 · Day 3 of 30&lt;/p&gt;

&lt;p&gt;Day 3: I explored the Titanic and Iris datasets the code was easy, understanding the data was not&lt;/p&gt;

&lt;p&gt;Today I worked with real datasets for the first time the Titanic and Iris datasets from Kaggle. Loading them, exploring them, filtering columns, even making a few basic visualizations. The tools worked. Pandas did what it was supposed to do.&lt;/p&gt;

&lt;p&gt;But somewhere in the middle I hit something I didn't expect: I had no idea what I was actually looking at.&lt;/p&gt;

&lt;p&gt;Two very different datasets&lt;/p&gt;

&lt;p&gt;Titanic&lt;/p&gt;

&lt;p&gt;Passenger data age, class, fare, survived or not. Real people, real event. Messy, missing values everywhere.&lt;/p&gt;

&lt;p&gt;Iris&lt;/p&gt;

&lt;p&gt;Flower measurements petal length, sepal width, species. Clean, tidy, almost too perfect. A classic beginner dataset for a reason.&lt;/p&gt;

&lt;p&gt;What I did&lt;/p&gt;

&lt;p&gt;I started with the basics — loading the CSV, running .head(), .info(), and .describe() to get a feel for the shape of the data. Then I filtered some columns, looked at value counts, and made a couple of simple plots.&lt;/p&gt;

&lt;p&gt;import pandas as pd df = pd.read_csv("titanic.csv") print(df.head()) print(df.describe()) print(df["Survived"].value_counts())&lt;/p&gt;

&lt;p&gt;Technically, all of this worked fine. The output printed, the charts showed up. But then I stopped and asked myself okay, what does this actually tell me?&lt;/p&gt;

&lt;p&gt;The part nobody warns you about&lt;/p&gt;

&lt;p&gt;I could see that the Pclass column had values 1, 2, and 3. I had to look up that those are ticket classes first, second, third. I could see SibSp and had no idea what it meant without reading the documentation (siblings and spouses on board, apparently).&lt;/p&gt;

&lt;p&gt;The code was easy. Understanding what the numbers represent and why it matters for prediction that was the actual challenge of today.&lt;/p&gt;

&lt;p&gt;With Iris it was simpler flowers, measurements, species. That clicked faster. But Titanic taught me something important: before you model anything, you have to understand the story the data is trying to tell.&lt;/p&gt;

&lt;p&gt;What I'm taking into Day 4&lt;/p&gt;

&lt;p&gt;I want to slow down on Titanic a bit more specifically look at which columns might actually predict survival, and why. Not training a model yet. Just thinking about the data like a human before handing it to a machine.&lt;/p&gt;

&lt;p&gt;I think that mindset shift from "run the code" to "understand the data" might be one of the most important early lessons in ML.&lt;/p&gt;

&lt;p&gt;QUESTION FOR YOU&lt;/p&gt;

&lt;p&gt;When you first worked with the Titanic dataset what was the column or insight that made you go "oh, this is what ML is actually about"?&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>datascience</category>
      <category>devjournal</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>#beginners #machinelearning #numpy #pandas</title>
      <dc:creator>Kanishka Shrivastava</dc:creator>
      <pubDate>Mon, 13 Apr 2026 15:32:47 +0000</pubDate>
      <link>https://dev.to/kanishkashr/beginnersmachinelearningnumpypandas-5c7c</link>
      <guid>https://dev.to/kanishkashr/beginnersmachinelearningnumpypandas-5c7c</guid>
      <description>&lt;p&gt;Apr 13, 2026 · Day 2 of 30&lt;/p&gt;

&lt;p&gt;Day 2: I met NumPy and Pandas today here's what actually made sense&lt;/p&gt;

&lt;p&gt;Yesterday I committed to learning AI/ML in public. Today I did the first real thing I opened Python and started looking at the two libraries everyone mentions when talking about ML: NumPy and Pandas.&lt;/p&gt;

&lt;p&gt;No model training yet. No fancy algorithms. Just getting comfortable with the tools that sit underneath all of it.&lt;/p&gt;

&lt;p&gt;Why these two first?&lt;/p&gt;

&lt;p&gt;From everything I've read, you can't really do ML without understanding how data is stored and manipulated. NumPy and Pandas are how that happens in Python. So before I touch any ML library, I want these to feel natural.&lt;/p&gt;

&lt;p&gt;NumPy&lt;/p&gt;

&lt;p&gt;Works with numbers at speed. Think of it as Python lists but way faster and built for math operations on large datasets.&lt;/p&gt;

&lt;p&gt;Pandas&lt;/p&gt;

&lt;p&gt;Works with tables of data. Like Excel but in Python rows, columns, filters, and a lot more control.&lt;/p&gt;

&lt;p&gt;What I actually tried&lt;/p&gt;

&lt;p&gt;I started with NumPy arrays creating them, doing basic operations, understanding why they exist when Python already has lists. The speed and simplicity of doing math on an entire array at once was the thing that clicked for me:&lt;/p&gt;

&lt;p&gt;import numpy as np arr = np.array([10, 20, 30, 40, 50]) print(arr * 2) # Output: [20 40 60 80 100]&lt;/p&gt;

&lt;p&gt;With regular Python you'd need a loop for that. With NumPy it's one line. That's when I understood why ML uses it you're constantly doing operations on thousands of numbers at once.&lt;/p&gt;

&lt;p&gt;Then I moved to Pandas. I created a small DataFrame just to see how it feels:&lt;/p&gt;

&lt;p&gt;import pandas as pd data = {"name": ["Alice", "Bob", "Kanishka"], "score": [88, 92, 79]} df = pd.DataFrame(data) print(df)&lt;/p&gt;

&lt;p&gt;The moment the table printed cleanly in my terminal rows, columns, index — something about it felt satisfying. This is what real data will look like.&lt;br&gt;
What still confuses me&lt;/p&gt;

&lt;p&gt;Pandas has a lot of methods. A lot. I kept seeing things like .iloc, .loc, .groupby and I didn't go deep on any of them yet. That's tomorrow's problem. Today I just wanted to get comfortable with the shape of things.&lt;/p&gt;

&lt;p&gt;One thing I'd tell Day 1 me&lt;/p&gt;

&lt;p&gt;Don't try to memorise the methods. Just run the code, see the output, understand what changed. The rest comes with repetition.&lt;/p&gt;

&lt;p&gt;QUESTION FOR YOU&lt;/p&gt;

&lt;p&gt;Is there a Pandas or NumPy trick you wish someone had shown you early on? I'm at the very beginning genuinely curious what matters most.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>devjournal</category>
      <category>machinelearning</category>
      <category>python</category>
    </item>
    <item>
      <title>#beginners #machinelearning #100daysofcode #journey</title>
      <dc:creator>Kanishka Shrivastava</dc:creator>
      <pubDate>Sun, 12 Apr 2026 12:14:25 +0000</pubDate>
      <link>https://dev.to/kanishkashr/beginnersmachinelearning100daysofcodejourney-4ob3</link>
      <guid>https://dev.to/kanishkashr/beginnersmachinelearning100daysofcodejourney-4ob3</guid>
      <description>&lt;p&gt;Apr 12, 2026 · Day 1 of 30&lt;/p&gt;

&lt;p&gt;Day 1: I'm diving into AI/ML no roadmap, just curiosity and daily commitment&lt;/p&gt;

&lt;p&gt;AI is everywhere right now in the tools I use, the products I read about, the conversations I have with other developers. And I realised I want to go deeper than just using it. I want to understand how it actually works.&lt;/p&gt;

&lt;p&gt;So today is Day 1. I'm starting my AI/ML learning journey in public, one post at a time.&lt;/p&gt;

&lt;p&gt;Where I'm starting from&lt;/p&gt;

&lt;p&gt;I know Python basics enough to be comfortable, not enough to feel like an expert. I've never trained a model or worked with real data in any serious way. That's exactly the starting point I want to document, because I think a lot of people are here too.&lt;/p&gt;

&lt;p&gt;The plan: 15 minutes of learning every day. One honest post about what I explored, what I understood, and what still confuses me. 30 days, no skipping.&lt;br&gt;
Why I'm doing this publicly&lt;/p&gt;

&lt;p&gt;Writing forces me to actually understand something rather than just skim it. And sharing it means someone can point out when I've got it wrong which is honestly just as valuable as getting it right.&lt;/p&gt;

&lt;p&gt;I'm not sure yet whether I'll end up most interested in NLP, computer vision, data science, or something else entirely. Part of what makes this exciting is that I genuinely don't know where it leads. I'm going to let the learning point the way.&lt;/p&gt;

&lt;p&gt;What's coming next&lt;/p&gt;

&lt;p&gt;Tomorrow I'll start with the actual fundamentals what machine learning is, how it differs from regular programming, and why that distinction matters. Small steps, but real ones.&lt;/p&gt;

&lt;p&gt;If you're learning AI/ML too at any stage I'd love to have you follow along. And if you're further ahead, I'm all ears.&lt;/p&gt;

&lt;p&gt;QUESTION FOR YOU&lt;/p&gt;

&lt;p&gt;What's one resource a course, a book, a project idea that you'd recommend to someone starting AI/ML from scratch today?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>devjournal</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>#java #datastructures #programming #collections</title>
      <dc:creator>Kanishka Shrivastava</dc:creator>
      <pubDate>Fri, 06 Mar 2026 12:09:48 +0000</pubDate>
      <link>https://dev.to/kanishkashr/java-datastructures-programming-collections-2in0</link>
      <guid>https://dev.to/kanishkashr/java-datastructures-programming-collections-2in0</guid>
      <description>&lt;p&gt;Java Concepts I’m Mastering – Part 13: HashMap in Java (Key-Value Data Storage)&lt;/p&gt;

&lt;p&gt;Continuing my journey of mastering Java fundamentals.&lt;/p&gt;

&lt;p&gt;Today’s concept: HashMap — a powerful way to store and access data using key-value pairs.&lt;/p&gt;

&lt;p&gt;What is a HashMap?&lt;/p&gt;

&lt;p&gt;A HashMap stores data in the form of:&lt;/p&gt;

&lt;p&gt;Key → Value&lt;/p&gt;

&lt;p&gt;Each key is unique and maps to a specific value.&lt;/p&gt;

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

&lt;p&gt;"Java" → 1995&lt;br&gt;
"Python" → 1991&lt;br&gt;
Creating a HashMap&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import java.util.HashMap;

HashMap&amp;lt;String, Integer&amp;gt; languages = new HashMap&amp;lt;&amp;gt;();

languages.put("Java", 1995);
languages.put("Python", 1991);
languages.put("C++", 1985);
Accessing Values
System.out.println(languages.get("Java"));

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

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1995
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Useful HashMap Methods&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;languages.put("Go", 2009);     // add element
languages.get("Python");       // access value
languages.remove("C++");       // delete element
languages.containsKey("Java"); // check key
languages.size();              // total elements

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

&lt;/div&gt;



&lt;p&gt;Why HashMap is Powerful&lt;/p&gt;

&lt;p&gt;Very fast lookups&lt;/p&gt;

&lt;p&gt;Stores structured data&lt;/p&gt;

&lt;p&gt;Used heavily in real applications&lt;/p&gt;

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

&lt;p&gt;Caching systems&lt;/p&gt;

&lt;p&gt;Database indexing&lt;/p&gt;

&lt;p&gt;Counting frequencies&lt;/p&gt;

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

&lt;p&gt;HashMap stores unique keys with values&lt;/p&gt;

&lt;p&gt;Lookup operations are extremely fast&lt;/p&gt;

&lt;p&gt;It's one of the most important structures in Java&lt;/p&gt;

&lt;p&gt;Understanding HashMap is essential for efficient programming.&lt;/p&gt;

&lt;p&gt;Next in the series: Java Streams API (Modern Data Processing) &lt;/p&gt;

</description>
    </item>
    <item>
      <title>#java #collections #programming #datastructures</title>
      <dc:creator>Kanishka Shrivastava</dc:creator>
      <pubDate>Thu, 05 Mar 2026 12:19:39 +0000</pubDate>
      <link>https://dev.to/kanishkashr/java-collections-programming-datastructures-4jbk</link>
      <guid>https://dev.to/kanishkashr/java-collections-programming-datastructures-4jbk</guid>
      <description>&lt;p&gt;Java Concepts I’m Mastering – Part 12: ArrayList vs LinkedList&lt;/p&gt;

&lt;p&gt;Continuing my journey of mastering Java fundamentals.&lt;/p&gt;

&lt;p&gt;Today’s concept: ArrayList vs LinkedList — two important classes from the Java Collections Framework.&lt;/p&gt;

&lt;p&gt;Both store collections of elements, but they work differently internally.&lt;/p&gt;

&lt;p&gt;ArrayList&lt;/p&gt;

&lt;p&gt;ArrayList is backed by a dynamic array.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import java.util.ArrayList;

ArrayList&amp;lt;String&amp;gt; list = new ArrayList&amp;lt;&amp;gt;();
list.add("Java");
list.add("Python");

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

&lt;/div&gt;



&lt;p&gt;Best for:&lt;/p&gt;

&lt;p&gt;Fast random access&lt;/p&gt;

&lt;p&gt;Reading data frequently&lt;/p&gt;

&lt;p&gt;Limitation:&lt;/p&gt;

&lt;p&gt;Inserting or deleting elements in the middle can be slower.&lt;/p&gt;

&lt;p&gt;LinkedList&lt;/p&gt;

&lt;p&gt;LinkedList is implemented using nodes connected by pointers.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import java.util.LinkedList;

LinkedList&amp;lt;String&amp;gt; list = new LinkedList&amp;lt;&amp;gt;();
list.add("Java");
list.add("Python");

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

&lt;/div&gt;



&lt;p&gt;Best for:&lt;/p&gt;

&lt;p&gt;Frequent insertions and deletions&lt;/p&gt;

&lt;p&gt;Working with queues or stacks&lt;/p&gt;

&lt;p&gt;Limitation:&lt;/p&gt;

&lt;p&gt;Accessing elements by index is slower.&lt;/p&gt;

&lt;p&gt;Key Difference&lt;br&gt;
ArrayList            LinkedList&lt;br&gt;
Dynamic array            Doubly linked list&lt;br&gt;
Faster access            Slower access&lt;br&gt;
Slower insert/delete     Faster insert/delete&lt;/p&gt;

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

&lt;p&gt;Use ArrayList for fast data access.&lt;/p&gt;

&lt;p&gt;Use LinkedList when modifying data frequently.&lt;/p&gt;

&lt;p&gt;Understanding data structures helps write efficient programs.&lt;/p&gt;

&lt;p&gt;Next in the series: HashMap in Java (Key-Value Data Storage) &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>computerscience</category>
      <category>java</category>
      <category>programming</category>
    </item>
    <item>
      <title>#java #exceptions #programming #backend</title>
      <dc:creator>Kanishka Shrivastava</dc:creator>
      <pubDate>Wed, 04 Mar 2026 08:40:37 +0000</pubDate>
      <link>https://dev.to/kanishkashr/java-exceptions-programming-backend-59lf</link>
      <guid>https://dev.to/kanishkashr/java-exceptions-programming-backend-59lf</guid>
      <description>&lt;p&gt;Java Concepts I’m Mastering – Part 11: Exception Handling (try-catch-finally)&lt;/p&gt;

&lt;p&gt;Continuing my journey of mastering Java fundamentals.&lt;/p&gt;

&lt;p&gt;Today’s concept: Exception Handling — because real programs must handle errors gracefully.&lt;/p&gt;

&lt;p&gt;What is an Exception?&lt;/p&gt;

&lt;p&gt;An exception is:&lt;/p&gt;

&lt;p&gt;An unexpected event that disrupts normal program flow.&lt;/p&gt;

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

&lt;p&gt;Dividing by zero&lt;/p&gt;

&lt;p&gt;Accessing invalid array index&lt;/p&gt;

&lt;p&gt;Reading a missing file&lt;/p&gt;

&lt;p&gt;If not handled → program crashes.&lt;/p&gt;

&lt;p&gt;try-catch Block&lt;/p&gt;

&lt;p&gt;We use try to write risky code&lt;br&gt;
and catch to handle errors.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try {
    int result = 10 / 0;
} catch (ArithmeticException e) {
    System.out.println("Cannot divide by zero!");
}

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

&lt;/div&gt;



&lt;p&gt;Instead of crashing, it prints a message.&lt;/p&gt;

&lt;p&gt;finally Block&lt;/p&gt;

&lt;p&gt;The finally block:&lt;/p&gt;

&lt;p&gt;Always executes&lt;/p&gt;

&lt;p&gt;Used for cleanup (closing files, DB connections, etc.)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
try {
    System.out.println("Trying...");
} catch (Exception e) {
    System.out.println("Error occurred");
} finally {
    System.out.println("This always runs");
}

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

&lt;/div&gt;



&lt;p&gt;Types of Exceptions&lt;/p&gt;

&lt;p&gt;Checked Exceptions (compile-time)&lt;/p&gt;

&lt;p&gt;Must be handled&lt;/p&gt;

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

&lt;p&gt;Unchecked Exceptions (runtime)&lt;/p&gt;

&lt;p&gt;Occur during execution&lt;/p&gt;

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

&lt;p&gt;Why It’s Important&lt;/p&gt;

&lt;p&gt;Prevents program crashes&lt;/p&gt;

&lt;p&gt;Improves reliability&lt;/p&gt;

&lt;p&gt;Makes applications production-ready&lt;/p&gt;

&lt;p&gt;Good developers don’t just write logic —&lt;br&gt;
they handle failure properly.&lt;/p&gt;

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

&lt;p&gt;Always handle predictable errors&lt;/p&gt;

&lt;p&gt;Use specific exceptions instead of generic ones&lt;/p&gt;

&lt;p&gt;Clean up resources using finally&lt;/p&gt;

&lt;p&gt;Exception handling separates beginners from professionals.&lt;/p&gt;

&lt;p&gt;Next in the series: Collections Framework in Java (ArrayList vs LinkedList) &lt;/p&gt;

</description>
    </item>
    <item>
      <title>#devchallenge #geminireflections #gemini #ai #productivity</title>
      <dc:creator>Kanishka Shrivastava</dc:creator>
      <pubDate>Tue, 03 Mar 2026 09:34:37 +0000</pubDate>
      <link>https://dev.to/kanishkashr/devchallenge-geminireflections-gemini-ai-productivity-42b6</link>
      <guid>https://dev.to/kanishkashr/devchallenge-geminireflections-gemini-ai-productivity-42b6</guid>
      <description>&lt;p&gt;What I Built with Google Gemini&lt;/p&gt;

&lt;p&gt;I created “AI Code Companion”, a tool designed to help developers write, debug, and optimize code faster. The idea came from my own experience struggling to troubleshoot errors late at night during hackathons.&lt;/p&gt;

&lt;p&gt;Using Google Gemini, the AI could:&lt;/p&gt;

&lt;p&gt;Suggest solutions to bugs in real time.&lt;/p&gt;

&lt;p&gt;Offer optimized alternatives for inefficient code.&lt;/p&gt;

&lt;p&gt;Explain complex concepts in simple terms.&lt;/p&gt;

&lt;p&gt;Gemini’s natural language understanding made it possible to interact with the AI conversationally, almost like having a coding mentor available 24/7.&lt;/p&gt;

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

&lt;p&gt;This project was a crash course in practical AI integration:&lt;/p&gt;

&lt;p&gt;Technical: Learned to handle API calls efficiently, parse AI responses, and create a seamless user interface.&lt;/p&gt;

&lt;p&gt;Soft Skills: Patience, iterative design, and translating user feedback into functional improvements.&lt;/p&gt;

&lt;p&gt;Unexpected Lessons: Even the smartest AI can be unclear without the right prompts. Crafting precise questions drastically improves the usefulness of the output.&lt;/p&gt;

&lt;p&gt;Most importantly, I realized how AI can augment human learning and productivity, rather than just automate tasks.&lt;/p&gt;

&lt;p&gt;Google Gemini Feedback&lt;/p&gt;

&lt;p&gt;What Worked Well: Gemini’s responses were fast, contextually relevant, and easy to integrate into my desktop workflow.&lt;/p&gt;

&lt;p&gt;Where I Struggled: For very niche coding scenarios, outputs could be too generic, requiring me to experiment with prompt phrasing.&lt;/p&gt;

&lt;p&gt;Overall: The experience reaffirmed Gemini’s potential as a developer’s collaborative AI, and I’m excited to explore more complex use cases in the future.&lt;/p&gt;

&lt;p&gt;Looking Forward&lt;/p&gt;

&lt;p&gt;Next, I aim to:&lt;/p&gt;

&lt;p&gt;Build team collaboration features so multiple developers can consult the AI simultaneously.&lt;/p&gt;

&lt;p&gt;Expand the AI’s multi-language support for cross-platform development.&lt;/p&gt;

&lt;p&gt;Explore integration with GitHub to suggest code improvements directly in pull requests.&lt;/p&gt;

&lt;p&gt;This project has shown me the practical power of AI in real-world development, and I’m motivated to continue experimenting with Google Gemini to make coding faster, smarter, and more intuitive.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>geminireflections</category>
      <category>gemini</category>
    </item>
    <item>
      <title>#java #oop #programming #100daysofcode</title>
      <dc:creator>Kanishka Shrivastava</dc:creator>
      <pubDate>Tue, 03 Mar 2026 09:23:58 +0000</pubDate>
      <link>https://dev.to/kanishkashr/java-oop-programming-100daysofcode-526b</link>
      <guid>https://dev.to/kanishkashr/java-oop-programming-100daysofcode-526b</guid>
      <description>&lt;p&gt;Java Concepts I’m Mastering – Part 10: The final Keyword in Java&lt;/p&gt;

&lt;p&gt;Continuing my journey of mastering Java fundamentals.&lt;/p&gt;

&lt;p&gt;Today’s concept: The final keyword — small word, strong restrictions.&lt;/p&gt;

&lt;p&gt;final is used to prevent modification.&lt;/p&gt;

&lt;p&gt;But its behavior depends on where it’s applied.&lt;/p&gt;

&lt;p&gt;Final Variable&lt;/p&gt;

&lt;p&gt;A final variable cannot be reassigned.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
final int MAX_AGE = 100;

// MAX_AGE = 120; // Error

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

&lt;/div&gt;



&lt;p&gt;Once assigned → value cannot change.&lt;/p&gt;

&lt;p&gt;If it's a reference variable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;final List&amp;lt;String&amp;gt; list = new ArrayList&amp;lt;&amp;gt;();
list.add("Java");   // Allowed
// list = new ArrayList&amp;lt;&amp;gt;(); // Not allowed

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

&lt;/div&gt;



&lt;p&gt;You cannot change the reference,&lt;br&gt;
but you can modify the object.&lt;/p&gt;

&lt;p&gt;Final Method&lt;/p&gt;

&lt;p&gt;A final method cannot be overridden.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Animal {
    final void sound() {
        System.out.println("Animal sound");
    }
}

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

&lt;/div&gt;



&lt;p&gt;Child classes cannot modify this behavior.&lt;/p&gt;

&lt;p&gt;Final Class&lt;/p&gt;

&lt;p&gt;A final class cannot be inherited.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
final class Utility {
    void print() {
        System.out.println("Utility class");
    }
}

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

&lt;/div&gt;



&lt;p&gt;No class can extend Utility.&lt;/p&gt;

&lt;p&gt;Why It’s Important&lt;/p&gt;

&lt;p&gt;Improves security&lt;/p&gt;

&lt;p&gt;Prevents unwanted modification&lt;/p&gt;

&lt;p&gt;Helps in writing immutable classes&lt;/p&gt;

&lt;p&gt;Used heavily in system-level and framework code&lt;/p&gt;

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

&lt;p&gt;final protects design decisions&lt;/p&gt;

&lt;p&gt;Use it intentionally, not randomly&lt;/p&gt;

&lt;p&gt;It strengthens object-oriented design&lt;/p&gt;

&lt;p&gt;Small keyword. Big control.&lt;/p&gt;

&lt;p&gt;Next in the series: Exception Handling in Java (try-catch-finally) &lt;/p&gt;

</description>
    </item>
    <item>
      <title>#java #springboot #backend #ai or #webdev</title>
      <dc:creator>Kanishka Shrivastava</dc:creator>
      <pubDate>Sun, 01 Mar 2026 13:28:58 +0000</pubDate>
      <link>https://dev.to/kanishkashr/java-springbootbackend-ai-or-webdev-33jj</link>
      <guid>https://dev.to/kanishkashr/java-springbootbackend-ai-or-webdev-33jj</guid>
      <description>&lt;p&gt;Let’s Connect!&lt;/p&gt;

&lt;p&gt;LinkedIn: &lt;a href="https://www.linkedin.com/in/kanishka-shrivastava-496785336" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/kanishka-shrivastava-496785336&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/KanishkaShrivastava07" rel="noopener noreferrer"&gt;https://github.com/KanishkaShrivastava07&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Always open to collaborations, learning, and exciting projects&lt;/p&gt;

</description>
    </item>
    <item>
      <title>#java #oop #inheritance #programming</title>
      <dc:creator>Kanishka Shrivastava</dc:creator>
      <pubDate>Sun, 01 Mar 2026 13:17:44 +0000</pubDate>
      <link>https://dev.to/kanishkashr/java-oop-inheritance-programming-4bg</link>
      <guid>https://dev.to/kanishkashr/java-oop-inheritance-programming-4bg</guid>
      <description>&lt;p&gt;Java Concepts I’m Mastering – Part 9: Inheritance in Java (extends Keyword)&lt;/p&gt;

&lt;p&gt;Continuing my journey of mastering Java fundamentals.&lt;/p&gt;

&lt;p&gt;Today’s focus: Inheritance — the mechanism that allows one class to acquire properties and behavior of another class.&lt;/p&gt;

&lt;p&gt;What is Inheritance?&lt;/p&gt;

&lt;p&gt;Inheritance means:&lt;/p&gt;

&lt;p&gt;A child class can reuse the fields and methods of a parent class.&lt;/p&gt;

&lt;p&gt;This promotes:&lt;/p&gt;

&lt;p&gt;Code reusability&lt;/p&gt;

&lt;p&gt;Clean hierarchy&lt;/p&gt;

&lt;p&gt;Logical relationships&lt;/p&gt;

&lt;p&gt;Syntax&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
class ChildClass extends ParentClass {
    // additional features
}

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

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Animal {
    void eat() {
        System.out.println("This animal eats food");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("Dog barks");
    }
}

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

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Dog d = new Dog();
d.eat();   // inherited
d.bark();  // own method

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

&lt;/div&gt;



&lt;p&gt;The Dog class reuses behavior from Animal.&lt;/p&gt;

&lt;p&gt;Types of Inheritance in Java&lt;/p&gt;

&lt;p&gt;Single&lt;/p&gt;

&lt;p&gt;Multilevel&lt;/p&gt;

&lt;p&gt;Hierarchical&lt;/p&gt;

&lt;p&gt;(Java does not support multiple inheritance with classes — but it does through interfaces.)&lt;/p&gt;

&lt;p&gt;Why It Matters&lt;/p&gt;

&lt;p&gt;Inheritance helps in:&lt;/p&gt;

&lt;p&gt;Building scalable systems&lt;/p&gt;

&lt;p&gt;Reducing code duplication&lt;/p&gt;

&lt;p&gt;Implementing runtime polymorphism&lt;/p&gt;

&lt;p&gt;It works closely with method overriding, which I covered earlier in this series.&lt;/p&gt;

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

&lt;p&gt;Use inheritance for “is-a” relationships&lt;/p&gt;

&lt;p&gt;Avoid unnecessary deep hierarchies&lt;/p&gt;

&lt;p&gt;Combine with abstraction for clean design&lt;/p&gt;

&lt;p&gt;Inheritance is a core building block of object-oriented design.&lt;/p&gt;

&lt;p&gt;Next in the series: Final Keyword in Java (final variable, method, class) &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>java</category>
      <category>oop</category>
      <category>programming</category>
    </item>
    <item>
      <title>#devchallenge #weekendchallenge #showdev</title>
      <dc:creator>Kanishka Shrivastava</dc:creator>
      <pubDate>Sat, 28 Feb 2026 09:36:24 +0000</pubDate>
      <link>https://dev.to/kanishkashr/devchallenge-weekendchallenge-showdev-19nf</link>
      <guid>https://dev.to/kanishkashr/devchallenge-weekendchallenge-showdev-19nf</guid>
      <description>&lt;h2&gt;
  
  
  ExamMate AI 🚀
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Smart Crash Planner for Engineering Students
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/weekend-2026-02-28"&gt;DEV Weekend Challenge: Community&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚨 The Problem
&lt;/h2&gt;

&lt;p&gt;Every engineering student knows this moment:&lt;/p&gt;

&lt;p&gt;The exam timetable gets announced.&lt;br&gt;&lt;br&gt;
You open the syllabus.&lt;br&gt;&lt;br&gt;
It’s huge.&lt;br&gt;&lt;br&gt;
And you think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Where do I even start?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As part of this community myself, I’ve experienced the stress, confusion, and last-minute panic that comes with technical subjects and limited time.&lt;/p&gt;

&lt;p&gt;Engineering students don’t just need motivation.&lt;br&gt;&lt;br&gt;
We need structure.&lt;/p&gt;




&lt;h2&gt;
  
  
  👩‍💻 The Community
&lt;/h2&gt;

&lt;p&gt;I built this project for &lt;strong&gt;engineering students&lt;/strong&gt; — a high-pressure academic community constantly balancing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dense technical syllabi
&lt;/li&gt;
&lt;li&gt;Multiple exams in a short window
&lt;/li&gt;
&lt;li&gt;Weak topics that need extra attention
&lt;/li&gt;
&lt;li&gt;Last-minute crash preparation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This tool is designed to make exam prep feel manageable instead of overwhelming.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 What I Built
&lt;/h2&gt;

&lt;p&gt;I created &lt;strong&gt;ExamMate AI&lt;/strong&gt;, a lightweight AI-inspired crash planner that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📅 Generates personalized day-wise study plans
&lt;/li&gt;
&lt;li&gt;⏳ Automatically calculates days left until the exam
&lt;/li&gt;
&lt;li&gt;🎯 Distributes weak topics intelligently
&lt;/li&gt;
&lt;li&gt;🚨 Activates &lt;strong&gt;Panic Mode&lt;/strong&gt; when ≤ 3 days remain
&lt;/li&gt;
&lt;li&gt;✅ Tracks daily progress with checkboxes
&lt;/li&gt;
&lt;li&gt;📊 Displays a dynamic progress bar
&lt;/li&gt;
&lt;li&gt;🌙 Includes Light/Dark mode toggle
&lt;/li&gt;
&lt;li&gt;🤖 Simulates an AI “Analyzing…” experience
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal:&lt;br&gt;&lt;br&gt;
Turn panic into a plan.&lt;/p&gt;

&lt;p&gt;No login.&lt;br&gt;&lt;br&gt;
No backend.&lt;br&gt;&lt;br&gt;
No friction.&lt;/p&gt;

&lt;p&gt;Just clarity and focus.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔥 Demo
&lt;/h2&gt;

&lt;p&gt;🌐 Live App:&lt;br&gt;&lt;br&gt;
&lt;a href="https://kanishkashr07.github.io/ExamMate-AI/" rel="noopener noreferrer"&gt;https://kanishkashr07.github.io/ExamMate-AI/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📸 Preview:&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%2Fgithub.com%2Fuser-attachments%2Fassets%2F0abdcff2-1394-4d18-b7c9-6f4ba8660786" class="article-body-image-wrapper"&gt;&lt;img width="800" height="400" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F0abdcff2-1394-4d18-b7c9-6f4ba8660786"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💻 Code
&lt;/h2&gt;

&lt;p&gt;GitHub Repository:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/kanishkashr07/ExamMate-AI" rel="noopener noreferrer"&gt;https://github.com/kanishkashr07/ExamMate-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The entire project is built as a clean, single-page frontend application for simplicity and accessibility.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ How I Built It
&lt;/h2&gt;

&lt;p&gt;This project was built using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTML5&lt;/strong&gt; — Semantic structure
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSS3&lt;/strong&gt; — Responsive design + dark/light theming
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vanilla JavaScript&lt;/strong&gt; —

&lt;ul&gt;
&lt;li&gt;Date calculations
&lt;/li&gt;
&lt;li&gt;Dynamic schedule generation
&lt;/li&gt;
&lt;li&gt;Panic Mode logic
&lt;/li&gt;
&lt;li&gt;Progress tracking
&lt;/li&gt;
&lt;li&gt;Interactive UI updates
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;No frameworks.&lt;br&gt;&lt;br&gt;
No libraries.&lt;br&gt;&lt;br&gt;
Just core web technologies.&lt;/p&gt;

&lt;p&gt;I intentionally kept it simple to demonstrate that impactful tools for communities can be built without heavy infrastructure.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Why This Matters
&lt;/h2&gt;

&lt;p&gt;This isn’t just a challenge submission.&lt;/p&gt;

&lt;p&gt;It’s a solution to a real problem I face as a student.&lt;/p&gt;

&lt;p&gt;Community-driven development means building for people whose struggles you genuinely understand.&lt;/p&gt;

&lt;p&gt;ExamMate AI is my attempt to make exam season just a little less stressful for engineering students everywhere.&lt;/p&gt;




&lt;p&gt;Thank you DEV for hosting this challenge 🙌&lt;br&gt;&lt;br&gt;
I’m excited to continue improving ExamMate AI into a smarter academic companion.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
