<?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: Sakib Reza</title>
    <description>The latest articles on Forem by Sakib Reza (@sakibreza229).</description>
    <link>https://forem.com/sakibreza229</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%2F2162608%2F6212b80d-148d-4a52-8282-77901df7ad90.jpg</url>
      <title>Forem: Sakib Reza</title>
      <link>https://forem.com/sakibreza229</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sakibreza229"/>
    <language>en</language>
    <item>
      <title>Bash vs. Zsh vs. Fish: Which One Should You Actually Use?</title>
      <dc:creator>Sakib Reza</dc:creator>
      <pubDate>Thu, 16 Apr 2026 11:09:24 +0000</pubDate>
      <link>https://forem.com/sakibreza229/bash-vs-zsh-vs-fish-which-one-should-you-actually-use-1n9f</link>
      <guid>https://forem.com/sakibreza229/bash-vs-zsh-vs-fish-which-one-should-you-actually-use-1n9f</guid>
      <description>&lt;p&gt;&lt;strong&gt;Let’s be real for a second.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you’ve ever opened a terminal and thought, “Wait, am I using the right shell?” — you’re not alone. For years, I just used whatever was there. Usually Bash. Sometimes Zsh if I was on a friend’s Mac. But then I heard people raving about Fish and suddenly I felt like I’d been living under a rock.&lt;/p&gt;

&lt;p&gt;So I tried all three. Here’s the honest, human take.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Bash: The Old Reliable
&lt;/h2&gt;

&lt;p&gt;Bash is like that pair of jeans you’ve had forever. Not stylish, not exciting, but they fit and they work.&lt;/p&gt;

&lt;p&gt;It’s everywhere. Seriously. Every Linux server, every Raspberry Pi, every Docker container — Bash is there. If you write a script in Bash, you can be 99% sure it’ll run on anything without installing extra stuff.&lt;/p&gt;

&lt;p&gt;But here’s the thing: using Bash interactively in 2025 feels… dated. No syntax highlighting. No autosuggestions. Tab completion is basic. You can add plugins and tweak your .bashrc until your fingers hurt, but out of the box? It’s a bit rough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; Great for scripts, boring for daily typing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Zsh: The Power User’s Sweet Spot
&lt;/h2&gt;

&lt;p&gt;Zsh is what happens when Bash goes to the gym and gets a cool haircut.&lt;/p&gt;

&lt;p&gt;It’s still compatible with most Bash stuff (which is huge), but it adds a ton of quality-of-life improvements. Better tab completion. Globbing that doesn’t make your brain hurt. And then there’s Oh My Zsh — a community-driven plugin system that turns Zsh into a beast.&lt;/p&gt;

&lt;p&gt;Want a cool prompt with Git info? Done.&lt;br&gt;
Want to type docker  and hit tab to see all your containers? Yep.&lt;br&gt;
Want aliases for everything? Go wild.&lt;/p&gt;

&lt;p&gt;The only downside? You can go overboard. My Zsh config once took 2 seconds to load because I had 47 plugins. That was on me, not Zsh.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; The best all-rounder. Most developers will love it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Fish: The “Wait, That Just Works?” Shell
&lt;/h2&gt;

&lt;p&gt;Fish is different. And I mean different.&lt;/p&gt;

&lt;p&gt;You install it, open it, and — oh wow. Syntax highlighting immediately. Autosuggestions in gray that you can accept with Ctrl+F. Tab completion that actually understands what you’re trying to do. It feels like someone actually designed a shell for humans.&lt;/p&gt;

&lt;p&gt;Configuration is hilarious: just type fish_config and a web page opens where you can click buttons to change colors. No joke.&lt;/p&gt;

&lt;p&gt;But — and this is a big but — Fish is not Bash-compatible. If you copy-paste a Bash script into Fish, it might just laugh at you. So if you live in a world of other people’s shell scripts, that can sting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; Pure joy for interactive use. Frustrating if you need strict compatibility.&lt;/p&gt;




&lt;h2&gt;
  
  
  So Which One Is The Best?
&lt;/h2&gt;

&lt;p&gt;Honestly? There’s no single answer. But here’s what I’d tell a friend:&lt;/p&gt;

&lt;p&gt;· Stuck on servers or writing portable scripts? Stick with Bash. It’s not sexy, but it’s safe.&lt;br&gt;
· Want power + compatibility + cool themes? Get Zsh. Install Oh My Zsh. Don’t go crazy on plugins.&lt;br&gt;
· Hate configuring things and just want a shell that feels good? Try Fish. You’ll smile the first time you use it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Me? I use Zsh on my personal laptop (with about 10 plugins, not 47) and Bash on servers. And I secretly install Fish on new machines just to play with it for a day before switching back.&lt;/p&gt;

&lt;p&gt;Don’t let anyone tell you there’s a “right” answer. Try each for a week. See what makes you happy.&lt;/p&gt;

&lt;p&gt;Because at the end of the day, the best shell is the one you don’t have to fight.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;What shell are you using right now? Reply and tell me I’m wrong — I probably deserve it. 😄&lt;/em&gt;&lt;/p&gt;

</description>
      <category>terminal</category>
      <category>cli</category>
      <category>bash</category>
      <category>zsh</category>
    </item>
    <item>
      <title>Library vs Framework: Understanding the Key Differences in Programming</title>
      <dc:creator>Sakib Reza</dc:creator>
      <pubDate>Sun, 06 Apr 2025 16:13:31 +0000</pubDate>
      <link>https://forem.com/sakibreza229/library-vs-framework-understanding-the-key-differences-in-programming-35ol</link>
      <guid>https://forem.com/sakibreza229/library-vs-framework-understanding-the-key-differences-in-programming-35ol</guid>
      <description>&lt;p&gt;When learning programming, you’ll often hear the terms library and framework. Both encompass reusable code but in differing contexts. Understanding the distinction between the two helps you choose the most effective tool for your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-step comparison
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. What is a Library?
&lt;/h3&gt;

&lt;p&gt;A library is a group of pre-existing functions or modules from which your code can call in order to get some task done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You control the flow&lt;/strong&gt; - Your app calls the library when needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specialized purpose&lt;/strong&gt; - Libraries do a specific job (for instance, mathematics operations, HTTP requests).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lightweight&lt;/strong&gt; - Use no more than what you require.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;React (Library) →&lt;/strong&gt; For developing UI components. You get to decide how your app should be structured.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lodash (Library) →&lt;/strong&gt; Provides array utility methods, object utility methods, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. What is a Framework
&lt;/h3&gt;

&lt;p&gt;A template is a preformatted arrangement through which your application learns how it should be made. It provides a pre-set structure with pre-formulated rules.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It controls the flow –&lt;/strong&gt; Your code is placed in the framework's structure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complete architecture -&lt;/strong&gt; Frameworks contain routing tools, database access, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Convention over configuration –&lt;/strong&gt; You use its conventions for improved scalability.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Angular (Framework) →&lt;/strong&gt; Provides a full-fledged MVC web app framework.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Django (Framework) →&lt;/strong&gt; Handles back-end logic, database, as well as templating.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Key Differences Between Library and Framework&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Library&lt;/th&gt;
&lt;th&gt;Framework&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Control Flow&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your code calls the library&lt;/td&gt;
&lt;td&gt;Framework calls your code (Inversion of Control)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Flexibility&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;More flexible, plug-and-play&lt;/td&gt;
&lt;td&gt;Less flexible, follows strict rules&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Size&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Smaller, modular&lt;/td&gt;
&lt;td&gt;Larger, provides full infrastructure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Usage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Used for specific tasks&lt;/td&gt;
&lt;td&gt;Used to build entire applications&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Examples&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;React, jQuery, Axios&lt;/td&gt;
&lt;td&gt;Angular, Django, Ruby on Rails&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Why Use a Library vs a Framework?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Use a Library When:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✔ You need only specific functionalities (e.g., DOM manipulation with jQuery).&lt;br&gt;
✔ You want more control over your application structure.&lt;br&gt;
✔ Your project is small or requires lightweight solutions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use a Framework When:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✔ You’re building a large-scale application (e.g., enterprise software).&lt;br&gt;
✔ You need built-in tools for security, routing, and databases.&lt;br&gt;
✔ You prefer standardized best practices.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Library →&lt;/strong&gt; A toolbox with specific tools you use when needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framework →&lt;/strong&gt; A blueprint that defines how your entire house (app) should be built.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The choice between the two depends on your project's needs. Libraries are adaptable, while frameworks promise structure, together with efficiency.&lt;/p&gt;

</description>
      <category>libraryvsframework</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Must-Have GNOME Extensions for a Faster, Prettier Desktop</title>
      <dc:creator>Sakib Reza</dc:creator>
      <pubDate>Tue, 25 Mar 2025 22:17:07 +0000</pubDate>
      <link>https://forem.com/sakibreza229/must-have-gnome-extensions-for-a-faster-prettier-desktop-1m2e</link>
      <guid>https://forem.com/sakibreza229/must-have-gnome-extensions-for-a-faster-prettier-desktop-1m2e</guid>
      <description>&lt;p&gt;If you're using GNOME as your desktop environment, you know that extensions can greatly enhance your workflow and customization. Here are some of my favorite GNOME extensions that I find useful for productivity and aesthetics.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Essential Extensions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Blur My Shell
&lt;/h3&gt;

&lt;p&gt;This extension adds a beautiful blur effect to the top bar, overview, and other UI elements, making the desktop look more modern and polished.&lt;/p&gt;

&lt;h3&gt;
  
  
  Clipboard Indicator
&lt;/h3&gt;

&lt;p&gt;A must-have for productivity! It keeps a history of your clipboard entries, allowing you to quickly access previously copied text or files.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dash to Dock
&lt;/h3&gt;

&lt;p&gt;Transforms the default GNOME dash into a fully customizable dock. You can adjust its position, transparency, and behavior to suit your workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎨 UI &amp;amp; Customization
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Rounded Corners
&lt;/h3&gt;

&lt;p&gt;Gives your windows and menus smooth rounded corners for a softer, more modern look.&lt;/p&gt;

&lt;h3&gt;
  
  
  Coverflow Alt-Tab
&lt;/h3&gt;

&lt;p&gt;Replaces the default Alt-Tab switcher with a stylish coverflow effect, making it easier to navigate between open apps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Top Bar Organizer (Optional)
&lt;/h3&gt;

&lt;p&gt;Helps you rearrange and group system icons in the top bar for a cleaner layout.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ Productivity Boosters
&lt;/h2&gt;

&lt;h3&gt;
  
  
  App Indicator
&lt;/h3&gt;

&lt;p&gt;Brings back system tray icons for apps that require them (like Discord, Steam, etc.).&lt;/p&gt;

&lt;h3&gt;
  
  
  Places Status Indicator
&lt;/h3&gt;

&lt;p&gt;Quick access to frequently used folders directly from the top bar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Simple Timer
&lt;/h3&gt;

&lt;p&gt;A lightweight timer extension for setting quick reminders or productivity sessions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vitals
&lt;/h3&gt;

&lt;p&gt;Displays system stats (CPU, RAM, temperature, etc.) in the top bar—great for monitoring performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎉 Fun &amp;amp; Optional Extensions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Wiggle
&lt;/h3&gt;

&lt;p&gt;Makes windows wiggle when you drag them—just for fun!&lt;/p&gt;

&lt;h3&gt;
  
  
  Emoji Copy
&lt;/h3&gt;

&lt;p&gt;Quickly copy emojis from a pop-up menu.&lt;/p&gt;

&lt;h3&gt;
  
  
  Caffeine
&lt;/h3&gt;

&lt;p&gt;Prevents your system from going to sleep when you’re watching videos or giving a presentation.&lt;/p&gt;




&lt;p&gt;These extensions help me get the most out of GNOME while keeping my desktop functional and visually appealing. What are your favorite GNOME extensions? Let me know in the comments!&lt;/p&gt;

&lt;p&gt;🔗 Find these extensions at: GNOME Extensions&lt;/p&gt;

&lt;p&gt;(Note: Some extensions may depend on your GNOME version. Always check compatibility before installing.)&lt;/p&gt;

</description>
      <category>linux</category>
      <category>gnome</category>
      <category>extensions</category>
    </item>
    <item>
      <title>My Development Journey: From Novice to Developer</title>
      <dc:creator>Sakib Reza</dc:creator>
      <pubDate>Sat, 05 Oct 2024 16:09:59 +0000</pubDate>
      <link>https://forem.com/sakibreza229/my-development-journey-from-novice-to-developer-2dam</link>
      <guid>https://forem.com/sakibreza229/my-development-journey-from-novice-to-developer-2dam</guid>
      <description>&lt;h2&gt;
  
  
  My Journey into Web and App Development 🚀
&lt;/h2&gt;

&lt;p&gt;No developer has the same path; there are always challenges to be faced, things to be learned, and triumphs attained. From a place of curiosity about how websites and applications work, I grew a strong interest in creation and problem-solving. In this post, I shortly share my development story: my journey, the challenges I faced, and what I learned along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding Out My Interest 💡
&lt;/h2&gt;

&lt;p&gt;It actually started with a college project: to build a website. That fascinated me so much. The way it feels when something interactive comes right from scratch is just magic. Spending hours experimenting with HTML and CSS was my introduction to the world of programming. My fascination made me understand how different pieces fit together to make an operating website. This marked the beginning of my journey in programming.&lt;/p&gt;

&lt;h2&gt;
  
  
  Taking My First Step 🎓
&lt;/h2&gt;

&lt;p&gt;Curiosity got the better of me, and to turn this curiosity into something real, I joined a beginner's programming course. I opted for the Complete Web Development course from Programming Hero. It gave me a base for my skills,  but that did not come easy. The learning curve was steep, and nights turned into late nights trying to get my code to work.&lt;br&gt;
However, finally getting my projects to come to life keeps me running through frustrating debugging and countless tutorials.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overcoming Challenges 💪
&lt;/h2&gt;

&lt;p&gt;What was difficult was to keep up the motivation of facing the challenges. Many times in my head, it just felt like there was so much more for me to learn. One thing I did know, though, was that a big problem needed to be broken into smaller pieces-first of all, simpler tasks; secondly, instead of trying to do all of them at once, just doing one allowed me to celebrate small victories.&lt;br&gt;
Joining online developer communities and attending local meetups also played a huge role in staying inspired. Surrounding myself with like-minded people reminded me that we’re all learning at our own pace.&lt;/p&gt;

&lt;h2&gt;
  
  
  Expanding My Skill Set 🌱
&lt;/h2&gt;

&lt;p&gt;Once I was comfortable with the basics, I soon started exploring the other areas. I dived head-first into web and app development, starting with the languages and their respective frameworks: JavaScript, React, and Node.js. This had opened up the world of dynamic Web apps for me. I didn't stop there; I went ahead to explore Python and its respective frameworks, and databases and even fiddled around with C and C++.&lt;br&gt;
The broad skill set provided the capability of taking up a wide array of projects and working on creating an end-to-end solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stepping into Real-World Projects 🛠️
&lt;/h2&gt;

&lt;p&gt;It has been quite a rollercoaster-uplifting and intimidating-starting to work on actual projects right from learning. Actually, freelance gigs and internships were drilled into practice whereby I learned how to juggle clients' needs, manage time correctly, and solve problems under pressure. Each project was another chance to hone my skills, pushing me toward becoming a better all-around developer. Curious to see what I’ve built? &lt;a href="https://github.com/sakibreza279" rel="noopener noreferrer"&gt;Click here&lt;/a&gt; to check out some of my web and app projects!&lt;/p&gt;

&lt;h2&gt;
  
  
  Continuous Learning 🎯
&lt;/h2&gt;

&lt;p&gt;In tech, if you're not moving forward, then you're only going backward. I use my time to continually learn new languages, frameworks, and tools. To me, learning is one big unending process, whether through online courses, reading blogs, or contributing to open-source projects. This kind of thinking keeps me nimble, and able to adapt to an industry that never stops moving.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead 🔮
&lt;/h2&gt;

&lt;p&gt;I am grateful as I trace back my journey for each challenge, night spent debugging, and all those opportunities that have pushed me to grow. Moving forward, I'm excited about the possibilities. There's so much more to learn and build, and I'm ready to take on whatever comes next! &lt;/p&gt;

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

&lt;p&gt;The journey of becoming a developer is rarely smooth, but it’s incredibly rewarding. I hope sharing my story inspires fellow developers, especially those just starting out, to push through the tough times and find joy in the process. After all, every step forward—no matter how small—brings you closer to mastery and innovation.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>startup</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
