<?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: Nabil Mahmud</title>
    <description>The latest articles on DEV Community by Nabil Mahmud (@nabilbndev).</description>
    <link>https://dev.to/nabilbndev</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%2F2205899%2F915d5cf3-7f2e-41be-a6a3-97bd5a251afb.png</url>
      <title>DEV Community: Nabil Mahmud</title>
      <link>https://dev.to/nabilbndev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nabilbndev"/>
    <language>en</language>
    <item>
      <title>Java Newbie to Pro? Day 3 – Who is Who and What They Do in my First Java Program</title>
      <dc:creator>Nabil Mahmud</dc:creator>
      <pubDate>Thu, 06 Feb 2025 14:26:30 +0000</pubDate>
      <link>https://dev.to/nabilbndev/java-newbie-to-pro-day-3-who-is-who-and-what-they-do-in-my-first-java-program-994</link>
      <guid>https://dev.to/nabilbndev/java-newbie-to-pro-day-3-who-is-who-and-what-they-do-in-my-first-java-program-994</guid>
      <description>&lt;p&gt;In Day 2, I created my first program and ran it to print the phrase &lt;strong&gt;"Hello there!"&lt;/strong&gt; to the console. Today, I’ll be sharing my understanding of that first program—breaking down who is who and what they do in our Java code.&lt;/p&gt;

&lt;h2&gt;
  
  
  👇 This was my first Java program:
&lt;/h2&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;MySweetProgram&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="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;"Hello there!"&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;h2&gt;
  
  
  🏗️ The Blueprint aka Class
&lt;/h2&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;MySweetProgram&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every program is wrapped inside a &lt;strong&gt;class&lt;/strong&gt;. Here, &lt;code&gt;MySweetProgram&lt;/code&gt; is our class. It has an opening and closing curly brace, and it acts as a &lt;strong&gt;container&lt;/strong&gt; for our code.&lt;/p&gt;

&lt;p&gt;📌 &lt;strong&gt;Remember:&lt;/strong&gt; The class name must match the filename. That’s why our file is named &lt;strong&gt;MySweetProgram.java&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  ❤️ The Heart of the Program
&lt;/h2&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;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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;strong&gt;heart&lt;/strong&gt; (or should I say &lt;strong&gt;心 Xīn&lt;/strong&gt;?) of the program! Gotta sneak in some Chinese practice while I’m at it. 😆&lt;/p&gt;

&lt;p&gt;This is the entry point of every Java program. When you run the code, Java starts executing from the &lt;strong&gt;&lt;code&gt;main&lt;/code&gt;&lt;/strong&gt; method. Let’s break it down:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;public&lt;/code&gt;&lt;/strong&gt; – This means the method can be accessed from anywhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;static&lt;/code&gt;&lt;/strong&gt; – It belongs to the class itself, so we don’t need to create an object to run it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;void&lt;/code&gt;&lt;/strong&gt; – This means the method doesn’t return any value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;main&lt;/code&gt;&lt;/strong&gt; – The special method name that Java looks for when running the program.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;String[] args&lt;/code&gt;&lt;/strong&gt; – This is used to accept command-line arguments (not something we need right now, but useful for later!).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🖨️ Printing to the Console
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&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;"Hello there!"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line prints &lt;strong&gt;"Hello there!"&lt;/strong&gt; to the console. It’s a simple &lt;strong&gt;statement&lt;/strong&gt; that outputs the text passed to the &lt;code&gt;println()&lt;/code&gt; method. However, we need not worry about the &lt;code&gt;System.out&lt;/code&gt; part at this moment.&lt;/p&gt;




&lt;p&gt;That’s it for today!&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%2Fln3j5ru0bixw5zz2tyge.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%2Fln3j5ru0bixw5zz2tyge.jpeg" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Java Newbie to Pro? Day 2 – How I Create My First Java Program</title>
      <dc:creator>Nabil Mahmud</dc:creator>
      <pubDate>Wed, 05 Feb 2025 04:04:15 +0000</pubDate>
      <link>https://dev.to/nabilbndev/java-newbie-to-pro-day-2-how-i-create-my-first-java-program-51m1</link>
      <guid>https://dev.to/nabilbndev/java-newbie-to-pro-day-2-how-i-create-my-first-java-program-51m1</guid>
      <description>&lt;p&gt;If you read my previous &lt;a href="https://dev.to/nabilbndev/java-newbie-to-pro-day-1-how-i-set-up-my-java-dev-environment-3859"&gt;post&lt;/a&gt;, you know that Day 1 was all about setting up my Java development environment. Now that everything is ready, it’s time to write some actual Java code! 🚀&lt;/p&gt;

&lt;p&gt;To save myself some keystrokes (and give you a more visual guide), I’ll be using video clips from Caleb Curry’s Java tutorial—because, let’s be honest, watching something is sometimes way easier than reading long explanations! 😁&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating a New Java Project in Eclipse
&lt;/h3&gt;

&lt;p&gt;I followed the steps in &lt;a href="https://youtube.com/clip/Ugkx3zVlcPI082lp0diMT3LArt2wv0p-pMWb?si=rpkK5NGGlMurFoxG" rel="noopener noreferrer"&gt;this video clip&lt;/a&gt; to create a new Java project using Eclipse. Since the clip is from Caleb's &lt;a href="https://www.youtube.com/watch?v=r3GGV2TG_vw&amp;amp;list=PL_c9BZzLwBRKIMP_xNTJxi9lIgQhE51rF&amp;amp;index=1" rel="noopener noreferrer"&gt;original tutorial&lt;/a&gt;, I had to make a few small tweaks because Eclipse’s default project setup has changed slightly over time. But here’s a challenge for you—try figuring out the tweaks yourself! A little bit of problem-solving will add to your technical sophistication and serve you well on your programming journey. 😉&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating the First Java Program
&lt;/h3&gt;

&lt;p&gt;I followed the steps &lt;a href="https://youtube.com/clip/Ugkx51jbOi-D3fbxojGpmme-pyFYrdVgY3cX?si=UODQfmorGUL4Mamz" rel="noopener noreferrer"&gt;in this clip&lt;/a&gt; to create my very first Java program—smooth sailing, no hiccups! The process involves creating a Java class using the IDE. In Java, the class name must match the filename that contains it. So, in this case, I created a file named &lt;code&gt;MySweetProgram.java&lt;/code&gt;, which holds a class with the same name: &lt;code&gt;MySweetProgram&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In the next post, I'll give a brief and superficial introduction to classes. For now, just think of a class as a container that holds different pieces of your program.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tweak and Run the First Java Program
&lt;/h3&gt;

&lt;p&gt;After setting up the program following the clip above, I used &lt;a href="https://youtube.com/clip/UgkxcSBUXZsuypTNYi7zWoirjBVDzFLr-NKC?si=V4OPh74bGXYnltPg" rel="noopener noreferrer"&gt;this clip&lt;/a&gt; to tweak the code and finally run it—successfully printing the phrase "Hello there!" to the console. Btw,these are the lines of our first program:&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;MySweetProgram&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="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;"Hello there!"&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;👉 "In the &lt;a href="https://dev.to/nabilbndev/java-newbie-to-pro-day-3-who-is-who-and-what-they-do-in-my-first-java-program-994"&gt;next post&lt;/a&gt;, we’ll learn more about the nitty-gritty of the program we've just finished writing.&lt;/p&gt;

</description>
      <category>java</category>
      <category>learning</category>
      <category>programming</category>
    </item>
    <item>
      <title>Java Newbie to Pro? Day 1 – How I Set Up My Java Dev Environment</title>
      <dc:creator>Nabil Mahmud</dc:creator>
      <pubDate>Mon, 03 Feb 2025 07:19:58 +0000</pubDate>
      <link>https://dev.to/nabilbndev/java-newbie-to-pro-day-1-how-i-set-up-my-java-dev-environment-3859</link>
      <guid>https://dev.to/nabilbndev/java-newbie-to-pro-day-1-how-i-set-up-my-java-dev-environment-3859</guid>
      <description>&lt;p&gt;In this post, I’ll walk you through how I set up my Java development environment on my primary (and only) machine—a Dell Latitude running Ubuntu.&lt;/p&gt;

&lt;h1&gt;
  
  
  Setting Up the Development Environment
&lt;/h1&gt;

&lt;h3&gt;
  
  
  1. Downloading and Extracting the JDK
&lt;/h3&gt;

&lt;p&gt;First, I downloaded the latest stable &lt;a href="https://www.oracle.com/java/technologies/downloads/?er=221886#java21" rel="noopener noreferrer"&gt;JDK&lt;/a&gt;. To be more specific, I went with JDK 21's x64 Compressed Archive option.&lt;/p&gt;

&lt;p&gt;After a little while, the JDK archive stuff got downloaded into my pc's Downloads directory. Following the download, I extracted the contents of the archive into the Home directory using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tar -xvf Downloads/jdk-21_linux-x64_bin.tar.gz -C ~
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By default, this created a new folder named jdk-21.0.6 (the directory name could be different for you as it depends on the version of the JDK you downloaded initially). To keep things neat and have a consistent directory name, I did the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Created a new directory named jdk-21:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir ~/jdk-21
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Moved all the extracted contents into this new directory:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mv ~/jdk-21.0.6/* ~/jdk-21/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Finally, I removed the now-empty jdk-21.0.6 folder:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rmdir ~/jdk-21.0.6
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At this point, I had my JDK neatly placed inside ~/jdk-21.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Setting Up the Environment Variables
&lt;/h3&gt;

&lt;p&gt;To ensure that my system could recognize Java commands globally, I had to set up environment variables. Here’s how I did it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Opened the bashrc file for editing using Nano:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nano ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Scrolled to the bottom and added the following lines:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Java
export JAVA_HOME="/home/nabil/jdk-21"
export PATH=$PATH:$JAVA_HOME/bin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fp5oh23mvasz00m8gb3h3.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%2Fp5oh23mvasz00m8gb3h3.png" alt="Image description" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Saved the file (CTRL + X, then Y, then Enter).
Applied the changes immediately by running:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To verify that Java was installed and accessible, I ran:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&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%2F691ndeggcefoy6a7aeox.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%2F691ndeggcefoy6a7aeox.png" alt="Image description" width="800" height="162"&gt;&lt;/a&gt;&lt;br&gt;
It successfully displayed the installed Java version! 🎉&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Installing Eclipse IDE
&lt;/h3&gt;

&lt;p&gt;Since Caleb uses Eclipse IDE in his tutorial, I decided to install it for consistency. I installed Eclipse from Ubuntu's App Center. &lt;/p&gt;

&lt;h3&gt;
  
  
  4. Creating My First Java Project
&lt;/h3&gt;

&lt;p&gt;With Eclipse up and running, I created a new Java project to test everything:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clicked on File → New → Java Project.&lt;/li&gt;
&lt;li&gt;Named the project hello.&lt;/li&gt;
&lt;li&gt;Clicked Finish to create the project.&lt;/li&gt;
&lt;li&gt;And that’s it! My Java development environment was fully set up and ready to go.&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%2Fehp7dmoupk7h7y01pmf5.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%2Fehp7dmoupk7h7y01pmf5.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;P.S. If you think my explanation sucks(it actually does😆), then you should be following &lt;a href="https://dev.java/learn/getting-started/" rel="noopener noreferrer"&gt;this&lt;/a&gt; guide from dev.java which is really awesome, by the way!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/nabilbndev/java-newbie-to-pro-day-2-how-i-create-my-first-java-program-51m1"&gt;Here's the link to day 2 of my Java Journey&lt;/a&gt;😉&lt;/p&gt;

</description>
      <category>java</category>
      <category>programming</category>
      <category>development</category>
    </item>
    <item>
      <title>Java Newbie to Pro? My Java Learning Diary – Follow Along!</title>
      <dc:creator>Nabil Mahmud</dc:creator>
      <pubDate>Sun, 02 Feb 2025 13:22:24 +0000</pubDate>
      <link>https://dev.to/nabilbndev/java-newbie-to-pro-my-java-learning-diary-follow-along-1j22</link>
      <guid>https://dev.to/nabilbndev/java-newbie-to-pro-my-java-learning-diary-follow-along-1j22</guid>
      <description>&lt;p&gt;For the past two years, I’ve been bouncing between languages and frameworks—JavaScript, Ruby, Dart, React, Flutter, React Native, Ruby on Rails—you name it. Some call it procrastination (I prefer "thorough research"), but after all that exploring, I’ve finally made up my mind. This time, I’m committing to Java like never before.&lt;/p&gt;

&lt;p&gt;Why Java? Let’s be honest—endless research (read: procrastination) burned me out. And I need to get a job, right? No one is hiring a “full-stack everything” guy. It’s time to specialize. While learning Dart for Flutter, I became fascinated with Object-Oriented Programming (OOP). That interest never faded, and since Java is a OOP language, I figured out now’s the perfect time to dive in and level up my skills!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/r3GGV2TG_vw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I'm following this tutorial, and Caleb's teaching style is awesome, by the way!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After exploring different resources, I found dev.java's &lt;a href="https://dev.java/learn/" rel="noopener noreferrer"&gt;Learn Java tutorials&lt;/a&gt; and &lt;a href="https://www.youtube.com/watch?v=r3GGV2TG_vw" rel="noopener noreferrer"&gt;Caleb Curry’s Java tutorials&lt;/a&gt; particularly insightful and worth following. In this blog series, I’ll document my journey of learning Java from these resources—sharing key takeaways, challenges, and insights along the way.&lt;br&gt;
Hope you'll be with me and help me with your two cents. Without further ado LET'S JUMP IN!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/nabilbndev/java-newbie-to-pro-day-1-how-i-set-up-my-java-dev-environment-3859"&gt;Day-1: setting up development environment.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>programming</category>
      <category>learning</category>
    </item>
    <item>
      <title>Dart 101: A Pure Function</title>
      <dc:creator>Nabil Mahmud</dc:creator>
      <pubDate>Mon, 14 Oct 2024 04:17:38 +0000</pubDate>
      <link>https://dev.to/nabilbndev/dart-101-pure-function-3d4e</link>
      <guid>https://dev.to/nabilbndev/dart-101-pure-function-3d4e</guid>
      <description>&lt;h2&gt;
  
  
  A very brief intro:
&lt;/h2&gt;

&lt;p&gt;Before getting to know what a pure function is we had better learn about side effects. If a function prints anything to the console or changes any value outside of its own block then it is having side effects. To put it simply, it is having effect outside of its own tiny world i.e. the area defined by two curly braces.&lt;/p&gt;

&lt;p&gt;This is one example of a function having a side effect:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;void shoutOutLoud(String message) {
  print(message);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is yet another example of a function having a side effect:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int villagePopulation = 50000;
String shoutOutLoud(String message) {
  villagePopulation = 1;
  return message;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  A pure function:
&lt;/h2&gt;

&lt;p&gt;A function that takes its inputs and only returns its output without affecting any other stuff in a program is called a pure function. In a word a function that do not impose any side effects is a pure function.&lt;/p&gt;

&lt;p&gt;Following is an example of a pure function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;String shoutOutLoud(String message) {
  return message;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above mentioned function shall only return the message which is of string type. It will not affect anything outside of it or print anything to the screen.&lt;/p&gt;

</description>
      <category>dart</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Dart 101: Parameter vs Argument</title>
      <dc:creator>Nabil Mahmud</dc:creator>
      <pubDate>Sun, 13 Oct 2024 15:49:36 +0000</pubDate>
      <link>https://dev.to/nabilbndev/argument-vs-parameter-in-light-of-dart-language-5f8</link>
      <guid>https://dev.to/nabilbndev/argument-vs-parameter-in-light-of-dart-language-5f8</guid>
      <description>&lt;h2&gt;
  
  
  Parameter
&lt;/h2&gt;

&lt;p&gt;A parameter is a placeholder for a function's potential input value. At the time of declaring a function its parameter/parameters is/are inscribed within its parentheses. If a function needs multiple parameters for multiple input values, the parameters need to be comma separated.&lt;/p&gt;

&lt;p&gt;In the following code block we have declared a function named &lt;strong&gt;getFullName&lt;/strong&gt;. Here, &lt;strong&gt;firstName&lt;/strong&gt; and &lt;strong&gt;lastName&lt;/strong&gt; are the parameters of &lt;strong&gt;getFullName&lt;/strong&gt; function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;String getFullName(String firstName, String lastName) {
  return "Full Name: $firstName $lastName";
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Argument
&lt;/h2&gt;

&lt;p&gt;An argument is the actual input which is passed down to a function when the function is called, and in that case the argument replaces the parameter.&lt;/p&gt;

&lt;p&gt;In the following code block we have called the &lt;strong&gt;getFullName&lt;/strong&gt; function and assigned its return value to &lt;strong&gt;myFullName&lt;/strong&gt; variable. Here, &lt;strong&gt;myFirstName&lt;/strong&gt; and &lt;strong&gt;mySecondName&lt;/strong&gt; are arguments of the &lt;strong&gt;getFullName&lt;/strong&gt; function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;void main() {
  const myFirstName = "Nabil";
  const mySecondName = "Mahmud";
  final myFullName = getFullName(myFirstName, mySecondName);
  print(myFullName);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;N.B. A parameter is an abstract or virtual thing, but an argument is a concrete or actual thing.&lt;/p&gt;

</description>
      <category>dart</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
