<?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: Sandaruwan Wadiyage</title>
    <description>The latest articles on DEV Community by Sandaruwan Wadiyage (@sandaruwan_wadiyage).</description>
    <link>https://dev.to/sandaruwan_wadiyage</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%2F2869004%2F35c6596b-011b-4b60-a941-f2eb61794929.jpg</url>
      <title>DEV Community: Sandaruwan Wadiyage</title>
      <link>https://dev.to/sandaruwan_wadiyage</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sandaruwan_wadiyage"/>
    <language>en</language>
    <item>
      <title>THE JAVA TYPE CASTING BUG –YOU’VE PROBABLY OVERLOOKED</title>
      <dc:creator>Sandaruwan Wadiyage</dc:creator>
      <pubDate>Mon, 21 Jul 2025 08:14:16 +0000</pubDate>
      <link>https://dev.to/sandaruwan_wadiyage/the-java-type-casting-bug-youve-probably-overlooked-h34</link>
      <guid>https://dev.to/sandaruwan_wadiyage/the-java-type-casting-bug-youve-probably-overlooked-h34</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;“A deep dive into how silently casting a long to float or double in Java can cause unexpected rounding — even when it looks like everything's working fine.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;While I was experimenting with Java's primitive data types, I stumbled across a strange behavior when casting a &lt;code&gt;long&lt;/code&gt; value to a &lt;code&gt;float&lt;/code&gt;. Initially, everything looked fine — until I tried a slightly different number. Let's dive into what I found!&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 The Case: Casting &lt;code&gt;long&lt;/code&gt; to &lt;code&gt;float&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Here’s a small Java snippet that caught my attention:&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;Example&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="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;long&lt;/span&gt; &lt;span class="n"&gt;original&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Long&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;MAX_VALUE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 9223372036854775807&lt;/span&gt;
        &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;original&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;long&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="n"&gt;x&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;"Original : "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;original&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;"After storing the long value as float : "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;x&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;"Stored in float and cast back : "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&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;"Same? "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;original&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;y&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;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Original : 9223372036854775807
After storing the long value as float : 9.223372E18
Stored in float and cast back : 9223372036854775807
Same? true

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

&lt;/div&gt;



&lt;p&gt;Looks good, right? Now let’s subtract just 1 from that original value:&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;Example&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="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;long&lt;/span&gt; &lt;span class="n"&gt;original&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Long&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;MAX_VALUE&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="c1"&gt;// 9223372036854775806&lt;/span&gt;
        &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;original&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;long&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="n"&gt;x&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;"Original : "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;original&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;"After storing the long value as float : "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;x&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;"Stored in float and cast back : "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&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;"Same? "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;original&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;y&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;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Original : 9223372036854775806
After storing the long value as float : 9.223372E18
Stored in float and cast back : 9223372036854775807
Same? false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🤔 What Just Happened?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;float in Java is a 32-bit IEEE 754 floating-point number — it simply can’t hold the full precision of a 64-bit long (which has a 53-bit mantissa in double-precision, and only ~24 bits in single-precision).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So when you convert a long to float, you lose precision — and in some edge cases, this causes rounding to the nearest representable float, which might increase the number unexpectedly.&lt;/p&gt;

&lt;p&gt;In our second example, 9223372036854775806L was rounded up to the same float representation as Long.MAX_VALUE — so when cast back to long, it became greater than it originally was.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 Key Takeaways
&lt;/h2&gt;

&lt;p&gt;✅ float cannot safely store large long values without precision loss.&lt;br&gt;
⚠️ Be careful when comparing values after type casting.&lt;br&gt;
💡 Use double or BigDecimal if you need more precise conversions or arithmetic.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Real-World Impact
&lt;/h2&gt;

&lt;p&gt;Such subtle bugs can appear in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Financial applications dealing with large monetary values&lt;/li&gt;
&lt;li&gt;Timestamps or IDs stored as long&lt;/li&gt;
&lt;li&gt;Scientific calculations where precision matters
Always know your data types and limits before relying on direct conversions.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💬 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This tiny experiment reminded me why understanding the limits of data types is crucial, even in the simplest programs. Java makes type casting easy — but sometimes too easy!&lt;/p&gt;

&lt;p&gt;Have you encountered similar surprises in Java (or other languages)? I’d love to hear your thoughts in the comments.&lt;/p&gt;

&lt;p&gt;Let’s keep learning, one line at a time! ✨&lt;/p&gt;




&lt;p&gt;📣 Follow me on LinkedIn and GitHub for more Java insights and development experiments.&lt;/p&gt;

</description>
      <category>java</category>
      <category>programming</category>
      <category>typecasting</category>
      <category>learning</category>
    </item>
    <item>
      <title>🧐 Why Does Java Give an Error for Uninitialized Variables, But C Just Runs?</title>
      <dc:creator>Sandaruwan Wadiyage</dc:creator>
      <pubDate>Sun, 13 Jul 2025 18:04:55 +0000</pubDate>
      <link>https://dev.to/sandaruwan_wadiyage/why-does-java-give-an-error-for-uninitialized-variables-but-c-just-runs-38d9</link>
      <guid>https://dev.to/sandaruwan_wadiyage/why-does-java-give-an-error-for-uninitialized-variables-but-c-just-runs-38d9</guid>
      <description>&lt;p&gt;As a beginner in Java programming, I recently faced a confusing situation that led me to understand something deeper about how different programming languages work under the hood.&lt;/p&gt;

&lt;p&gt;Let me share this small but interesting learning experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔍 The Problem: Java vs. C — Different Reactions``
&lt;/h2&gt;

&lt;p&gt;Java Code: &lt;br&gt;
&lt;code&gt;class Example {&lt;br&gt;
    public static void main(String[] args) {&lt;br&gt;
        int x;&lt;br&gt;
        System.out.print(x);&lt;br&gt;
    }&lt;br&gt;
}&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Result (Compile-Time Error):&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Example.java:4: error: variable x might not have been initialized&lt;br&gt;
        System.out.print(x);&lt;br&gt;
                       ^&lt;br&gt;
1 error&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;




&lt;p&gt;C Code:&lt;/p&gt;

&lt;p&gt;`#include &lt;/p&gt;

&lt;p&gt;int main() {&lt;br&gt;
    int x;&lt;br&gt;
    printf("%d", x);&lt;br&gt;
}`&lt;/p&gt;

&lt;p&gt;Result (Runtime Output):&lt;/p&gt;

&lt;p&gt;&lt;code&gt;0&lt;br&gt;
Process returned 0 (0x0)   execution time : 6.435 s&lt;br&gt;
Press any key to continue.&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Or... sometimes it outputs random garbage values.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛑 Why the Difference?
&lt;/h2&gt;

&lt;h2&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%2Fpr6ebjeokjj2b7vwzxb1.png" alt=" " width="800" height="132"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  ⚙️ How Java Works:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Java does not allow local variables to be used without initialization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The compiler checks this for you to prevent bugs from undefined data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This makes Java a "safer by design" language, especially for beginners.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;// ✅ Correct way in Java&lt;br&gt;
int x = 0;&lt;br&gt;
System.out.print(x);&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ How C Works:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;C is a low-level language and trusts the programmer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It allows variables to be used even if they contain garbage values (whatever was already in memory).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This can lead to unpredictable results if you're not careful.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;// ✅ Better in C&lt;br&gt;
int x = 0;&lt;br&gt;
printf("%d", x);&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 What I Learned:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Always initialize variables explicitly, regardless of the language.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Java protects you with compile-time safety.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚀 Why I'm Sharing This
&lt;/h2&gt;

&lt;p&gt;As I grow in my programming journey, these small "aha!" moments help me better understand how different languages shape how we think and code.&lt;br&gt;
It's fascinating to see how language design affects both our code and our habits.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤝 Your Thoughts?
&lt;/h2&gt;

&lt;p&gt;If you’ve ever stumbled on a similar quirk between languages, I'd love to hear how it surprised or challenged you!&lt;/p&gt;

</description>
      <category>java</category>
      <category>programming</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Boost Your Dev Workflow with AI Tools (Beginner-Friendly)</title>
      <dc:creator>Sandaruwan Wadiyage</dc:creator>
      <pubDate>Sat, 28 Jun 2025 10:53:27 +0000</pubDate>
      <link>https://dev.to/sandaruwan_wadiyage/boost-your-dev-workflow-with-ai-tools-beginner-friendly-57ke</link>
      <guid>https://dev.to/sandaruwan_wadiyage/boost-your-dev-workflow-with-ai-tools-beginner-friendly-57ke</guid>
      <description>&lt;p&gt;As a software engineering beginner, I recently attended a session titled "How to Use AI Assistants as a Software Engineering Beginner" by Mr. Dewmal Handapangoda – AI &amp;amp; Software Specialist from the University of Moratuwa. It was eye-opening and inspired me to dive deeper into AI tools specifically designed to support developers.&lt;/p&gt;

&lt;p&gt;This article is a categorized guide to the most impactful AI tools that can supercharge your development workflow — from writing code and debugging to managing backend services and running AI models locally.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔧 1. Coding Assistants (Auto-complete, Debug, Explain, Generate Code)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;These tools help you write, understand, and optimize code faster with AI assistance.&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%2Fc2xmaqyx7r8ibw304jjf.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%2Fc2xmaqyx7r8ibw304jjf.png" alt=" " width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔍 2. Search &amp;amp; Documentation Assistants
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;These AI tools provide intelligent code search, documentation parsing, and faster answers than traditional search engines.&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%2Ffd1esyx3f23e5jfx5h2t.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%2Ffd1esyx3f23e5jfx5h2t.png" alt=" " width="800" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 3. Local AI (Privacy-Focused &amp;amp; Experimental Dev)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Run models on your machine for privacy, experimentation, or low-latency workflows.&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%2Fvg5u1eglf3elslincv8b.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%2Fvg5u1eglf3elslincv8b.png" alt=" " width="800" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ☁️ 4. Backend, DevOps, and Full Stack AI Help
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Tools to support backend management, full-stack workflows, and low-code AI-enhanced platforms.&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%2Fy7jhx5i0mpz4kgy38yx9.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%2Fy7jhx5i0mpz4kgy38yx9.png" alt=" " width="800" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎨 5. Creative AI Tools for Devs (Optional)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Niche but helpful tools for creative developers building audio, voice, or ideation-based apps.&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%2Ffu89559dwaz1kr5lbxe3.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%2Ffu89559dwaz1kr5lbxe3.png" alt=" " width="800" height="132"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔥 Top Picks for Beginners
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;If you’re new and don’t want to be overwhelmed, here’s your starter pack by use case:&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%2Fw92l1fxsqwy6bejfh2wq.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%2Fw92l1fxsqwy6bejfh2wq.png" alt=" " width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Final Thoughts:
&lt;/h2&gt;

&lt;p&gt;AI is now your development co-pilot. Whether you’re debugging your first React app, exploring Firebase, or running LLMs offline with Ollama, these tools can transform how you build, learn, and ship software.&lt;/p&gt;

&lt;p&gt;Which tools have you tried? Did I miss your favorite?&lt;/p&gt;

&lt;p&gt;Let me know in the comments — and stay tuned for a follow-up on setting up Cursor, Ollama, or using ChatGPT for real-world coding projects!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>developers</category>
      <category>beginners</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>HOW TO UPLOAD YOUR PROJECT TO GITHUB – STEP-BY-STEP WITH CHEAT SHEET 🧩</title>
      <dc:creator>Sandaruwan Wadiyage</dc:creator>
      <pubDate>Fri, 20 Jun 2025 16:11:47 +0000</pubDate>
      <link>https://dev.to/sandaruwan_wadiyage/how-to-upload-your-project-to-github-step-by-step-with-cheat-sheet-3e1</link>
      <guid>https://dev.to/sandaruwan_wadiyage/how-to-upload-your-project-to-github-step-by-step-with-cheat-sheet-3e1</guid>
      <description>&lt;h2&gt;
  
  
  📌 INTRODUCTION
&lt;/h2&gt;

&lt;p&gt;Uploading your project to GitHub for the first time?&lt;br&gt;&lt;br&gt;
Here’s a clean, beginner-friendly walkthrough — plus a downloadable cheat sheet to keep handy.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 STEP-BY-STEP GIT COMMANDS EXPLAINED
&lt;/h2&gt;

&lt;p&gt;🔹 &lt;strong&gt;Step 1&lt;/strong&gt;: Initialize Git&lt;br&gt;
&lt;code&gt;git init&lt;/code&gt; - This creates a .git folder in your directory and enables version tracking.&lt;br&gt;
🔹 &lt;strong&gt;Step 2&lt;/strong&gt;: Stage All Files&lt;br&gt;
&lt;code&gt;git add .&lt;/code&gt; - This stages all your changes for commit.&lt;br&gt;
🔹 &lt;strong&gt;Step 3&lt;/strong&gt;: Commit with a Message&lt;br&gt;
&lt;code&gt;git commit -m "Initial commit"&lt;/code&gt;&lt;br&gt;
🔹 &lt;strong&gt;Step 4&lt;/strong&gt;: Connect Remote Repository&lt;br&gt;
&lt;code&gt;git remote add origin https://github.com/your-username/your-repo.git&lt;/code&gt;&lt;br&gt;
Tip: Already connected to another remote?&lt;br&gt;
&lt;code&gt;git remote set-url origin &amp;lt;new-link&amp;gt;&lt;/code&gt;&lt;br&gt;
🔹 &lt;strong&gt;Step 5&lt;/strong&gt;: Push to GitHub&lt;br&gt;
&lt;code&gt;git branch -M main&lt;/code&gt;&lt;br&gt;
&lt;code&gt;git push -u origin main&lt;/code&gt;&lt;br&gt;
&lt;em&gt;-u&lt;/em&gt; links to your local branch to remote branch.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔁 AFTER MAKING CHANGES
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;git status&lt;br&gt;
git add .&lt;br&gt;
git commit -m "Updated section UI"&lt;br&gt;
git push origin main&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧹 OPTIONAL: DELETE ‘MASTER’ BRANCH
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;git push origin --delete master&lt;/code&gt;&lt;br&gt;
✔ Confirm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;main has latest updates&lt;/li&gt;
&lt;li&gt;GitHub default is main&lt;/li&gt;
&lt;li&gt;No one using master&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📎 CHEAT SHEET
&lt;/h2&gt;

&lt;p&gt;Here’s a visual version to download and share 👇&lt;br&gt;
&lt;a href="https://drive.google.com/file/d/1Wl9SNQTyWqfF4IsqgAorjX3HtBL0fwx3/view?usp=sharing" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔚 FINAL THOUGHTS
&lt;/h2&gt;

&lt;p&gt;If you're a beginner or just want to keep things simple, this is all you need to get your project onto GitHub.&lt;br&gt;
Have any tips or favorite commands? Share them in the comments! &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%2Fqm0f7wz5gbdzpu3m0b0o.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%2Fqm0f7wz5gbdzpu3m0b0o.png" alt="Image description" width="800" height="999"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>beginners</category>
      <category>shortcut101</category>
    </item>
  </channel>
</rss>
