<?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: Madiha Aijaz</title>
    <description>The latest articles on Forem by Madiha Aijaz (@madiha_aijaz_1d7456030d84).</description>
    <link>https://forem.com/madiha_aijaz_1d7456030d84</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%2F3730174%2F60d5de65-b6e5-414a-be9f-ea70892e6f34.png</url>
      <title>Forem: Madiha Aijaz</title>
      <link>https://forem.com/madiha_aijaz_1d7456030d84</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/madiha_aijaz_1d7456030d84"/>
    <language>en</language>
    <item>
      <title>If you think ‘Hello, World!’ is pointless, you missed the lesson.</title>
      <dc:creator>Madiha Aijaz</dc:creator>
      <pubDate>Mon, 26 Jan 2026 14:03:36 +0000</pubDate>
      <link>https://forem.com/madiha_aijaz_1d7456030d84/if-you-think-hello-world-is-pointless-you-missed-the-lesson-2k2m</link>
      <guid>https://forem.com/madiha_aijaz_1d7456030d84/if-you-think-hello-world-is-pointless-you-missed-the-lesson-2k2m</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/madiha_aijaz_1d7456030d84" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F3730174%2F60d5de65-b6e5-414a-be9f-ea70892e6f34.png" alt="madiha_aijaz_1d7456030d84"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/madiha_aijaz_1d7456030d84/why-every-developer-starts-with-hello-world-53ho" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Why Every Developer Starts With “Hello, World!"&lt;/h2&gt;
      &lt;h3&gt;Madiha Aijaz ・ Jan 26&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#ai&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ai</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Why Every Developer Starts With “Hello, World!"</title>
      <dc:creator>Madiha Aijaz</dc:creator>
      <pubDate>Mon, 26 Jan 2026 14:01:40 +0000</pubDate>
      <link>https://forem.com/madiha_aijaz_1d7456030d84/why-every-developer-starts-with-hello-world-53ho</link>
      <guid>https://forem.com/madiha_aijaz_1d7456030d84/why-every-developer-starts-with-hello-world-53ho</guid>
      <description>&lt;p&gt;Every developer has written “Hello, World!”.&lt;br&gt;
Most of us don’t remember the syntax, but we remember the moment it worked.&lt;/p&gt;

&lt;p&gt;I didn’t understand my first program. But when “Hello, World!” appeared on the screen, I knew one thing: the computer listened. That was enough.&lt;/p&gt;

&lt;p&gt;Calling it pointless misses the point.&lt;/p&gt;

&lt;h2&gt;
  
  
  It’s Not About the Output
&lt;/h2&gt;

&lt;p&gt;“Hello, World!” doesn’t teach you how to print text. It teaches you that you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write instructions&lt;/li&gt;
&lt;li&gt;Run them&lt;/li&gt;
&lt;li&gt;Get predictable results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That feedback loop is the foundation of programming. Everything else builds on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beginners Need Proof, Not Complexity
&lt;/h2&gt;

&lt;p&gt;Throwing beginners into frameworks and tooling is a fast way to lose them. “Hello, World!” removes the noise and delivers a quick, undeniable win.&lt;/p&gt;

&lt;p&gt;One line.&lt;br&gt;
One result.&lt;br&gt;
Confidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where It Actually Came From
&lt;/h2&gt;

&lt;p&gt;The tradition started in &lt;strong&gt;1972&lt;/strong&gt;, when &lt;strong&gt;Brian Kernighan&lt;/strong&gt; used “hello, world” in an internal Bell Labs memo (&lt;em&gt;A Tutorial Introduction to the Language B&lt;/em&gt;). It later appeared in a &lt;strong&gt;1974 C tutorial&lt;/strong&gt;, and finally reached mass adoption through &lt;em&gt;The C Programming Language&lt;/em&gt; (1978), co-authored by &lt;strong&gt;Kernighan and Dennis Ritchie&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That book made it the first program for an entire generation of developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why We Still Use It
&lt;/h2&gt;

&lt;p&gt;Even experienced devs still start with “Hello, World!” when learning a new language or setting up an environment. It’s the fastest way to answer one question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Does this work?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;“Hello, World!” isn’t outdated—it’s foundational.&lt;/p&gt;

&lt;p&gt;If you think it’s useless, you’re not more advanced. You’ve just forgotten what starting feels like.&lt;/p&gt;




</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ai</category>
      <category>javascript</category>
    </item>
    <item>
      <title>When Sequelize Syncs, Your Database Listens</title>
      <dc:creator>Madiha Aijaz</dc:creator>
      <pubDate>Sun, 25 Jan 2026 18:53:08 +0000</pubDate>
      <link>https://forem.com/madiha_aijaz_1d7456030d84/when-sequelize-syncs-your-database-listens-3jmg</link>
      <guid>https://forem.com/madiha_aijaz_1d7456030d84/when-sequelize-syncs-your-database-listens-3jmg</guid>
      <description>&lt;p&gt;You leaned back in your chair as the terminal scrolled past.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Green logs.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;No warnings.&lt;/strong&gt;&lt;br&gt;
The server restarted cleanly.&lt;/p&gt;

&lt;p&gt;Confident, you opened the database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Empty.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tables were there — but the rows were gone.&lt;br&gt;
Clean. Fresh. Like nothing had ever lived there.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“That makes no sense,” you said out loud.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;“I didn’t delete anything.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You stood up and walked to the whiteboard, uncapping a marker.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“This,” you said, drawing a large rectangle, “is my database.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You paused.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“It’s not just code,” you realized.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;“It’s where my code leaves permanent marks.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  The Database (A Real System)
&lt;/h2&gt;

&lt;p&gt;It’s easy to forget what a database really is.&lt;/p&gt;

&lt;p&gt;When you’re working in JavaScript, everything feels &lt;strong&gt;temporary&lt;/strong&gt;.&lt;br&gt;
Variables come and go.&lt;br&gt;
Functions finish and disappear.&lt;/p&gt;

&lt;p&gt;But a &lt;strong&gt;database isn’t like that&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tables are &lt;strong&gt;real&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Rows are &lt;strong&gt;real&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;And once they’re gone, they don’t come back just because you didn’t &lt;em&gt;mean&lt;/em&gt; it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You wrote the line you trusted:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;sequelize&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sync&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“This is just setup,” you thought.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;“Just making sure things exist.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What &lt;code&gt;sequelize.sync()&lt;/code&gt; Actually Does
&lt;/h2&gt;

&lt;p&gt;You drew two columns on the board:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Left:&lt;/strong&gt; Sequelize models&lt;br&gt;
&lt;strong&gt;Right:&lt;/strong&gt; Database tables&lt;/p&gt;

&lt;p&gt;When your app starts, Sequelize compares these two worlds.&lt;/p&gt;

&lt;p&gt;It asks simple questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does this table exist?&lt;/li&gt;
&lt;li&gt;Does this model exist?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a table is &lt;strong&gt;missing&lt;/strong&gt;, Sequelize &lt;strong&gt;creates it&lt;/strong&gt;.&lt;br&gt;
If a table &lt;strong&gt;already exists&lt;/strong&gt;, it &lt;strong&gt;leaves it alone&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That’s &lt;code&gt;sequelize.sync()&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Helpful. Predictable. Mostly safe.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So why was your data gone?&lt;/p&gt;

&lt;p&gt;You looked back at your code and noticed one small detail.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Option That Changes Everything
&lt;/h2&gt;

&lt;p&gt;You added another line beneath it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;sequelize&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sync&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;force&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One extra option.&lt;br&gt;
One extra word.&lt;/p&gt;

&lt;p&gt;It didn’t look dangerous.&lt;br&gt;
It didn’t look dramatic.&lt;/p&gt;

&lt;p&gt;But it meant something very specific.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;force: true&lt;/code&gt; doesn’t ask questions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Whatever is there — remove it.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  What Happens Behind the Scenes
&lt;/h2&gt;

&lt;p&gt;Sequelize doesn’t work in abstractions.&lt;/p&gt;

&lt;p&gt;It translates your models into &lt;strong&gt;real SQL commands&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When &lt;code&gt;force: true&lt;/code&gt; is present, the commands look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;DROP&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;DROP&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;DROP&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;products&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt; &lt;span class="p"&gt;(...);&lt;/span&gt;
&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt; &lt;span class="p"&gt;(...);&lt;/span&gt;
&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;products&lt;/span&gt; &lt;span class="p"&gt;(...);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The tables come back.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your data does not.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;From Sequelize’s point of view, the job was done &lt;strong&gt;perfectly&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Trap You Don’t Notice
&lt;/h2&gt;

&lt;p&gt;You wrote the startup code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;sequelize&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sync&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;force&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It runs &lt;strong&gt;every time the app starts&lt;/strong&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;App restarts → tables dropped&lt;/li&gt;
&lt;li&gt;App restarts → tables recreated&lt;/li&gt;
&lt;li&gt;App restarts → data erased&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No crash.&lt;br&gt;
No error.&lt;br&gt;
No warning.&lt;/p&gt;

&lt;p&gt;Just &lt;strong&gt;quiet obedience&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tracing the Damage
&lt;/h2&gt;

&lt;p&gt;Step by step:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Server boots&lt;/li&gt;
&lt;li&gt;Sequelize connects to the database&lt;/li&gt;
&lt;li&gt;Existing tables are detected&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;force: true&lt;/code&gt; gives permission&lt;/li&gt;
&lt;li&gt;Tables are dropped&lt;/li&gt;
&lt;li&gt;Tables are rebuilt from models&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The data didn’t disappear.&lt;br&gt;
It was replaced with &lt;strong&gt;emptiness&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  When Each One Is Safe
&lt;/h2&gt;

&lt;p&gt;Use &lt;code&gt;sequelize.sync()&lt;/code&gt; when you want &lt;strong&gt;alignment&lt;/strong&gt; —&lt;br&gt;
when you want Sequelize to &lt;strong&gt;help, not decide&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Use &lt;code&gt;sequelize.sync({ force: true })&lt;/code&gt; &lt;strong&gt;only&lt;/strong&gt; when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You are experimenting&lt;/li&gt;
&lt;li&gt;You expect &lt;strong&gt;total data loss&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;You want a &lt;strong&gt;clean slate&lt;/strong&gt; on purpose&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And most importantly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Never leave it where it can run again.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;ORMs feel gentle.&lt;br&gt;
They feel protective.&lt;br&gt;
They feel like they’re keeping you safe.&lt;/p&gt;

&lt;p&gt;But every abstraction still sends &lt;strong&gt;real commands to real systems&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Databases don’t understand intention.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;They only understand instructions.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It doesn’t guess what you mean.&lt;br&gt;
It does &lt;strong&gt;exactly what you tell it to do.&lt;/strong&gt;&lt;/p&gt;




</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>database</category>
    </item>
  </channel>
</rss>
