<?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: Mayan Okul</title>
    <description>The latest articles on DEV Community by Mayan Okul (@mayan-okul).</description>
    <link>https://dev.to/mayan-okul</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3965185%2F2dc9d51b-0600-4534-9498-926328367d44.jpeg</url>
      <title>DEV Community: Mayan Okul</title>
      <link>https://dev.to/mayan-okul</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mayan-okul"/>
    <language>en</language>
    <item>
      <title>The Room Where Everyone Except Me Knows What's Happening</title>
      <dc:creator>Mayan Okul</dc:creator>
      <pubDate>Mon, 06 Jul 2026 11:36:27 +0000</pubDate>
      <link>https://dev.to/mayan-okul/the-room-where-everyone-except-me-knows-whats-happening-jh1</link>
      <guid>https://dev.to/mayan-okul/the-room-where-everyone-except-me-knows-whats-happening-jh1</guid>
      <description>&lt;p&gt;You know that feeling. You walk into standup, everyone's talking about "the migration," someone says "just check the logs," another person laughs at a joke about Kubernetes, and you're standing there nodding like a bobble-head, understanding zero but performing "yes, this makes total sense to me too."&lt;/p&gt;

&lt;p&gt;That was me. Three months into tech, surrounded by people who clearly knew what they were doing, while I was still googling what a "log" even meant in this context (spoiler: not the wood kind).&lt;/p&gt;

&lt;p&gt;Here's what I've learned since — mostly by getting it wrong first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I tried first, that did not work&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nodding along.&lt;/strong&gt; I nodded in so many meetings I basically qualified as furniture. Then someone asked me directly what I thought, and I had nothing, because I hadn't actually been listening — I'd been performing understanding. Lesson learned fast: nodding doesn't buy you time, it just delays the moment you get caught.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using words I didn't fully own.&lt;/strong&gt; I once said "let's make sure this is scalable" about a feature literally three people would ever use. A senior dev just looked at me. That look taught me more than any course.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fixing my mess in silence.&lt;/strong&gt; I broke something once and spent forty-five minutes quietly trying to undo it before anyone noticed, sweating like it was the last day of a deadline. Someone noticed anyway. It's always noticed. I might as well have said something at minute two.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apologizing for existing.&lt;/strong&gt; "Sorry, this is probably a stupid question, sorry to bother you" — I said some version of this weekly. Nobody needed the apology. They just needed the question.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What actually started working&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Asking the real question, not the safe one.&lt;/strong&gt; Instead of "I don't get this," I started saying exactly where I got stuck: "when I run this command, the error says module not found, but I've already installed it — here's my package.json." Suddenly people could actually help me, because I'd stopped hiding the specific place I was lost.&lt;/p&gt;

&lt;p&gt;Saying "I don't know that word"out loud. The first time I asked "what's a log, actually, just plainly," I expected to be laughed at. Nobody laughed. Someone just explained it in one sentence and we moved on. Turns out most people have a list of things they also once didn't know and quietly figured out — asking just gets you there faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Talking about what I broke, immediately.&lt;/strong&gt; "I broke the build, here's the fix" became my new default sentence. Nobody remembers the bug a week later. Everybody remembers whether you told them or they found out themselves.&lt;/p&gt;

&lt;p&gt;**Building small, rough things instead of waiting to feel ready. **I stopped waiting until I "understood enough" and just built stuff — small, rough, sometimes embarrassing. Turns out a finished small project you can explain beats a half-finished big one you're still "planning."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Saying "I don't know, but I'll find out" instead of guessing.&lt;/strong&gt; This became my favorite sentence in the whole room. Not knowing was never the problem. Guessing wrong and getting caught was.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The actual realization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Everyone in that room once sat exactly where I was sitting — lost, nodding, terrified someone would ask them something direct. They just stopped hiding it faster than I did.&lt;/p&gt;

&lt;p&gt;You don't walk into the room already knowing what's happening. You walk in, admit you don't, ask the specific question, own the mess when you make one, and — slowly, without noticing exactly when — you become one of the people who knows what's happening. Somebody else is now the one nodding at the back, hoping nobody asks them anything.&lt;/p&gt;

&lt;p&gt;Be kind to that person. You were just them.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>HTTP Status Codes Explained with a Resturant Analogy</title>
      <dc:creator>Mayan Okul</dc:creator>
      <pubDate>Tue, 30 Jun 2026 10:09:52 +0000</pubDate>
      <link>https://dev.to/mayan-okul/http-status-codes-explained-with-a-resturant-analogy-2ajp</link>
      <guid>https://dev.to/mayan-okul/http-status-codes-explained-with-a-resturant-analogy-2ajp</guid>
      <description>&lt;p&gt;You order food.The kitchen responds.That's literally what HTTP is - and once you get this, servers will never feel mysterious again.&lt;/p&gt;

&lt;p&gt;A little backstory&lt;/p&gt;

&lt;p&gt;I'm a newcomer to web development, and for the longest time, servers and HTTP felt like some dark magic I wasn't supposed to understand yet. That changed when I started working on my ASCII-ART-WEB project at Zone01.&lt;/p&gt;

&lt;p&gt;The project required me to build an actual HTTP server from scratch — handling requests, sending responses, setting the right status codes. Suddenly all of this wasn't theoretical anymore. I had to understand it. And when it clicked, it clicked hard.&lt;/p&gt;

&lt;p&gt;This article is me passing that click on to you, using the analogy that finally made it stick.&lt;/p&gt;

&lt;p&gt;The internet is a restaurant&lt;/p&gt;

&lt;p&gt;Seriously. Every time you type a URL into your browser, you're basically sitting at a table and calling a waiter over.&lt;/p&gt;

&lt;p&gt;HTTP stands for HyperText Transfer Protocol. It's just the agreed-upon language that lets your browser and the server talk to each other. Nothing more mysterious than that.&lt;/p&gt;

&lt;p&gt;Every page load is a tiny round-trip conversation:&lt;/p&gt;

&lt;p&gt;Browser → [HTTP request] → Server → [HTTP response + status code] → Browser renders the page&lt;/p&gt;

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

&lt;p&gt;You type a URL and hit Enter&lt;br&gt;
Your browser sends an HTTP request to the server at that address&lt;br&gt;
The server receives the request and processes it&lt;br&gt;
The server sends back an HTTP response — which includes the data (a webpage, an image, JSON, etc.) and a status code&lt;br&gt;
Your browser reads the status code, then renders the page&lt;/p&gt;

&lt;p&gt;That status code is the kitchen's way of telling the waiter how the order went before the food even leaves the counter.&lt;/p&gt;

&lt;p&gt;What an HTTP request actually looks like&lt;/p&gt;

&lt;p&gt;When your browser asks for a page, it sends something like this under the hood:&lt;/p&gt;

&lt;p&gt;GET /menu HTTP/1.1&lt;br&gt;
Host: restaurant.com&lt;br&gt;
Accept: text/html&lt;/p&gt;

&lt;p&gt;And the server replies:&lt;/p&gt;

&lt;p&gt;HTTP/1.1 200 OK&lt;br&gt;
Content-Type: text/html&lt;br&gt;
Content-Length: 3456&lt;/p&gt;

&lt;p&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br&gt;
...&lt;/p&gt;

&lt;p&gt;That 200 at the top? That's the status code. It's the first thing the browser checks.&lt;/p&gt;

&lt;p&gt;The four status codes every dev must know&lt;/p&gt;

&lt;p&gt;There are over 60 official HTTP status codes, but these four will cover 90% of what you encounter day-to-day.&lt;/p&gt;

&lt;p&gt;200 — OK&lt;/p&gt;

&lt;p&gt;"The food arrived hot and exactly as ordered."&lt;/p&gt;

&lt;p&gt;The happy path. The server found what you asked for, processed everything correctly, and sent it back. This is what you want to see on every request.&lt;/p&gt;

&lt;p&gt;400 — Bad Request&lt;/p&gt;

&lt;p&gt;"You ordered in a language the kitchen doesn't understand."&lt;/p&gt;

&lt;p&gt;This means the request itself was broken — maybe it was missing required data, had invalid formatting, or sent something the server just can't parse. It's a client-side error, meaning the problem is in the request you sent, not the server.&lt;/p&gt;

&lt;p&gt;404 — Not Found&lt;/p&gt;

&lt;p&gt;"We checked the whole fridge. That dish doesn't exist here."&lt;/p&gt;

&lt;p&gt;The server is working fine, but the specific thing you asked for — that URL, that file, that route — simply doesn't exist. Classic example: you mistype a URL, or someone deleted a page that used to exist.&lt;/p&gt;

&lt;p&gt;500 — Internal Server Error&lt;/p&gt;

&lt;p&gt;"The oven exploded. It's not your fault — something broke inside the kitchen."&lt;/p&gt;

&lt;p&gt;The server tried to handle your request but something went wrong in its own code. This is a server-side error. As the user, you did nothing wrong. As the developer, this is where you open your logs and start debugging.&lt;/p&gt;

&lt;p&gt;The golden rule of status codes&lt;/p&gt;

&lt;p&gt;4xx = The customer's fault&lt;br&gt;
5xx = The kitchen's fault&lt;/p&gt;

&lt;p&gt;Memorise this. When you're debugging and you see a 4xx, look at what you're sending. When you see a 5xx, look at what the server is doing with it.&lt;/p&gt;

&lt;p&gt;The full status code family tree&lt;br&gt;
Status codes are grouped by their first digit:&lt;br&gt;
1xx-Informational-"Hold on,still cooking.."&lt;br&gt;
2xx-Success-"Here's your food,enjoy"&lt;br&gt;
3xx-Redirection-"Wrong table-they're at table 7 now"&lt;br&gt;
4xx-Client error-"Your order is the problem"&lt;br&gt;
5xx-Server error-"The kitchen is having a moment"&lt;/p&gt;

&lt;p&gt;A few other useful ones you'll bump into:&lt;/p&gt;

&lt;p&gt;201 Created — used in APIs when something new was successfully created (like a new user account)&lt;br&gt;
301 Moved Permanently — the URL has changed forever, the server redirects you&lt;br&gt;
401 Unauthorized — you need to log in first&lt;br&gt;
403 Forbidden — you're logged in but you're not allowed to access this&lt;br&gt;
422 Unprocessable Entity — the server understood your request but couldn't process it (common in form validation)&lt;/p&gt;

&lt;p&gt;How ASCII-ART-WEB helped me understand all of this&lt;/p&gt;

&lt;p&gt;When I was working on the ASCII-ART-WEB project at Zone01, I had to build an HTTP server in Go that:&lt;/p&gt;

&lt;p&gt;Received a POST request with text from a web form&lt;br&gt;
Converted that text into ASCII art using a banner file&lt;br&gt;
Sent back the result as an HTTP response&lt;/p&gt;

&lt;p&gt;At first, I was just copying status codes without understanding them. Then I hit a bug: my server was sending 200 OK even when the input was invalid.&lt;/p&gt;

&lt;p&gt;A user would send an empty form — technically a bad request — and my server was responding like everything was fine. That's when the restaurant analogy hit me: if a customer orders nothing, the kitchen shouldn't just send back an empty plate with a smile. It should say "400 — your order doesn't make sense."&lt;/p&gt;

&lt;p&gt;Once I fixed that, my server started behaving like a real server.&lt;/p&gt;

&lt;p&gt;HTTP is just two sides talking to each other — a customer and a kitchen. Status codes are how the kitchen reports back. Once you stop thinking of them as mysterious numbers and start thinking of them as kitchen updates, the whole web starts making more sense.&lt;/p&gt;

&lt;p&gt;If you're working on any project that touches a server — even a small one like ASCII-ART-WEB — I'd genuinely encourage you to try building a basic HTTP handler yourself. Reading about status codes is one thing. Returning the wrong one and watching your app break in a confusing way is what actually teaches you.&lt;/p&gt;

&lt;p&gt;Thanks for reading! If you found this helpful or you're also a newcomer grinding through your first server project, drop a comment — I'd love to hear what you're building.Alsoo don't forget to fllow and connect with me on linked in &lt;a class="mentioned-user" href="https://dev.to/mayan"&gt;@mayan&lt;/a&gt; okul &lt;/p&gt;

&lt;p&gt;Status:200 OK.This article:served&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>http</category>
      <category>networking</category>
    </item>
    <item>
      <title>Git Will Humble You (And That's Okay) 😭🔥</title>
      <dc:creator>Mayan Okul</dc:creator>
      <pubDate>Wed, 17 Jun 2026 06:10:04 +0000</pubDate>
      <link>https://dev.to/mayan-okul/git-will-humble-you-and-thats-okay-my-first-ever-dev-article-and-yes-im-nervous-3lnk</link>
      <guid>https://dev.to/mayan-okul/git-will-humble-you-and-thats-okay-my-first-ever-dev-article-and-yes-im-nervous-3lnk</guid>
      <description>&lt;p&gt;Hey fam &lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is my first ever dev article, and yes - I'm nervous.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So real talk — nobody warned me that learning to code would sometimes feel like arguing with a robot that's always right and never explains why you're wrong.&lt;/p&gt;

&lt;p&gt;That robot? Git.&lt;/p&gt;

&lt;p&gt;If you're a first-time developer, you've probably already had that moment. You type some command with full confidence, hit enter, and then... chaos. Your files are gone. Or duplicated. Or you're somehow on a branch that doesn't exist. Or the classic — you pushed to main when you absolutely should not have.&lt;/p&gt;

&lt;p&gt;We've all been there. This post is for you. &lt;/p&gt;

&lt;p&gt;What Even IS Git?&lt;/p&gt;

&lt;p&gt;Git is a version control system — basically a time machine for your code. It tracks every change you make, lets you collaborate with other developers, and (in theory) saves you from destroying your own project.&lt;/p&gt;

&lt;p&gt;The key word there is in theory.&lt;/p&gt;

&lt;p&gt;The Commands That Will Ruin Your Day (If You're Not Careful)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;git push --force&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Oh, this one. This is the "delete everything and ask questions never" command. If you force push to a shared branch without knowing what you're doing, your teammates will find you. Don't do it until you really understand what it does.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;git reset --hard&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hard reset sounds powerful because it is. It throws away all your uncommitted changes — no warning, no undo. Ran it once thinking it would fix my mess. It made a bigger mess. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;git merge vs git rebase&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These two will have you in a full philosophy debate at 2am. Both combine branches. Both will cause merge conflicts that look like ancient hieroglyphics. Learn the difference early — your future self will thank you.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Committing with no message (or a terrible one)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;git commit -m "fix" — said every developer who regretted it 3 weeks later. Be descriptive. Always.&lt;/p&gt;

&lt;p&gt;Why Mastering Git Early Actually Matters&lt;/p&gt;

&lt;p&gt;When you're just starting out, it's easy to think Git is just a way to upload your code to GitHub or Gitea and look productive. But here's the thing — Git is your safety net. The better you understand it:&lt;/p&gt;

&lt;p&gt;The less likely you are to lose work&lt;br&gt;
The easier it is to collaborate without chaos&lt;br&gt;
The more confident you look in team settings (yes, employers notice)&lt;br&gt;
The faster you can recover when things break — and they will break&lt;/p&gt;

&lt;p&gt;Git isn't just a tool. It's a habit. Build it early.&lt;/p&gt;

&lt;p&gt;Resources to Actually Get Good&lt;/p&gt;

&lt;p&gt;Here are some solid places to level up your Git, Go, Shell, and Rust game:&lt;/p&gt;

&lt;p&gt;Git:&lt;/p&gt;

&lt;p&gt;Pro Git Book — free, thorough, the bible&lt;br&gt;
Oh My Git! — learn Git through a game (yes, really)&lt;br&gt;
Learn Git Branching — visual and interactive&lt;/p&gt;

&lt;p&gt;Go (Golang):&lt;/p&gt;

&lt;p&gt;Go by Example — clean, no fluff&lt;/p&gt;

&lt;p&gt;Shell / Bash:&lt;/p&gt;

&lt;p&gt;The Linux Command Line by William Shotts — free online&lt;/p&gt;

&lt;p&gt;Rust:&lt;/p&gt;

&lt;p&gt;The Rust Book — the official one and it's actually great&lt;/p&gt;

&lt;p&gt;Now I Wanna Hear From YOU&lt;/p&gt;

&lt;p&gt;Drop it in the comments:&lt;/p&gt;

&lt;p&gt;What was your first Git disaster?&lt;br&gt;
What's the command that made you question your life choices?&lt;br&gt;
Are you learning Go, Shell, or Rust right now? How's it going?&lt;/p&gt;

&lt;p&gt;Let's laugh about it together — because if you're not breaking things, you're not learning.&lt;/p&gt;

&lt;p&gt;If this helped you even a little, drop a comment, and let's connect!&lt;/p&gt;

&lt;p&gt;Find me on LinkedIn → Mayan Okul — &lt;a class="mentioned-user" href="https://dev.to/mayan"&gt;@mayan&lt;/a&gt; Okul — come say hi, seriously.&lt;/p&gt;

&lt;p&gt;#git #golang #shell #rust #Zone01 #codenewbie #devjourney #programming #firstpost&lt;/p&gt;

&lt;p&gt;"Push code, not limits — unless it's a feature branch. Then push everything." &lt;br&gt;
— stay debugging, stay dangerous ⚡&lt;/p&gt;

&lt;p&gt;— Mayan, your fav developer__&lt;/p&gt;

</description>
      <category>git</category>
      <category>codenewbie</category>
      <category>devjourney</category>
      <category>shell</category>
    </item>
  </channel>
</rss>
