<?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: Prayush Adhikari</title>
    <description>The latest articles on DEV Community by Prayush Adhikari (@adhikareeprayush).</description>
    <link>https://dev.to/adhikareeprayush</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%2F1274304%2Fc9da5e02-7345-4dd7-9b65-e75e5811bca4.png</url>
      <title>DEV Community: Prayush Adhikari</title>
      <link>https://dev.to/adhikareeprayush</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adhikareeprayush"/>
    <language>en</language>
    <item>
      <title>Building a Career Network When You Don't Know a Single Person in Tech</title>
      <dc:creator>Prayush Adhikari</dc:creator>
      <pubDate>Tue, 03 Nov 2026 22:09:16 +0000</pubDate>
      <link>https://dev.to/adhikareeprayush/building-a-career-network-when-you-dont-know-a-single-person-in-tech-1fpn</link>
      <guid>https://dev.to/adhikareeprayush/building-a-career-network-when-you-dont-know-a-single-person-in-tech-1fpn</guid>
      <description>&lt;p&gt;You've heard it a hundred times: "it's all about who you know." Cool. You know your classmates, your professors, and nobody who works at a tech company.&lt;/p&gt;

&lt;p&gt;That advice is only useful if you already have the network. What nobody explains is how to build one starting from exactly zero, without feeling like a fraud sliding into strangers' inboxes.&lt;/p&gt;

&lt;p&gt;Here's the plan I'd give a younger version of myself, back before our IT club existed and I didn't know a single working developer either.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Networking Is a Savings Account, Not an ATM
&lt;/h2&gt;

&lt;p&gt;Most people only think about networking the week before they need a job, which is exactly why it feels awkward. That's like walking into a bank you've never opened an account with and asking for a loan.&lt;/p&gt;

&lt;p&gt;Real networking works like a savings account. Every genuine interaction, every helpful comment, every time you show up and contribute, is a small deposit. You're not trying to withdraw anything in that moment. Months or years later, when you actually need advice, an introduction, or a referral, there's something in the account to draw from.&lt;/p&gt;

&lt;p&gt;The people who seem to have "good luck" landing opportunities usually spent a long time quietly making deposits nobody noticed.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Networking Isn't What You Think It Is
&lt;/h2&gt;

&lt;p&gt;Forget the image of a stiff conference room, a stack of business cards, and forced small talk. That's not what actually works for a student, and it's not what most working developers enjoy either.&lt;/p&gt;

&lt;p&gt;Real networking looks more like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Commenting thoughtfully on someone's post&lt;/li&gt;
&lt;li&gt;Asking a genuine question in a community chat&lt;/li&gt;
&lt;li&gt;Helping someone with a problem you happen to know the answer to&lt;/li&gt;
&lt;li&gt;Sharing something you built and having a short exchange about it&lt;/li&gt;
&lt;li&gt;Attending a meetup and talking to two people, not fifty&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's just being a real, useful, curious person in front of other people, repeatedly, over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Start With the People You Already Have
&lt;/h2&gt;

&lt;p&gt;Before reaching out to strangers, look at your immediate circle. It's bigger than you think.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Classmates and club members.&lt;/strong&gt; Some of them will land jobs before you, get internships, or start companies. Today's classmate is tomorrow's referral.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Professors and teaching assistants.&lt;/strong&gt; They know people in industry, write recommendation letters, and remember students who actually engaged in class.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alumni from your college.&lt;/strong&gt; Alumni networks exist specifically because people like helping someone who studied where they did.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anyone already in your family or neighborhood who works in tech,&lt;/strong&gt; even loosely. A distant connection is still a connection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Running our IT club taught me that most opportunities I've seen come from people who already knew I built things, not from a cold application into a void.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Find Rooms Where the Right People Already Are
&lt;/h2&gt;

&lt;p&gt;You don't need to force conversations with strangers on the street. Go to spaces where the people you want to know are already hanging out.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local meetups and tech events,&lt;/strong&gt; in person if you can. Search for developer or startup meetups in your city.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Discord and Slack communities&lt;/strong&gt; built around a language, framework, or local tech scene.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-source projects,&lt;/strong&gt; where contributing naturally puts you in conversation with maintainers and other contributors. I wrote a whole post on making your first contribution if that's new to you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Twitter and LinkedIn threads&lt;/strong&gt; in your field, where replying with a genuine thought gets you noticed by people you'd never otherwise meet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hackathons,&lt;/strong&gt; which pack a room full of exactly the kind of people worth knowing, compressed into a weekend.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pick two or three of these and show up regularly. Consistency in one place beats scattering yourself thin across ten.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. How to Actually Talk to People (Without the Cringe)
&lt;/h2&gt;

&lt;p&gt;The fear here is usually "what do I even say?" Here's a shape that works almost anywhere:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Notice something specific.&lt;/strong&gt; A project they posted, a talk they gave, a comment they made.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Say what you noticed and why it stood out.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask a real question,&lt;/strong&gt; not a generic one.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Compare:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generic:&lt;/strong&gt; "Hey, I'd love to connect and learn from you!"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specific:&lt;/strong&gt; "I saw your post about migrating your app to a new framework. I'm about to do something similar for a small project. What surprised you most during that migration?"&lt;/p&gt;

&lt;p&gt;The second one shows you actually paid attention, and it gives them something easy and specific to answer. People respond to specific far more than to generic.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Give Before You Ask
&lt;/h2&gt;

&lt;p&gt;The fastest way to build goodwill is to be useful first, with no immediate ask attached.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Answer a question in a community you're part of&lt;/li&gt;
&lt;li&gt;Share someone else's project or post, genuinely, not for show&lt;/li&gt;
&lt;li&gt;Offer a small piece of help, like testing someone's app or pointing out a bug&lt;/li&gt;
&lt;li&gt;Introduce two people you know who should know each other&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this needs to be a grand gesture. Small, repeated helpfulness is what makes people remember you kindly, long before you ever need to ask them for anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Online Presence Is Part of Your Network Too
&lt;/h2&gt;

&lt;p&gt;You don't need to meet someone in person for them to become part of your network. A consistent online presence lets people find and recognize you before you ever say a word to them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep your GitHub and LinkedIn active and current&lt;/li&gt;
&lt;li&gt;Post about what you're building, even small things&lt;/li&gt;
&lt;li&gt;Reply thoughtfully in comment sections instead of just scrolling past&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the time you do message someone, they might already recognize your name. That completely changes how a cold message lands.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Asking for Help the Right Way
&lt;/h2&gt;

&lt;p&gt;Eventually you will need to ask someone for something: advice, a referral, feedback on your resume. Do it well:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Be specific.&lt;/strong&gt; "Could you review my resume?" is easier to say yes to than "Can you help me with my career?"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make it easy to decline.&lt;/strong&gt; "No pressure at all if you're busy" genuinely reduces the guilt of saying yes or no.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Respect their time.&lt;/strong&gt; A 15-minute call, not an hour. A short message, not an essay.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Follow up with results.&lt;/strong&gt; If their advice helped, tell them. It's the best thank-you there is, and it makes the next ask easier.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  9. Keep Track of Your People
&lt;/h2&gt;

&lt;p&gt;You'll meet more people than you can remember details about. A simple note works wonders:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Name, where you met them, what they do&lt;/li&gt;
&lt;li&gt;What you talked about&lt;/li&gt;
&lt;li&gt;Anything you promised to send or follow up on&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Checking in occasionally, not just when you need something, is what turns a one-time interaction into an actual relationship.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Introverts Can Do This Too
&lt;/h2&gt;

&lt;p&gt;If the idea of talking to strangers drains you, you don't need to become a different person. Networking has quieter forms that work just as well:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing thoughtful posts and comments instead of speaking up in every room&lt;/li&gt;
&lt;li&gt;One-on-one coffee chats instead of big group events&lt;/li&gt;
&lt;li&gt;Contributing to open source, where the interaction happens through code and comments&lt;/li&gt;
&lt;li&gt;Being deeply useful to a smaller number of people instead of broadly known to many&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Depth works as well as breadth. You don't need five hundred connections. You need a few dozen who actually know what you're capable of.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Mistakes That Undo Your Efforts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Only reaching out when you need something.&lt;/strong&gt; People notice the pattern.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Being vague.&lt;/strong&gt; Nobody can act on "let's connect sometime."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ghosting after getting help.&lt;/strong&gt; Follow up, say thanks, and close the loop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comparing your network to someone else's.&lt;/strong&gt; Some people start with family connections. You're not behind, you're building from a different starting point.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Treating every interaction as transactional.&lt;/strong&gt; Genuine curiosity about other people reads very differently from networking as a chore.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Your First Deposit
&lt;/h2&gt;

&lt;p&gt;Pick one person today: a classmate doing something interesting, a maintainer of a tool you use, someone whose post caught your eye. Say something specific and genuine. No ask attached.&lt;/p&gt;

&lt;p&gt;That's one deposit. Do it once a week, and in a year you won't be starting from zero anymore.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let's Connect
&lt;/h2&gt;

&lt;p&gt;I'm Prayush Adhikari, currently grinding through computer engineering, leading an IT club, and building my own company on the side. I write about Linux, productivity, and the honest side of being a developer.&lt;/p&gt;

&lt;p&gt;Tell me in the comments about the first person who helped your career move forward. I'd love to hear the story.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://linkedin.com/in/adhikareeprayush" rel="noopener noreferrer"&gt;linkedin.com/in/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/adhikareeprayush" rel="noopener noreferrer"&gt;github.com/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio: &lt;a href="https://prayushadhikari.com.np" rel="noopener noreferrer"&gt;prayushadhikari.com.np&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What should I write next: how to survive your first hackathon, or how to write a resume that gets past the filters before a human ever sees it?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>beginners</category>
      <category>networking</category>
      <category>students</category>
    </item>
    <item>
      <title>How to Answer "Tell Me About Yourself" Without Freezing Up</title>
      <dc:creator>Prayush Adhikari</dc:creator>
      <pubDate>Fri, 30 Oct 2026 19:15:40 +0000</pubDate>
      <link>https://dev.to/adhikareeprayush/how-to-answer-tell-me-about-yourself-without-freezing-up-47mo</link>
      <guid>https://dev.to/adhikareeprayush/how-to-answer-tell-me-about-yourself-without-freezing-up-47mo</guid>
      <description>&lt;p&gt;Every interview opens the same way. "So, tell me about yourself." Simple words, and somehow your brain goes completely blank.&lt;/p&gt;

&lt;p&gt;You know your own life. You've lived it. And yet the second someone asks you to summarize it out loud, on the spot, with a stranger judging your job prospects, it feels impossible to know where to even start.&lt;/p&gt;

&lt;p&gt;Here's the good news: this question isn't testing your life story. It's testing whether you can explain yourself clearly in under a minute. That's a skill, not a personality trait, and it's one you can build in an afternoon.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Think in Loglines, Not Life Stories
&lt;/h2&gt;

&lt;p&gt;Movie posters don't summarize the whole film. They give you a single line, called a logline, that captures the idea and makes you want to know more. "A shark terrorizes a beach town" is Jaws. Nobody expects the poster to cover the third act.&lt;/p&gt;

&lt;p&gt;Your answer to "tell me about yourself" needs the same restraint. You're not delivering your whole biography. You're giving the interviewer a clean, compelling logline for who you are professionally, one they'll want to ask follow-up questions about.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. What This Question Is Actually Asking
&lt;/h2&gt;

&lt;p&gt;Strip away the friendly phrasing and the real question is: "Can you tell me, in a minute, who you are, what you can do, and why you're here?" Interviewers use it to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;See if you can communicate clearly under a bit of pressure&lt;/li&gt;
&lt;li&gt;Understand your background before diving into specifics&lt;/li&gt;
&lt;li&gt;Judge whether your interests actually line up with the role&lt;/li&gt;
&lt;li&gt;Get a natural opening into the rest of the conversation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They're not looking for your hobbies since childhood or a full timeline of your degree. They want the shape of your professional story, in your own words.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. The Three-Part Shape
&lt;/h2&gt;

&lt;p&gt;Use this simple structure. It works for almost anyone, at almost any stage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Present.&lt;/strong&gt; Who you are right now, in one line. Your year, your field, your current focus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Past.&lt;/strong&gt; One or two things that got you here. A project, a turning point, a skill you built.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Future.&lt;/strong&gt; Why you're excited about this specific role or company.&lt;/p&gt;

&lt;p&gt;That's it. Present, past, future. It sounds almost too simple, which is exactly why it works: it gives your answer a beginning, a middle, and a clear direction, instead of a list of facts in random order.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. An Example, Built Piece by Piece
&lt;/h2&gt;

&lt;p&gt;Let's build one together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Present:&lt;/strong&gt; "I'm a final-year computer engineering student, and I lead my college's IT club."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Past:&lt;/strong&gt; "I got interested in web development after building a small booking site for a local event, and since then I've built a few projects, including one that a small business actually uses."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Future:&lt;/strong&gt; "I'm looking for a role where I can keep building real, used software, and this position's focus on frontend work is exactly the direction I want to grow in."&lt;/p&gt;

&lt;p&gt;Read out loud, that's about thirty seconds. Confident, specific, and it naturally invites a follow-up question about the booking site or the club. That's exactly what you want: an answer that opens doors instead of closing the topic.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Keep It Under a Minute
&lt;/h2&gt;

&lt;p&gt;This is the single most common mistake: rambling for three or four minutes, wandering through unrelated details, and losing the interviewer's attention halfway through.&lt;/p&gt;

&lt;p&gt;A tight, thirty-to-sixty-second answer signals confidence. A long, unfocused one signals nerves, even if the content is fine. If you're not sure whether you're going too long, time yourself once. Most first attempts run twice as long as they should.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Adjust It to the Room
&lt;/h2&gt;

&lt;p&gt;Your three-part answer isn't fixed in stone. Tune it to who's asking.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A recruiter or HR screen:&lt;/strong&gt; Keep it broad. Focus on your background and general direction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A technical interviewer:&lt;/strong&gt; Lean slightly more into your projects and technical interests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A founder or small team:&lt;/strong&gt; Mention what draws you to their specific mission or product, if you genuinely know it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Same three-part skeleton, different emphasis depending on who's in the room and what they likely care about.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Write It Down, Then Say It Out Loud
&lt;/h2&gt;

&lt;p&gt;Reading this post won't fix the freeze-up moment. Practice will.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Write your three parts&lt;/strong&gt; as short bullet points, not full sentences yet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Say it out loud&lt;/strong&gt; to yourself, then to a friend, then record yourself if you can stand it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time it.&lt;/strong&gt; Trim anything that isn't pulling its weight.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Practice it in different moods,&lt;/strong&gt; tired, rushed, a bit nervous, so it holds up when your actual interview nerves show up.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You're not memorizing a script word for word. You're building familiarity with the shape of the answer, so your brain has somewhere to go instead of freezing.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. What to Leave Out
&lt;/h2&gt;

&lt;p&gt;A few things that quietly weaken this answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Your entire life story&lt;/strong&gt; from childhood onward&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personal details unrelated to the role,&lt;/strong&gt; unless they're genuinely part of why you're here&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-deprecating jokes&lt;/strong&gt; about being nervous or unqualified. Confidence, not comedy, is the goal&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A list of every single skill you have.&lt;/strong&gt; Save the details for follow-up questions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reciting your resume line by line.&lt;/strong&gt; They already have it in front of them&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  9. If You Genuinely Freeze Mid-Answer
&lt;/h2&gt;

&lt;p&gt;It happens, even with practice. If your mind goes blank halfway through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pause and breathe.&lt;/strong&gt; A short silence feels longer to you than it does to them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restate where you are.&lt;/strong&gt; "Sorry, let me pick that back up. So after that project..."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fall back to your bullet points&lt;/strong&gt; if you wrote them down and have them nearby, especially in a virtual interview.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep going.&lt;/strong&gt; A slightly imperfect but complete answer is far better than stopping entirely.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nobody expects a flawless delivery. They're watching whether you can recover calmly, which itself is a good signal.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Turning It Into a Real Conversation
&lt;/h2&gt;

&lt;p&gt;A good answer doesn't just get evaluated, it moves the conversation forward. Notice what your example answer set up: mentioning the booking site invites "tell me more about that," and mentioning the IT club invites a question about leadership.&lt;/p&gt;

&lt;p&gt;You can use this on purpose. Include one or two details you'd genuinely enjoy talking more about. You're steering the interview toward ground where you're strongest, without it feeling forced.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. A Version for Every Situation
&lt;/h2&gt;

&lt;p&gt;Since you'll answer this question many times, prepare a couple of versions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A 30-second version&lt;/strong&gt; for a fast screen or a casual chat&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A 60-second version&lt;/strong&gt; with a bit more detail, for a full interview&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A written version&lt;/strong&gt; for LinkedIn or a portfolio "about" section, in a slightly more casual tone&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you've built the three-part structure, adjusting length is just a matter of trimming or expanding the middle section.&lt;/p&gt;

&lt;h2&gt;
  
  
  Say It Out Loud Once, Right Now
&lt;/h2&gt;

&lt;p&gt;Before you close this tab, say your present, past, and future out loud, even roughly. It'll feel a little clumsy the first time. That's fine, that's what practice is for.&lt;/p&gt;

&lt;p&gt;By the fifth time you say it, it won't feel like a script anymore. It'll just feel like you, explaining yourself clearly, which is all this question was ever asking for.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let's Connect
&lt;/h2&gt;

&lt;p&gt;I'm Prayush Adhikari, currently grinding through computer engineering, leading an IT club, and building my own company on the side. I write about Linux, productivity, and the honest side of being a developer.&lt;/p&gt;

&lt;p&gt;Drop your thirty-second answer in the comments if you're brave enough. I'll give you honest feedback.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://linkedin.com/in/adhikareeprayush" rel="noopener noreferrer"&gt;linkedin.com/in/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/adhikareeprayush" rel="noopener noreferrer"&gt;github.com/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio: &lt;a href="https://prayushadhikari.com.np" rel="noopener noreferrer"&gt;prayushadhikari.com.np&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What should I write next: how to build a personal brand as a developer without feeling cringe, or how to survive group projects with a difficult teammate?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>interview</category>
      <category>beginners</category>
      <category>career</category>
      <category>students</category>
    </item>
    <item>
      <title>Side Project Ideas That Actually Impress Recruiters (Not Another To-Do App)</title>
      <dc:creator>Prayush Adhikari</dc:creator>
      <pubDate>Tue, 27 Oct 2026 17:28:57 +0000</pubDate>
      <link>https://dev.to/adhikareeprayush/side-project-ideas-that-actually-impress-recruiters-not-another-to-do-app-ape</link>
      <guid>https://dev.to/adhikareeprayush/side-project-ideas-that-actually-impress-recruiters-not-another-to-do-app-ape</guid>
      <description>&lt;p&gt;Be honest. How many to-do apps have you built?&lt;/p&gt;

&lt;p&gt;I'm not judging. I've built one, and so has nearly everyone reading this. The problem is that a recruiter looking through a stack of student portfolios sees the same to-do app, weather app, and calculator dozens of times. They blur together, and none of them tell the reader anything about you.&lt;/p&gt;

&lt;p&gt;The good news: you don't need a genius idea to stand out. You need a &lt;em&gt;real&lt;/em&gt; problem, a finished result, and a clear story. This post covers what makes a side project impressive, a bunch of ideas you can start this week, and how to present them so people actually remember you.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Why Tutorial Clones Don't Land
&lt;/h2&gt;

&lt;p&gt;Clones aren't bad for learning. I wrote a whole post about using them properly. But as portfolio pieces they have three weaknesses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Everyone has them,&lt;/strong&gt; so they don't differentiate you&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You didn't make the important decisions,&lt;/strong&gt; since the tutorial did&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;They don't solve a real problem,&lt;/strong&gt; so there's nothing to talk about in an interview&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A recruiter's real question isn't "can this person follow a video?" It's "can this person figure out something new and finish it?" Your projects need to answer that.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Think of It Like a Science Fair
&lt;/h2&gt;

&lt;p&gt;Picture a school science fair. Some kids bring the classic baking-soda volcano. It erupts, everyone claps, and nobody remembers it.&lt;/p&gt;

&lt;p&gt;Then one kid presents a project on why the water in their own neighborhood tastes different from the next street over. They asked a real question, tested it, found something, and explained what they'd do next. That's the one the judges talk about afterward.&lt;/p&gt;

&lt;p&gt;Notice what made the second project win. It wasn't fancy equipment. It was a real question, a clear method, and honest results. Your side projects should work the same way.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. What Makes a Project Impressive
&lt;/h2&gt;

&lt;p&gt;Aim for as many of these as you can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;It solves a real problem.&lt;/strong&gt; Ideally one you or people around you actually have.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It has real users.&lt;/strong&gt; Even five classmates using it beats zero. It proves someone wanted it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's finished and live.&lt;/strong&gt; A deployed link beats a screenshot every time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It shows decisions.&lt;/strong&gt; Why this database? Why this approach? What trade-offs did you make?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's well documented.&lt;/strong&gt; A clear README, screenshots, and a short "what I'd improve" section.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It has something of your own.&lt;/strong&gt; A twist, a feature, or an angle that isn't in a tutorial.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You don't need all six. But a project with real users, a live link, and a solid README will beat a technically fancier one with none of that.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Project Ideas That Work
&lt;/h2&gt;

&lt;p&gt;Here's a list grouped by what each one shows. Adapt them to your own life so they're not copies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Solve a problem near you
&lt;/h3&gt;

&lt;p&gt;Problems you can see up close are the best source of ideas, and you can find real users easily.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A college timetable and attendance tracker&lt;/strong&gt; that reminds you of classes and calculates how many you can still miss&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A club event registration and attendance system&lt;/strong&gt; with a simple dashboard for organizers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A shared notes or past-papers site&lt;/strong&gt; for your department&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A hostel or canteen menu app&lt;/strong&gt; that shows what's for dinner&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A certificate generator&lt;/strong&gt; that takes a list of names and produces personalized PDFs for an event (any club organizer would love this)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Work with data
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;An expense tracker with charts&lt;/strong&gt; that shows where your money goes each month&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A dashboard built on a free public API,&lt;/strong&gt; like air quality, weather, or transport data for your city&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A small data analysis project&lt;/strong&gt; about something local, with your findings written up as a short blog post&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Automate something boring
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A script that renames, sorts, or backs up files&lt;/strong&gt; the way you actually want&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A Telegram or Discord bot&lt;/strong&gt; for your club or study group, like a reminder bot or a quiz bot&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A tool that pulls information you check every day&lt;/strong&gt; into one place, such as deadlines, results, and announcements. If you scrape anything, respect the site's rules and terms.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Build a useful developer tool
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A command-line tool&lt;/strong&gt; that scaffolds your favorite project setup&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A browser extension&lt;/strong&gt; that fixes a small annoyance, like blocking distractions while you study&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A small library or package&lt;/strong&gt; that other people can install and use&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Use AI as a real feature
&lt;/h3&gt;

&lt;p&gt;AI projects are trendy, so they can help you stand out, but only if they're more than a chat box glued to an API. A few sturdier ideas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A study helper&lt;/strong&gt; that turns your lecture notes into quiz questions and flashcards&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A job application tracker&lt;/strong&gt; that summarizes postings and highlights skills to mention&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you do this, show &lt;em&gt;your&lt;/em&gt; work. Explain how you handle wrong answers, cost limits, and user privacy. That's what separates a thoughtful project from a demo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Go full stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A booking or appointment system&lt;/strong&gt; for a local salon, clinic, or coaching center&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A simple inventory or order manager&lt;/strong&gt; for a small shop&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An app with login, a database, and deployment,&lt;/strong&gt; even a small one, since it proves you can connect the whole chain&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Contribute to open source
&lt;/h3&gt;

&lt;p&gt;Fix a bug, improve the docs, or add a small feature to a real project. A merged pull request tells a recruiter you can read someone else's code and work with a team.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do real work for a real person
&lt;/h3&gt;

&lt;p&gt;A project you built for an actual client or organization, even a small one, is worth more than most personal experiments. My post on landing your first freelance client covers how to find one.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. How to Choose Which One to Build
&lt;/h2&gt;

&lt;p&gt;Run your ideas through these four questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Do I or someone I know have this problem?&lt;/strong&gt; If yes, motivation and feedback come free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Can I get a working version live in 4 to 6 weeks?&lt;/strong&gt; If not, shrink it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Can I find five real people to try it?&lt;/strong&gt; Classmates, club members, or family all count.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Does it show a skill I want to be hired for?&lt;/strong&gt; Databases, APIs, auth, deployment, testing, whatever your target roles ask for.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pick the one that gets the most yeses. Don't wait for a perfect idea, since a good idea you finish beats a great one you never start.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Ship a Small Version First
&lt;/h2&gt;

&lt;p&gt;The biggest project killer is scope. You imagine the full app with twenty features, build for three weeks, and abandon it.&lt;/p&gt;

&lt;p&gt;Instead, define the &lt;strong&gt;smallest useful version&lt;/strong&gt;: the single feature that makes it worth using. Build only that, put it online, and show it to real people. Then improve it based on what they actually say. Use GitHub issues to keep a short list of next steps, which also shows recruiters you plan and prioritize.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Present It Like a Pro
&lt;/h2&gt;

&lt;p&gt;A brilliant project with a weak presentation gets ignored. Give every project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A clear README&lt;/strong&gt; with what it is, the problem, screenshots, how to run it, and what you'd improve. My GitHub profile post goes deeper on this.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A live demo link.&lt;/strong&gt; Recruiters rarely clone and run your code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A short demo GIF or video&lt;/strong&gt; that shows it working in thirty seconds&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A simple architecture diagram&lt;/strong&gt; made in a tool like Excalidraw, showing how the pieces connect&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A "decisions and trade-offs" section&lt;/strong&gt; explaining why you chose what you chose&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real numbers if you have them,&lt;/strong&gt; like "used by 30 students in my department." Only claim what's true, and never inflate the numbers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then write about it. A short blog post on how you built it, what went wrong, and what you learned doubles as content and as proof that you can communicate.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Using AI While You Build
&lt;/h2&gt;

&lt;p&gt;Using AI tools to build is normal, and employers expect it. Just make sure you can explain every part of your project. If someone asks why a function works the way it does and you can't answer, the project hurts you more than it helps.&lt;/p&gt;

&lt;p&gt;Be upfront in your README about where AI helped and what you reviewed or rewrote yourself. That reads as mature, not lazy.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Turn It Into an Interview Story
&lt;/h2&gt;

&lt;p&gt;A project is only half the value. The other half is how you talk about it. Prepare a short version:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The problem:&lt;/strong&gt; what were you trying to solve, and for whom?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The choices:&lt;/strong&gt; what options did you consider, and why did you pick these?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The challenge:&lt;/strong&gt; what went wrong, and how did you fix it?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The result:&lt;/strong&gt; who used it, and what happened?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The next step:&lt;/strong&gt; what would you improve with more time?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That five-part story answers most interview questions about your projects before they're asked. My post on your first coding interview shows how to weave it in.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Common Mistakes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Copying a tutorial and calling it yours.&lt;/strong&gt; Add something original or don't list it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Never deploying.&lt;/strong&gt; "Works on my machine" doesn't count.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Going too big.&lt;/strong&gt; Ambition is great, but unfinished projects tell a story too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hoarding tech.&lt;/strong&gt; Using seven frameworks doesn't impress anyone. Using two well does.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skipping the README.&lt;/strong&gt; It's the first thing people read and often the only thing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leaking secrets.&lt;/strong&gt; Never commit API keys or passwords, as I covered in my Git post.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exaggerating.&lt;/strong&gt; Fake numbers and inflated claims fall apart in the first interview question.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Your 30-Day Plan
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Week 1:&lt;/strong&gt; Pick one idea using the four questions. Write the smallest useful version in one sentence, and sketch the screens.&lt;br&gt;
&lt;strong&gt;Week 2:&lt;/strong&gt; Build the core feature. Ugly is fine.&lt;br&gt;
&lt;strong&gt;Week 3:&lt;/strong&gt; Deploy it, invite five real users, and collect their feedback.&lt;br&gt;
&lt;strong&gt;Week 4:&lt;/strong&gt; Improve based on feedback, write the README, record a short demo, and post about it.&lt;/p&gt;

&lt;p&gt;One finished, used, documented project in a month puts you ahead of most of your batch.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let's Connect
&lt;/h2&gt;

&lt;p&gt;I'm Prayush Adhikari, currently grinding through computer engineering, leading an IT club, and building my own company on the side. I write about Linux, productivity, and the honest side of being a developer.&lt;/p&gt;

&lt;p&gt;Tell me in the comments which idea you're picking, or share a problem you'd like to solve. I'll happily help you shape it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://linkedin.com/in/adhikareeprayush" rel="noopener noreferrer"&gt;linkedin.com/in/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/adhikareeprayush" rel="noopener noreferrer"&gt;github.com/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio: &lt;a href="https://prayushadhikari.com.np" rel="noopener noreferrer"&gt;prayushadhikari.com.np&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What should I write next: how to build a career network when you don't know anyone in tech, or how to make your first open-source contribution?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Job Offer vs Starting Your Own Thing: How to Actually Decide</title>
      <dc:creator>Prayush Adhikari</dc:creator>
      <pubDate>Sat, 24 Oct 2026 17:31:48 +0000</pubDate>
      <link>https://dev.to/adhikareeprayush/job-offer-vs-starting-your-own-thing-how-to-actually-decide-2i3g</link>
      <guid>https://dev.to/adhikareeprayush/job-offer-vs-starting-your-own-thing-how-to-actually-decide-2i3g</guid>
      <description>&lt;p&gt;You've got an offer, or you're about to. And somewhere in the back of your mind is a nagging, quieter option: what if you just built your own thing instead?&lt;/p&gt;

&lt;p&gt;Social media makes this decision look obvious, in whichever direction the algorithm currently favors. One month everyone's romanticizing quitting to build a startup. The next, everyone's posting about the stability of a good job. Neither extreme is actually giving you advice about your specific situation.&lt;/p&gt;

&lt;p&gt;Let's walk through this properly, without the hustle-culture noise on either side.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. A Job Is Renting, Your Own Thing Is Building
&lt;/h2&gt;

&lt;p&gt;Here's a way to frame it that cuts through a lot of the noise.&lt;/p&gt;

&lt;p&gt;Taking a job is like renting a house someone else built. It's move-in ready, the plumbing already works, and if something breaks, it's not entirely on you to fix. You get steady shelter without the years of construction. You don't own the walls, but you're protected from a lot of the risk that comes with building.&lt;/p&gt;

&lt;p&gt;Starting your own thing is building your own house from the ground up. You choose every wall, every room, every decision, and eventually you own the whole structure. But you're also the one dealing with a leaky roof at 2 AM, and there's a real chance the house takes years longer than planned, or never gets finished at all.&lt;/p&gt;

&lt;p&gt;Neither is the objectively better housing situation. It depends on how much uncertainty you can carry right now, and what you actually want to own at the end.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Both Choices Can Be the Smart One
&lt;/h2&gt;

&lt;p&gt;Let's kill a myth on each side.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Taking the job isn't "selling out."&lt;/strong&gt; A stable role teaches you things a beginner startup often can't: how experienced people structure real systems, how a functioning team actually communicates, and what "good" looks like at scale. Plenty of successful founders spent years as employees first, quietly learning how things actually work before building their own version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Starting your own thing isn't automatically reckless.&lt;/strong&gt; If you've already got early traction, some savings, or family support to fall back on, and you're clear-eyed about the odds, betting on yourself early can be exactly the right call. Some of the best-known founders started very young, precisely because they had less to lose and more time to recover if it didn't work.&lt;/p&gt;

&lt;p&gt;The honest answer is that it depends on your specific situation, not on which path sounds more impressive to post about.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Questions That Actually Matter
&lt;/h2&gt;

&lt;p&gt;Skip the vague "what does my gut say" question for a moment and answer these instead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Financially:&lt;/strong&gt; Can you cover your basic costs for six to twelve months if your own thing earns nothing in that time? Do you have savings, family support, or another income source? Being honest here isn't pessimism, it's just math you need before making the call.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On the idea:&lt;/strong&gt; Do you have actual evidence people want this, like real users, a validated problem, or a version already gaining traction? Or is it still mostly a feeling that it could work?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On timing:&lt;/strong&gt; Is there something specific pulling you toward the job (learning something you genuinely need, or a role that's a real opportunity) or toward your own thing (a narrowing window, a competitor moving fast, momentum you'd lose by waiting)?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On what you'd learn either way:&lt;/strong&gt; What could a few years at this job teach you that would make your own thing stronger later? What would building your own thing right now teach you that a job never could?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On reversibility:&lt;/strong&gt; If you take the job, can you still build your own thing on the side or return to it in a year or two? If you go all in on your own thing and it doesn't work, how easily could you get back into a job market later?&lt;/p&gt;

&lt;p&gt;That last question matters more than people admit. A job you leave to start something is often easier to come back to than people assume. A missed early window on a genuinely time-sensitive idea might not come back at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. The Middle Path Nobody Mentions Enough
&lt;/h2&gt;

&lt;p&gt;This isn't always a binary choice made once, forever. A few real middle paths:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Take the job, build on the side.&lt;/strong&gt; Slower, but with a financial floor under you the whole time. Plenty of real companies started exactly this way.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Negotiate a delayed start&lt;/strong&gt; if you have an idea you want to test properly before committing to either path fully.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set yourself a deadline.&lt;/strong&gt; Give your own thing a defined window, say six months, with honest goals. If it's not working by then, take the job path without treating it as failure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Take a shorter-term or contract role&lt;/strong&gt; that pays the bills while leaving you real time and energy for your own project.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The all-or-nothing framing makes this decision feel scarier than it usually needs to be.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. What "Your Own Thing" Actually Demands
&lt;/h2&gt;

&lt;p&gt;Be honest about what building really requires, beyond just having an idea:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Long stretches with no clear feedback on whether it's working&lt;/li&gt;
&lt;li&gt;Handling tasks completely outside your skill set: sales, admin, legal basics, customer support&lt;/li&gt;
&lt;li&gt;Financial uncertainty for longer than most people expect&lt;/li&gt;
&lt;li&gt;The discipline to keep showing up with no boss checking in on you&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of that is a reason not to do it. It's a reason to go in with open eyes instead of only the highlight reel you've seen online.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. What a Job Actually Demands Too
&lt;/h2&gt;

&lt;p&gt;The job path has its own less-discussed costs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Less control over what you work on and how&lt;/li&gt;
&lt;li&gt;A ceiling on how fast you can grow within someone else's structure&lt;/li&gt;
&lt;li&gt;The comfort itself can be its own trap, since it's easy to stay somewhere just because it's stable, long after it's stopped teaching you anything&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Comfort isn't automatically safety. Sometimes it's just a slower kind of drifting.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Talk to People Who've Actually Done Both
&lt;/h2&gt;

&lt;p&gt;Before deciding, if you can, talk to a few real people:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Someone who took a job first and started their own thing later&lt;/li&gt;
&lt;li&gt;Someone who started early and it worked&lt;/li&gt;
&lt;li&gt;Someone who started early and it didn't, and what they did next&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Notice that the third conversation is often the most useful. People who tried and it didn't work are usually far more honest about the real experience than the highlight-reel success stories you see online.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. If You Genuinely Can't Decide
&lt;/h2&gt;

&lt;p&gt;Sometimes both options look equally reasonable and you're stuck circling. A few practical tie-breakers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Take the option that's harder to reverse later, only if you're confident about it.&lt;/strong&gt; If one path closes doors the other doesn't, weight that carefully.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask what you'd genuinely regret not trying,&lt;/strong&gt; assuming either path could realistically work out fine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set a real deadline for the decision itself.&lt;/strong&gt; Endless deliberation is its own kind of cost, since both options often have their own timing pressure.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  9. A Note I'm Not Qualified to Give
&lt;/h2&gt;

&lt;p&gt;Money, contracts, equity, and legal terms around a job offer or a business are genuinely important, and getting them wrong can be costly. I'm not a lawyer or a financial advisor, and this post isn't a substitute for one. If real numbers or contracts are on the table, it's worth getting a second, informed opinion from someone qualified before you sign anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. There's No Universally Right Answer
&lt;/h2&gt;

&lt;p&gt;If you came here hoping for a formula that spits out "job" or "own thing," I don't have one, and anyone who claims they do is oversimplifying your actual situation. What I do believe: the decision matters less than most people think, and how you show up afterward matters more. Plenty of people have built great careers starting either way, and plenty have regretted rushing either choice without thinking it through.&lt;/p&gt;

&lt;h2&gt;
  
  
  Answer the Real Questions First
&lt;/h2&gt;

&lt;p&gt;Before you decide anything, sit down and honestly answer the financial, evidence, timing, and reversibility questions from section 3. Write the actual answers down, not vague impressions.&lt;/p&gt;

&lt;p&gt;The decision gets a lot clearer once the vague feeling turns into specific facts about your specific situation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let's Connect
&lt;/h2&gt;

&lt;p&gt;I'm Prayush Adhikari, currently grinding through computer engineering, leading an IT club, and building my own company on the side. I write about Linux, productivity, and the honest side of being a developer.&lt;/p&gt;

&lt;p&gt;Tell me in the comments which way you're leaning, and what's pulling you there. I won't tell you which one is right, but I'm happy to think through it with you.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://linkedin.com/in/adhikareeprayush" rel="noopener noreferrer"&gt;linkedin.com/in/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/adhikareeprayush" rel="noopener noreferrer"&gt;github.com/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio: &lt;a href="https://prayushadhikari.com.np" rel="noopener noreferrer"&gt;prayushadhikari.com.np&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What should I write next: how to make the most of your first internship, or how to survive group projects with a difficult teammate?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>startup</category>
      <category>students</category>
      <category>beginners</category>
    </item>
    <item>
      <title>PHP2Shell: Two Critical PHP Bugs You Need to Patch Today (CVE-2026-109618 &amp; CVE-2026-109619)</title>
      <dc:creator>Prayush Adhikari</dc:creator>
      <pubDate>Thu, 22 Oct 2026 14:35:18 +0000</pubDate>
      <link>https://dev.to/adhikareeprayush/php2shell-two-critical-php-bugs-you-need-to-patch-today-cve-2026-109618-cve-2026-109619-1do7</link>
      <guid>https://dev.to/adhikareeprayush/php2shell-two-critical-php-bugs-you-need-to-patch-today-cve-2026-109618-cve-2026-109619-1do7</guid>
      <description>&lt;p&gt;Hey there! If you run anything on PHP, stop scrolling and open a terminal. Seriously.&lt;/p&gt;

&lt;p&gt;On October 21, 2026, the PHP team shipped an emergency security release for two critical bugs. Not a WordPress plugin. Not some abandoned Composer package. The PHP engine itself. And yes, that means a perfectly written app can still be exposed.&lt;/p&gt;

&lt;p&gt;I'll break down what these bugs are, how they work (the 5-year-old version first, then the senior-dev one), how to check your servers, and how to patch without breaking things. No panic, no hype. Just the stuff that actually works.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The 30-second version
&lt;/h2&gt;

&lt;p&gt;The bugs are tracked as &lt;strong&gt;CVE-2026-109618&lt;/strong&gt; and &lt;strong&gt;CVE-2026-109619&lt;/strong&gt;, nicknamed &lt;strong&gt;PHP2Shell&lt;/strong&gt;. Both are rated &lt;strong&gt;9.2 (CVSS v4.0)&lt;/strong&gt;, and both can lead to remote code execution by an unauthenticated attacker.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Thing&lt;/th&gt;
&lt;th&gt;Detail&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Affected&lt;/td&gt;
&lt;td&gt;PHP 5.4 through 8.5.11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fixed in&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;8.5.12, 8.4.27, 8.3.36, 8.2.35&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Upstream fix for 8.1 and older&lt;/td&gt;
&lt;td&gt;No official release (source backports exist, more on that below)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Real fix&lt;/td&gt;
&lt;td&gt;Update PHP, then restart everything&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workarounds&lt;/td&gt;
&lt;td&gt;Partial at best. PHP itself says updating is the only safe choice&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Real talk: if you are reading this and your PHP version is below one of those numbers, you are in the "patch tonight" group.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The 5-year-old version
&lt;/h2&gt;

&lt;p&gt;Imagine a restaurant. Every customer (request) gets a table, and a waiter sets it with plates and cutlery before the customer sits down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bug one (out-of-memory handling).&lt;/strong&gt; The waiter is halfway through setting a table when the kitchen runs out of plates. Instead of finishing, he bolts out of the room. Later, the cleaner comes in, sees a half-set table, and assumes it was set properly. So he starts clearing things that were never placed. Chaos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bug two (stale state).&lt;/strong&gt; When a customer leaves, the restaurant throws away their reservation slip. But the host still has a sticky note pointing at where that slip used to be. The next customer arrives, the host trusts the sticky note before checking anything, and reads whatever is sitting in that spot now.&lt;/p&gt;

&lt;p&gt;That is basically it. One bug trusts half-built data, the other trusts a pointer to data that no longer exists.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. The senior-dev version
&lt;/h2&gt;

&lt;p&gt;Now the real names for those things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CVE-2026-109618: RCE via out-of-memory corruption.&lt;/strong&gt; PHP handles out-of-memory errors by exiting the current context with &lt;code&gt;longjmp()&lt;/code&gt;. If that happens while request data is only partly initialized, PHP's request cleanup can treat the invalid data as valid. That's memory corruption an attacker can steer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CVE-2026-109619: RCE via stale global state.&lt;/strong&gt; PHP keeps some global state that points at memory owned by a request. After the request ends, that memory is freed, but the state survives. A later request handled by the same worker can touch that stale state before normal initialization resets it. This is a use-after-free (the advisory lists CWE-416).&lt;/p&gt;

&lt;p&gt;Two more details that matter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Besides code execution, an attacker may be able to &lt;strong&gt;read memory from the PHP worker process&lt;/strong&gt;. That memory can hold passwords, tokens, API keys, and certificates from other requests. Reading it does not even require code execution first.&lt;/li&gt;
&lt;li&gt;The bugs are in the runtime, so even a plain "Hello World" page on a vulnerable version can be attacked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's the thing most people miss: &lt;strong&gt;updating WordPress or Laravel does not update PHP.&lt;/strong&gt; PHP comes from your server package, your host, or your container image. Different layer, different update.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Why mod_php is the scary one
&lt;/h2&gt;

&lt;p&gt;Not every setup is equally exposed. Every PHP that serves web requests is in scope (PHP-FPM, Apache mod_php, php-cgi, FrankenPHP, LiteSpeed), but the advisory singles out &lt;strong&gt;Apache mod_php&lt;/strong&gt; as the highest risk. A demonstrated exploit there needs a single unauthenticated request, and it fires before any of your application code runs.&lt;/p&gt;

&lt;p&gt;PHP-FPM behaves differently because it shuts the worker down when a request fails early during setup. One of the two bugs was shown to reach code execution on both mod_php and FPM, though the FPM route depends on an operation inside the running app. For the other, PHP says FPM is susceptible but no complete FPM exploit has been shown.&lt;/p&gt;

&lt;p&gt;Translation: FPM is not "safe", it's just harder. Patch both.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. How this blew up (the messy timeline)
&lt;/h2&gt;

&lt;p&gt;This one had drama, and it's a nice case study in why embargoes are fragile.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Oct 20:&lt;/strong&gt; Details leaked ahead of a planned Oct 22 disclosure. PHP posted an advance notice and pulled the release forward a day.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Oct 21, around 03:00 UTC:&lt;/strong&gt; Cloudflare switched on default WAF rules as a stopgap.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Oct 21, 13:34 UTC:&lt;/strong&gt; PHP published the GitHub security advisories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Oct 21, 14:00 UTC:&lt;/strong&gt; Fixed versions released.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Later that day:&lt;/strong&gt; watchTowr reported active exploitation &lt;em&gt;attempts&lt;/em&gt;, and Cloudflare said attackers were changing payloads to dodge its rules.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As of the reporting I read, nobody had confirmed a successful break-in of a specific server. But some organizations took systems offline as a precaution, including government sites in the Netherlands and the HR platform BambooHR. That tells you how seriously people are taking it.&lt;/p&gt;

&lt;p&gt;The bugs were found by researchers at Wiz Research, Calif, and OpenAI's Codex Security team, working with the PHP security team. They say AI models helped turn old, obscure flaws into working exploits much faster than a human team could. The affected code has been in PHP for more than a decade.&lt;/p&gt;

&lt;p&gt;The PHP Foundation also published an honest post-mortem: signs of the out-of-memory problem were spotted during a 2024 audit, but no concrete route to code execution was found, competing fixes stalled, and they called the delay a structural failure of their process. Respect for saying that out loud.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Am I vulnerable? Check in two minutes
&lt;/h2&gt;

&lt;p&gt;First, figure out which PHP actually serves your web traffic. The &lt;code&gt;php&lt;/code&gt; on your command line can be a different install from the one behind your site.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# CLI version (may NOT be what your site uses)&lt;/span&gt;
php &lt;span class="nt"&gt;-v&lt;/span&gt;

&lt;span class="c"&gt;# FPM binary (adjust the version number)&lt;/span&gt;
php-fpm8.3 &lt;span class="nt"&gt;-v&lt;/span&gt;

&lt;span class="c"&gt;# Is Apache loading mod_php?&lt;/span&gt;
apachectl &lt;span class="nt"&gt;-M&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; php

&lt;span class="c"&gt;# What PHP processes are actually running?&lt;/span&gt;
ps aux | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; &lt;span class="s2"&gt;"php-fpm|apache2|httpd"&lt;/span&gt; | &lt;span class="nb"&gt;head&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Compare the version against the table in section 1. One catch: Linux distros and hosting vendors often backport fixes without changing the version number. So Debian or Ubuntu can show an "old-looking" version that is actually patched. Check the package changelog for the CVE instead of trusting the version string:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apt changelog php8.3-fpm | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; &lt;span class="s2"&gt;"CVE-2026-10961[89]"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you're on shared hosting or cPanel, you can't run any of this. Ask your host which build you're on and whether it carries the fix. Some vendors have published backports for older branches, but you need to confirm for your plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Patch it (and actually restart)
&lt;/h2&gt;

&lt;p&gt;On Debian or Ubuntu with a package-managed PHP:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt upgrade
&lt;span class="c"&gt;# then restart whatever serves PHP&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl restart php8.3-fpm
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl restart apache2   &lt;span class="c"&gt;# or nginx, if it fronts FPM&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The restart is not optional. Long-running workers keep the old code in memory until they're restarted. I know that sounds obvious, but "I patched it" and "I patched it and restarted it" are two very different sentences.&lt;/p&gt;

&lt;p&gt;If you ship with Docker, rebuild your image from a patched base. Don't just redeploy the old one:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="c"&gt;# Make sure the tag resolves to a patched release (8.4.27+ for 8.4)&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; php:8.4-fpm&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker build &lt;span class="nt"&gt;--pull&lt;/span&gt; &lt;span class="nt"&gt;--no-cache&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; myapp:patched &lt;span class="nb"&gt;.&lt;/span&gt;
docker run &lt;span class="nt"&gt;--rm&lt;/span&gt; myapp:patched php &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check the output says 8.4.27 or higher (or the patched equivalent for your branch). Then redeploy and confirm in production, not just on your laptop.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. What if I really can't update yet?
&lt;/h2&gt;

&lt;p&gt;Be honest with yourself here: these are band-aids. The advisory says only updating gives complete protection. But if you're waiting on a vendor, these reduce exposure to specific attack paths.&lt;/p&gt;

&lt;p&gt;For CVE-2026-109618 (out-of-memory):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="c"&gt;; php.ini
; Per the advisory: stop apps from overriding the limit at runtime
&lt;/span&gt;&lt;span class="py"&gt;memory_limit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;-1&lt;/span&gt;
&lt;span class="py"&gt;post_max_size&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;8M&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="c1"&gt;# And cap request sizes at the web server / proxy too&lt;/span&gt;
&lt;span class="k"&gt;client_max_body_size&lt;/span&gt; &lt;span class="mi"&gt;8m&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Do not reach for &lt;code&gt;RLIMIT_AS&lt;/code&gt; or &lt;code&gt;RLIMIT_DATA&lt;/code&gt; as a substitute. PHP warns those can trigger the same vulnerable path.&lt;/p&gt;

&lt;p&gt;For CVE-2026-109619 (stale state):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="py"&gt;session.upload_progress.enabled&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;0&lt;/span&gt;
&lt;span class="c"&gt;; PHP 8.5 only:
&lt;/span&gt;&lt;span class="py"&gt;fatal_error_backtraces&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then restart every worker. Turning off session upload progress blocks the confirmed session paths, not every possible variant. It was circulated as a workaround before the patch and it turned out to be incomplete. Don't let it lull you into thinking you're done.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. After you patch
&lt;/h2&gt;

&lt;p&gt;Two follow-ups most people skip.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Re-check your memory settings.&lt;/strong&gt; The fix adds a new hard memory limit. When it's reached, the process ends and shutdown handlers don't run. So review &lt;code&gt;memory_limit&lt;/code&gt; and &lt;code&gt;post_max_size&lt;/code&gt; against what your app really needs, or you may trade a security bug for a surprise outage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Look for signs you were hit before patching.&lt;/strong&gt; The researchers suggest watching for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unusual multipart requests followed by memory-limit errors or repeated HTTP 500s&lt;/li&gt;
&lt;li&gt;oddly large &lt;code&gt;PHPSESSID&lt;/code&gt; cookies in responses&lt;/li&gt;
&lt;li&gt;PHP workers restarting for no clear reason&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A rough starting point on a typical Linux box (log paths vary by setup):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Memory-limit errors in recent logs&lt;/span&gt;
&lt;span class="nb"&gt;sudo grep&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; &lt;span class="s2"&gt;"Allowed memory size"&lt;/span&gt; /var/log/ 2&amp;gt;/dev/null | &lt;span class="nb"&gt;tail&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; 20

&lt;span class="c"&gt;# Spike of 500s in an nginx access log&lt;/span&gt;
&lt;span class="nb"&gt;awk&lt;/span&gt; &lt;span class="s1"&gt;'$9 == 500'&lt;/span&gt; /var/log/nginx/access.log | &lt;span class="nb"&gt;wc&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If anything looks off and you handle user data, rotate secrets (API keys, DB passwords, session secrets) after patching. Memory disclosure means those could have been exposed without any visible "hack".&lt;/p&gt;

&lt;h2&gt;
  
  
  10. PHP 8.1 and older: the uncomfortable part
&lt;/h2&gt;

&lt;p&gt;PHP 8.1 and below have reached end of life, so there is no official patched release for them. The vulnerable range goes all the way back to 5.4, so a lot of legacy sites are sitting in it.&lt;/p&gt;

&lt;p&gt;Your options, best to worst:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Upgrade to a supported branch&lt;/strong&gt; (8.2 or newer). Note that 8.2 reaches end of life on December 31, 2026, so 8.3 or 8.4 is the smarter target if you can manage it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use a vendor backport.&lt;/strong&gt; The PHP security team published source backports for 7.4, 8.0, and 8.1, and some distros and hosts ship their own patched builds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do nothing.&lt;/strong&gt; Don't.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is the "learn from it" moment for everyone with a client site running some PHP version nobody dares to touch. An old runtime is a debt that eventually gets called in.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. It's not the only PHP bug this year
&lt;/h2&gt;

&lt;p&gt;PHP2Shell is the loud one, but the patch notes this year have been busy. A few from the earlier releases, for context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;May 2026:&lt;/strong&gt; a use-after-free in the SOAP extension (CVE-2026-6722) that could lead to remote code execution if you expose a vulnerable &lt;code&gt;SoapServer&lt;/code&gt; endpoint to untrusted users, fixed in 8.2.31, 8.3.31, 8.4.21 and 8.5.6.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;July 30, 2026:&lt;/strong&gt; a PostgreSQL extension fix for SQL injection through a backslash breakout in &lt;code&gt;E'...'&lt;/code&gt; strings (CVE-2026-17543), plus BCMath and Phar fixes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;September 2026:&lt;/strong&gt; another high-severity SOAP issue (CVE-2026-91765), along with fixes in OpenSSL certificate verification, the HTTP stream wrapper and PHP-FPM, shipped in 8.2.34, 8.3.35, 8.4.26 and 8.5.11.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you've been running "I'll update PHP next quarter", those are your receipts for why that plan is shaky.&lt;/p&gt;

&lt;h2&gt;
  
  
  12. What I'm taking away from this
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Patch the runtime, not just the app.&lt;/strong&gt; Frameworks and CMS updates don't touch the PHP underneath.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restart after patching.&lt;/strong&gt; Always. Verify the running version, not the installed one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Know what's under your containers.&lt;/strong&gt; Pin your base image tags, and rebuild on a schedule, not only when the news scares you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run supported versions.&lt;/strong&gt; The upgrade you keep postponing is cheaper than the incident.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workarounds are not fixes.&lt;/strong&gt; Treat them as a bridge to the patch window.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's it. That's the checklist.&lt;/p&gt;

&lt;p&gt;Now go run &lt;code&gt;php -v&lt;/code&gt; on every server you own. Then go restart something.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's Connect
&lt;/h2&gt;

&lt;p&gt;I'm Prayush Adhikari, currently grinding through computer engineering and building software on the side. I write about things I run into while building, breaking, and (sometimes) fixing stuff.&lt;/p&gt;

&lt;p&gt;If this saved you a late night, drop a comment and tell me what you're running (mod_php, FPM, Docker, shared hosting?) and whether you've patched yet. And if you've got questions, ask. I'll answer what I can.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://linkedin.com/in/adhikareeprayush" rel="noopener noreferrer"&gt;https://linkedin.com/in/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/adhikareeprayush" rel="noopener noreferrer"&gt;https://github.com/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio: &lt;a href="https://prayushadhikari.com.np" rel="noopener noreferrer"&gt;https://prayushadhikari.com.np&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which would you rather read next: a hands-on guide to hardening PHP-FPM, or a breakdown of how use-after-free bugs actually work?&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;PHP 8.5.12 and 8.4.27 release notes: &lt;a href="https://github.com/php/php-src/releases" rel="noopener noreferrer"&gt;https://github.com/php/php-src/releases&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GHSA-w8hw-w9fx-j79w (CVE-2026-109618): &lt;a href="https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w" rel="noopener noreferrer"&gt;https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GHSA-6wmf-4rv5-p3rp (CVE-2026-109619): &lt;a href="https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp" rel="noopener noreferrer"&gt;https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The Hacker News coverage: &lt;a href="https://thehackernews.com/2026/10/php-issues-emergency-patches-for-two.html" rel="noopener noreferrer"&gt;https://thehackernews.com/2026/10/php-issues-emergency-patches-for-two.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Google Cloud guidance: &lt;a href="https://cloud.google.com/blog/products/identity-security/responding-to-core-php-vulnerabilities-cve-2026-109618-cve-2026-109619" rel="noopener noreferrer"&gt;https://cloud.google.com/blog/products/identity-security/responding-to-core-php-vulnerabilities-cve-2026-109618-cve-2026-109619&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>php</category>
      <category>security</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Learning to Code Without Burning Out: How to Stay Consistent for the Long Haul</title>
      <dc:creator>Prayush Adhikari</dc:creator>
      <pubDate>Fri, 16 Oct 2026 18:00:53 +0000</pubDate>
      <link>https://dev.to/adhikareeprayush/learning-to-code-without-burning-out-how-to-stay-consistent-for-the-long-haul-1mlk</link>
      <guid>https://dev.to/adhikareeprayush/learning-to-code-without-burning-out-how-to-stay-consistent-for-the-long-haul-1mlk</guid>
      <description>&lt;p&gt;Week one, you were unstoppable. Six-hour sessions, three tutorials a day, a notebook full of plans, and a brand new GitHub account.&lt;/p&gt;

&lt;p&gt;Week three, you haven't opened your editor in five days. You feel guilty about it, and the guilt makes you want to avoid it even more. So now you're not just behind, you're avoiding the whole thing.&lt;/p&gt;

&lt;p&gt;If that's you, nothing is wrong with your brain or your discipline. You just ran into the most common pattern in learning to code, and it has very little to do with talent. This post is about staying in the game long enough for the skills to stick.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The Boom and Bust Cycle
&lt;/h2&gt;

&lt;p&gt;Almost every beginner runs the same loop:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A burst of motivation, usually after a video or a big decision&lt;/li&gt;
&lt;li&gt;An intense stretch of doing far too much&lt;/li&gt;
&lt;li&gt;Exhaustion, or a hard concept that breaks the streak&lt;/li&gt;
&lt;li&gt;Guilt, avoidance, and a quiet quit&lt;/li&gt;
&lt;li&gt;A new wave of motivation, and back to step 1&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The problem isn't step 4. It's steps 1 and 2. Motivation is a spark, not a fuel. It's great for starting and terrible for lasting. If your plan depends on feeling motivated every day, it will fail on the first bad Tuesday.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Think of Your Energy as a Phone Battery
&lt;/h2&gt;

&lt;p&gt;Here's a picture that made this click for me.&lt;/p&gt;

&lt;p&gt;Your focus and energy are a phone battery. Every coding session drains some. That's fine, that's what it's for. But there are two things that quietly kill the battery faster:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Background apps.&lt;/strong&gt; Even when you're not coding, your brain is running apps: the worry that you're behind, five open courses, comparing yourself to someone your age with an internship, the endless scroll of "how I got hired in 3 months." None of it is on screen, yet all of it drains you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Never charging.&lt;/strong&gt; Sleep, rest days, food, walks, time with friends. These aren't rewards for finishing. They're the charger. Skip them and you're running at 5% and wondering why nothing sticks.&lt;/p&gt;

&lt;p&gt;Staying consistent isn't about draining the battery harder. It's about never letting it hit zero, and closing the background apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Warning Signs to Watch For
&lt;/h2&gt;

&lt;p&gt;Burnout tends to creep in rather than crash in. Notice if you're feeling:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dread when you open your editor, not just difficulty&lt;/li&gt;
&lt;li&gt;Everything you build feels pointless or not good enough&lt;/li&gt;
&lt;li&gt;Irritability or a short temper about small errors&lt;/li&gt;
&lt;li&gt;Trouble focusing or reading code you understood yesterday&lt;/li&gt;
&lt;li&gt;Sleeping badly, or replaying bugs in your head at night&lt;/li&gt;
&lt;li&gt;A constant background feeling of guilt about not doing enough&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Catching these early is far easier than recovering from a full crash. If they're heavy, they last for weeks, or they spill into the rest of your life, please talk to someone: a friend, a mentor, a family member, or a professional. Nothing here is a diagnosis, and it's a sign to look after yourself rather than push harder.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Build a Minimum, Not a Mountain
&lt;/h2&gt;

&lt;p&gt;The most powerful trick I know for consistency is embarrassingly simple: &lt;strong&gt;decide the smallest version of a study session that still counts, and never go below it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mine is 20 minutes: open the editor, do one small thing. Write one function, fix one bug, read one page of docs. That's a valid day.&lt;/p&gt;

&lt;p&gt;Why it works:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Starting is the hardest part. Once you're in, you often keep going.&lt;/li&gt;
&lt;li&gt;A tiny minimum removes the all-or-nothing trap. A bad day becomes a 20-minute day instead of a zero day.&lt;/li&gt;
&lt;li&gt;It keeps the habit alive, and habits are what get you through the months where motivation disappears.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want a rule to live by: &lt;strong&gt;never miss twice.&lt;/strong&gt; Missing one day is life. Missing two in a row is the start of a new habit. So after a skipped day, do the minimum the next day, no matter how small.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Schedule It Like a Class
&lt;/h2&gt;

&lt;p&gt;"I'll code when I feel like it" is the plan that fails. Give your practice a time, like a lecture you've committed to.&lt;/p&gt;

&lt;p&gt;A sustainable pattern for a student might look like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Day&lt;/th&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mon to Fri&lt;/td&gt;
&lt;td&gt;1 focused hour at a fixed time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Saturday&lt;/td&gt;
&lt;td&gt;2 to 3 hours on your project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sunday&lt;/td&gt;
&lt;td&gt;Full rest, no code&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That's about 8 to 9 hours a week. It sounds small, and it beats the 12-hour weekend binge followed by two weeks of nothing.&lt;/p&gt;

&lt;p&gt;A few extra habits that help:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Work in blocks.&lt;/strong&gt; 25 minutes focused, 5 minutes break, or 50 and 10 if that suits you better.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Look away from the screen regularly.&lt;/strong&gt; The 20-20-20 habit is easy: every 20 minutes, look at something about 20 feet away for 20 seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stop mid-task on purpose.&lt;/strong&gt; End a session with the next step already written down. It makes tomorrow's start easier.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Close the Background Apps
&lt;/h2&gt;

&lt;p&gt;You can't learn well with twelve tabs open in your head.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One learning path.&lt;/strong&gt; One course, one main project. Not five.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A news diet.&lt;/strong&gt; Checking tech news, trends, and "top 10 things to learn" every day is a distraction disguised as progress. Try once a week.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mute the comparison feed.&lt;/strong&gt; If certain accounts make you feel behind more than inspired, unfollow them. You're allowed to.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write down the shiny ideas.&lt;/strong&gt; New framework? New idea? Put it in a "later" list and go back to your work.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  7. Track Wins, Not Hours
&lt;/h2&gt;

&lt;p&gt;Counting hours makes you feel guilty when they're low. Counting wins makes you feel progress.&lt;/p&gt;

&lt;p&gt;Keep a simple running list in your notes app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A bug I fixed today&lt;/li&gt;
&lt;li&gt;A concept that finally clicked&lt;/li&gt;
&lt;li&gt;Something I built and shipped&lt;/li&gt;
&lt;li&gt;A question I answered for someone else&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once a week, spend five minutes reviewing it: what did I ship, what did I learn, what's next? On the days when it feels like you're going nowhere, that list is proof that you are.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Everyone Feels Like an Imposter
&lt;/h2&gt;

&lt;p&gt;That nagging feeling that everyone else understands things you don't? Almost every developer has it, including people with years of experience and impressive jobs. You only see other people's finished work, never their confusion.&lt;/p&gt;

&lt;p&gt;You don't need to feel confident to make progress. You just need to keep showing up while feeling unsure. Confidence follows the work, not the other way around.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Look After the Body Running the Code
&lt;/h2&gt;

&lt;p&gt;This part sounds boring and it matters more than any tool:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sleep.&lt;/strong&gt; Cutting sleep to study longer is usually a bad trade. Tired brains learn poorly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Move.&lt;/strong&gt; A walk, stretching, or a bit of exercise clears your head better than another hour of staring at a bug.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Eat and drink water.&lt;/strong&gt; It's easy to forget both during a coding session.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sit well.&lt;/strong&gt; A better chair or a laptop stand can save you a lot of discomfort down the line.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;See people.&lt;/strong&gt; Time away from screens with friends and family is not wasted time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  10. Learn With Other People
&lt;/h2&gt;

&lt;p&gt;Learning alone is the fastest route to feeling isolated. Find your people:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;study buddy&lt;/strong&gt; you check in with weekly&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;club or community&lt;/strong&gt; where people build things together&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;accountability partner&lt;/strong&gt; to whom you say what you'll do this week&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teaching others&lt;/strong&gt;, even a beginner behind you, which cements your own understanding&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sharing what you're stuck on cuts the stress in half, and someone else's small win can pull you through a slump.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. When You're Stuck on a Plateau
&lt;/h2&gt;

&lt;p&gt;Some weeks nothing seems to improve. That's normal, because learning isn't a straight line. When it happens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Switch modes.&lt;/strong&gt; If you've been watching tutorials, build something. If you've been building, read someone else's code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shrink the goal.&lt;/strong&gt; Scale down instead of quitting. One small feature this week is fine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Take a proper break.&lt;/strong&gt; Two or three days fully off can do more than a week of forcing it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stalling is part of the process. Stopping for good is the only real failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  12. Coming Back After a Long Break
&lt;/h2&gt;

&lt;p&gt;Say you vanished for a month. Don't start with a guilty five-hour session to "catch up." That's the boom and bust cycle again.&lt;/p&gt;

&lt;p&gt;Try a gentle re-entry instead:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open an old project. Just run it and see it work.&lt;/li&gt;
&lt;li&gt;Fix one tiny thing or add one small feature.&lt;/li&gt;
&lt;li&gt;Do your 20-minute minimum for a week.&lt;/li&gt;
&lt;li&gt;Then slowly build back up.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Nobody is keeping score of the days you missed. The only day that matters is the next one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tonight: Set Your Minimum
&lt;/h2&gt;

&lt;p&gt;Before you close this tab, do two things. First, decide your minimum session, the smallest amount of coding that counts. Second, pick a time tomorrow and put it in your calendar.&lt;/p&gt;

&lt;p&gt;Not a big plan. Not a new roadmap. Just a small promise you can actually keep.&lt;/p&gt;

&lt;p&gt;The people who become good developers aren't the ones who worked the hardest in week one. They're the ones who were still showing up in month six.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let's Connect
&lt;/h2&gt;

&lt;p&gt;I'm Prayush Adhikari, currently grinding through computer engineering, leading an IT club, and building my own company on the side. I write about Linux, productivity, and the honest side of being a developer.&lt;/p&gt;

&lt;p&gt;Tell me in the comments what your own minimum session looks like, or what usually derails your consistency. I read every one.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://linkedin.com/in/adhikareeprayush" rel="noopener noreferrer"&gt;linkedin.com/in/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/adhikareeprayush" rel="noopener noreferrer"&gt;github.com/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio: &lt;a href="https://prayushadhikari.com.np" rel="noopener noreferrer"&gt;prayushadhikari.com.np&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What should I write next: how to land your first freelance client as a student, or how to build a career network when you don't know anyone in tech?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>mentalhealth</category>
      <category>learning</category>
    </item>
    <item>
      <title>How to Build Your First Portfolio Website (Even If You're Not a Designer)</title>
      <dc:creator>Prayush Adhikari</dc:creator>
      <pubDate>Mon, 12 Oct 2026 16:23:03 +0000</pubDate>
      <link>https://dev.to/adhikareeprayush/how-to-build-your-first-portfolio-website-even-if-youre-not-a-designer-19ho</link>
      <guid>https://dev.to/adhikareeprayush/how-to-build-your-first-portfolio-website-even-if-youre-not-a-designer-19ho</guid>
      <description>&lt;p&gt;Everyone says you need a portfolio website. Nobody tells you what goes on it.&lt;/p&gt;

&lt;p&gt;So you open a blank file, write "Welcome to my portfolio!" at the top, and then spend three hours picking a font. Two weeks later it's still not online, and the folder is named &lt;code&gt;portfolio-final-new&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Sound familiar? Good, because this post fixes it. I'll walk you through what to put on your portfolio, how to make it look decent when you're no designer, and how to get it live without paying anything. No fancy skills required.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Do You Even Need One?
&lt;/h2&gt;

&lt;p&gt;Fair question. If you already have a clean GitHub profile (I wrote a whole post on that), you're ahead of most people.&lt;/p&gt;

&lt;p&gt;But a portfolio site does something GitHub can't: &lt;strong&gt;it lets you tell your own story, in your own order, on your own terms.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub shows your code. A portfolio shows your &lt;em&gt;thinking&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;You control what people see first.&lt;/li&gt;
&lt;li&gt;You get one link to put on your resume, LinkedIn, and job applications.&lt;/li&gt;
&lt;li&gt;It proves you can finish and ship something, which is exactly what employers want to know.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It doesn't need to be huge. One good page beats a ten-page site nobody finishes.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Think of It as a Movie Trailer
&lt;/h2&gt;

&lt;p&gt;Here's the mindset that changed how I approach this.&lt;/p&gt;

&lt;p&gt;A movie trailer doesn't show the whole film. It shows the best moments in about two minutes, leaves you curious, and makes you want more.&lt;/p&gt;

&lt;p&gt;Your portfolio is your trailer. Nobody will read every project description or scroll through everything you've ever made. They'll spend about half a minute deciding whether you're worth a closer look. So show your best three or four moments, make them easy to understand, and give people a clear next step.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. What to Put On It
&lt;/h2&gt;

&lt;p&gt;Keep it simple. A strong beginner portfolio has five parts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Hero section.&lt;/strong&gt; Your name, one line about what you do, and a button that leads somewhere (like "See my projects" or "Contact me"). Example: "Computer engineering student building web tools and learning backend."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Projects.&lt;/strong&gt; Three or four of your best. Quality over quantity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;About.&lt;/strong&gt; A short, human paragraph. Where you study, what you're into, what you're learning. Add a photo if you're comfortable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skills.&lt;/strong&gt; A short list of tools you actually use. Skip the progress bars that say "JavaScript 85%." Nobody knows what that means, including you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contact.&lt;/strong&gt; Email, LinkedIn, and GitHub links. Make sure they work.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Optional extras: a link to your resume, and a blog or writing section if you publish posts.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. How to Present Each Project
&lt;/h2&gt;

&lt;p&gt;This is where most beginner portfolios fall apart. A screenshot and a title isn't enough.&lt;/p&gt;

&lt;p&gt;For each project, answer these in a few lines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What is it?&lt;/strong&gt; One sentence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What problem does it solve?&lt;/strong&gt; Why did you build it?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What did you use?&lt;/strong&gt; The tech, in a short list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What was hard?&lt;/strong&gt; One real challenge and how you dealt with it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Where can I see it?&lt;/strong&gt; A live link and a GitHub link.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That "what was hard" line is gold. It shows that you can reason about your own work, and it gives an interviewer something to ask you about. If you used AI tools in the process, say how and where you checked the results.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Choose How You'll Build It
&lt;/h2&gt;

&lt;p&gt;You have three realistic paths. Pick one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Path A: A template or website builder.&lt;/strong&gt; Fastest. Great if you're short on time or don't want to touch code. The downside is you learn less and it looks less unique.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Path B: Plain HTML, CSS, and a little JavaScript.&lt;/strong&gt; Slower, but you learn a ton and you fully control it. This is my pick for a first portfolio, especially if you're still learning the basics. A portfolio you coded yourself doubles as a project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Path C: A framework like React, Astro, or Next.js.&lt;/strong&gt; Powerful, but it's a lot to learn at once. Choose this only if you already know it.&lt;/p&gt;

&lt;p&gt;If you're unsure, go with Path B. Here's how small the starting point is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Your Name | Web Developer&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Student developer building web tools. See my projects."&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"style.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Your Name&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Computer engineering student building web tools.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- projects, about, contact go here --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's a real starting page. Everything else is filling in sections and styling them.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Make It Look Good Without Being a Designer
&lt;/h2&gt;

&lt;p&gt;You don't need talent. You need a few simple rules.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Two fonts at most.&lt;/strong&gt; One for headings, one for body text. Free options on Google Fonts have plenty of good pairings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two or three colors.&lt;/strong&gt; One background, one text color, one accent for buttons and links.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lots of whitespace.&lt;/strong&gt; Crowded pages look amateur. Empty space looks confident.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistent spacing.&lt;/strong&gt; Use the same gaps between sections and cards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Readable text.&lt;/strong&gt; Dark text on a light background, or the reverse, with strong contrast. Don't put light gray on white.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile first.&lt;/strong&gt; Many people will open your link on a phone. Check it there before anything else.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Steal ideas shamelessly, in a good way. Browse a few portfolios you love, notice what they do (spacing, layout, how they show projects), then build your own version. Copying the &lt;em&gt;approach&lt;/em&gt; is learning. Copying the code and content is not.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. The Build Order That Works
&lt;/h2&gt;

&lt;p&gt;Follow this sequence and you'll finish:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Sketch it.&lt;/strong&gt; A rough wireframe on paper or in Excalidraw. Five boxes, no colors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write the words first.&lt;/strong&gt; Your one-liner, About paragraph, and project descriptions. Design goes faster when the content exists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build one page.&lt;/strong&gt; Get it working end to end, ugly is fine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make it responsive.&lt;/strong&gt; Test on a phone-sized screen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add polish.&lt;/strong&gt; Colors, fonts, a hover effect or two.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deploy.&lt;/strong&gt; Don't wait for perfect.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The biggest killer of portfolios is polishing something that isn't online yet. Ship the ugly version, then improve it.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Put It Online for Free
&lt;/h2&gt;

&lt;p&gt;You can host a portfolio at no cost. Common options are GitHub Pages, Netlify, Vercel, and Cloudflare Pages. All of them can turn a folder of files into a live link in minutes, usually straight from a GitHub repo, so every update goes live automatically when you push.&lt;/p&gt;

&lt;p&gt;Free plans and their limits change over time, so check the current details when you sign up.&lt;/p&gt;

&lt;p&gt;Later, consider a custom domain like &lt;code&gt;yourname.com&lt;/code&gt; or &lt;code&gt;yourname.dev&lt;/code&gt;. It costs a little each year and looks much more professional than a long default address, but it's optional. Don't let it delay your launch.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. The Small Details That Make You Look Professional
&lt;/h2&gt;

&lt;p&gt;These take ten minutes and set you apart:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Page title and description.&lt;/strong&gt; What shows up in Google results and browser tabs. Include your name and what you do.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A favicon.&lt;/strong&gt; The tiny icon in the browser tab. Its absence quietly says "unfinished."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A preview image for link sharing.&lt;/strong&gt; When you paste your link into LinkedIn or a chat, a good preview card makes people click.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image descriptions (alt text).&lt;/strong&gt; Good for accessibility and search.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compressed images.&lt;/strong&gt; Huge photos make your site slow, and slow sites get closed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Working links.&lt;/strong&gt; Click every single one. Broken links look sloppy.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  10. Test It Before You Share It
&lt;/h2&gt;

&lt;p&gt;Do a quick sanity check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open it on your phone and on a different browser&lt;/li&gt;
&lt;li&gt;Ask three friends to look at it for five seconds, then tell you what you do. If they can't say, your hero section needs work.&lt;/li&gt;
&lt;li&gt;Read every word out loud for typos&lt;/li&gt;
&lt;li&gt;Make sure the contact links actually open the right thing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then ask someone in the field for honest feedback. A senior student or a developer in your club works great. Honest feedback stings for a minute and helps for years.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Common Mistakes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Waiting for it to be perfect.&lt;/strong&gt; It never will be. Launch and iterate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Too many projects.&lt;/strong&gt; Ten mediocre ones drown out three great ones.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tutorial clones.&lt;/strong&gt; Every to-do app and weather app looks the same. Add something of your own.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fake skill bars and buzzwords.&lt;/strong&gt; Show, don't claim.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Never updating it.&lt;/strong&gt; An old portfolio with two-year-old projects says you stopped building.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ignoring mobile.&lt;/strong&gt; More people than you think will open it on a phone.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  12. Keep It Alive
&lt;/h2&gt;

&lt;p&gt;A portfolio isn't a one-time task. Every few months, add your newest project, retire the weakest one, and reread your bio. Set a calendar reminder so it doesn't rot.&lt;/p&gt;

&lt;p&gt;Also, add your portfolio link everywhere: your GitHub profile, LinkedIn, Dev.to bio, resume, and email signature. A great site nobody visits does nothing for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Now Go Write One Sentence
&lt;/h2&gt;

&lt;p&gt;Don't open a code editor yet. Open a plain text file and write your one-line intro: who you are and what you build.&lt;/p&gt;

&lt;p&gt;Once you have that sentence, everything else gets easier. Then sketch five boxes, write the content, and build it in one weekend. You can improve it forever after that.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let's Connect
&lt;/h2&gt;

&lt;p&gt;I'm Prayush Adhikari, currently grinding through computer engineering, leading an IT club, and building my own company on the side. I write about Linux, productivity, and the honest side of being a developer.&lt;/p&gt;

&lt;p&gt;Drop your portfolio link in the comments once it's live. I'd like to see it and give feedback.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://linkedin.com/in/adhikareeprayush" rel="noopener noreferrer"&gt;linkedin.com/in/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/adhikareeprayush" rel="noopener noreferrer"&gt;github.com/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio: &lt;a href="https://prayushadhikari.com.np" rel="noopener noreferrer"&gt;prayushadhikari.com.np&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What should I write next: how to stay consistent and avoid burnout while learning to code, or how to land your first freelance client as a student?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>portfolio</category>
      <category>career</category>
    </item>
    <item>
      <title>Git Explained for Beginners (Without the Confusing Parts)</title>
      <dc:creator>Prayush Adhikari</dc:creator>
      <pubDate>Wed, 07 Oct 2026 13:35:52 +0000</pubDate>
      <link>https://dev.to/adhikareeprayush/git-explained-for-beginners-without-the-confusing-parts-5036</link>
      <guid>https://dev.to/adhikareeprayush/git-explained-for-beginners-without-the-confusing-parts-5036</guid>
      <description>&lt;p&gt;You've heard everyone say "just push it to GitHub." You nodded. You have no idea what that means.&lt;/p&gt;

&lt;p&gt;Or maybe you've memorized &lt;code&gt;git add .&lt;/code&gt;, &lt;code&gt;git commit -m "stuff"&lt;/code&gt;, &lt;code&gt;git push&lt;/code&gt; like a magic spell, and the day something goes wrong you have no clue what to do. Delete the folder and clone again? Yeah, I've seen that. I've done that.&lt;/p&gt;

&lt;p&gt;Git isn't hard because the commands are hard. It's hard because nobody explains what's happening underneath. Once you have the right picture in your head, the commands stop being spells and start making sense. Let me give you that picture.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Git Is a Save System for Your Code
&lt;/h2&gt;

&lt;p&gt;Think about a video game with save points.&lt;/p&gt;

&lt;p&gt;Before a boss fight, you save. If you die, you reload and try again. You don't lose the whole game, just the last few minutes. Some games even let you keep multiple save slots so you can try a risky path without wrecking your main run.&lt;/p&gt;

&lt;p&gt;Git does exactly that for your project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;commit&lt;/strong&gt; is a save point, with a note attached saying what changed&lt;/li&gt;
&lt;li&gt;Your &lt;strong&gt;history&lt;/strong&gt; is the list of all your save points, so you can go back to any of them&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;branch&lt;/strong&gt; is a separate save slot where you can try something risky&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Merging&lt;/strong&gt; is bringing the results of one slot back into your main game&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's the whole idea. Everything else is details.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Git vs GitHub (They're Not the Same Thing)
&lt;/h2&gt;

&lt;p&gt;This trips up almost everyone at the start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt; is the tool that lives on your computer and tracks your changes. It works completely offline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt; is a website that stores copies of your Git projects online, so you can back them up, share them, and work with other people. GitLab and Bitbucket do the same job.&lt;/p&gt;

&lt;p&gt;If Git is the game, GitHub is the cloud save. You can play without the cloud, but the cloud is how you keep your progress safe and let friends join in.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. The Three Places Your Code Lives
&lt;/h2&gt;

&lt;p&gt;This is the part tutorials skip, and it's the reason &lt;code&gt;git add&lt;/code&gt; confuses people.&lt;/p&gt;

&lt;p&gt;Your code moves through three areas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Working folder.&lt;/strong&gt; The files you're actually editing right now.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Staging area.&lt;/strong&gt; A waiting room where you choose which changes go into the next save.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repository.&lt;/strong&gt; The saved history, where your commits live.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Picture packing a bag before a trip. Your working folder is your whole room. Staging is the bag on the bed, where you place only what you're taking. The commit is zipping the bag shut and putting a label on it.&lt;/p&gt;

&lt;p&gt;Why bother with staging? Because sometimes you've changed five files but only two belong to the same idea. Staging lets you save those two together with a clear note, and leave the rest for another commit. That's what keeps a history readable.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Your First Five Minutes with Git
&lt;/h2&gt;

&lt;p&gt;First, tell Git who you are, once per computer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"you@example.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now make a project and start tracking it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;my-project
&lt;span class="nb"&gt;cd &lt;/span&gt;my-project
git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;git init&lt;/code&gt; turns the folder into a repository. Create a file, then check what Git sees:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Hello Git"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; notes.txt
git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;git status&lt;/code&gt; is your best friend. It tells you what changed, what's staged, and what Git isn't tracking yet. Whenever you feel lost, run it.&lt;/p&gt;

&lt;p&gt;Stage the file, then save:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add notes.txt
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add first notes file"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now look at your history:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;--oneline&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You just made your first save point. That's the loop you'll repeat thousands of times: change files, &lt;code&gt;git add&lt;/code&gt;, &lt;code&gt;git commit&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Write Commit Messages Future You Will Thank You For
&lt;/h2&gt;

&lt;p&gt;A commit message is the note attached to a save point. Compare these:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Bad&lt;/th&gt;
&lt;th&gt;Better&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;update&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Fix login button not responding on mobile&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;stuff&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Add validation to signup form&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;final final v2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Refactor navbar into a reusable component&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A good rule: your message should complete the sentence "This commit will..." in a way that makes sense. Keep the first line short and specific. When you're hunting for the moment a bug appeared three weeks from now, you'll be very glad you wrote real messages.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Branches: Try Things Without Fear
&lt;/h2&gt;

&lt;p&gt;Here's where Git gets genuinely powerful.&lt;/p&gt;

&lt;p&gt;The main line of your project is usually called &lt;code&gt;main&lt;/code&gt;. A &lt;strong&gt;branch&lt;/strong&gt; is a copy of your work where you can experiment. If it goes well, you bring it back. If it goes badly, you throw the branch away and &lt;code&gt;main&lt;/code&gt; is untouched.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git switch &lt;span class="nt"&gt;-c&lt;/span&gt; add-dark-mode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That creates a new branch called &lt;code&gt;add-dark-mode&lt;/code&gt; and moves you onto it. Make your changes, add, and commit as usual. When you're happy:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git switch main
git merge add-dark-mode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now &lt;code&gt;main&lt;/code&gt; includes your dark mode work. Small habit that will save you a lot of pain: &lt;strong&gt;one branch per feature or fix.&lt;/strong&gt; Keep them small and short-lived.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Connecting to GitHub: Push, Pull, Clone
&lt;/h2&gt;

&lt;p&gt;So far everything lives on your laptop. Time to sync with GitHub.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;git clone &amp;lt;url&amp;gt;&lt;/code&gt;&lt;/strong&gt; copies an existing GitHub project to your machine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;git push&lt;/code&gt;&lt;/strong&gt; sends your new commits up to GitHub&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;git pull&lt;/code&gt;&lt;/strong&gt; brings down commits that someone else (or another computer of yours) added&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To connect a project you started locally, create an empty repository on GitHub, then link it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote add origin https://github.com/your-username/my-project.git
git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that first time, &lt;code&gt;git push&lt;/code&gt; and &lt;code&gt;git pull&lt;/code&gt; are all you need. A good habit: &lt;strong&gt;pull before you start working&lt;/strong&gt;, so you begin from the latest version.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. The Merge Conflict (It Looks Scary. It Isn't.)
&lt;/h2&gt;

&lt;p&gt;Every beginner panics the first time they see this. Let me defuse it.&lt;/p&gt;

&lt;p&gt;A conflict happens when two changes touch the same lines of the same file and Git can't decide which one wins. Instead of guessing, it stops and asks you. Open the file and you'll see something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;&lt;span class="gd"&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD
&lt;/span&gt;&amp;lt;h1&amp;gt;Welcome to my site&amp;lt;/h1&amp;gt;
&lt;span class="gh"&gt;=======
&lt;/span&gt;&amp;lt;h1&amp;gt;Welcome to my portfolio&amp;lt;/h1&amp;gt;
&lt;span class="gi"&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; add-new-heading
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The top part is your current version. The bottom is the incoming one. Your job is simple: decide what the final text should be, delete the marker lines, and save. Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add index.html
git commit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Done. Git just needed a human to pick a winner. Conflicts get easier the more often you commit small and pull often.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Undoing Mistakes (Without Panic)
&lt;/h2&gt;

&lt;p&gt;Everyone makes mistakes. Here's a safe toolkit. First, run &lt;code&gt;git status&lt;/code&gt;. It usually tells you the exact command you need.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Throw away edits to a file you haven't committed:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  git restore notes.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Careful: this really discards those changes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unstage a file you added by accident:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  git restore &lt;span class="nt"&gt;--staged&lt;/span&gt; notes.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Undo a commit you've already shared, safely:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  git revert &amp;lt;commit-id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This adds a new commit that cancels the old one, so nobody's history gets rewritten.&lt;/p&gt;

&lt;p&gt;Two commands to treat with respect: &lt;code&gt;git reset --hard&lt;/code&gt; and &lt;code&gt;git push --force&lt;/code&gt;. Both can destroy work, and force-pushing can wipe out teammates' commits. If you're not completely sure what they'll do, don't run them yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Don't Commit Your Secrets
&lt;/h2&gt;

&lt;p&gt;This one can genuinely hurt you, so read it twice.&lt;/p&gt;

&lt;p&gt;Never commit passwords, API keys, or &lt;code&gt;.env&lt;/code&gt; files. Once something is pushed to a public repo, assume the whole internet has seen it, even if you delete it a minute later. Bots scan GitHub for exposed keys constantly.&lt;/p&gt;

&lt;p&gt;Use a &lt;code&gt;.gitignore&lt;/code&gt; file to tell Git which files to skip:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;.&lt;span class="n"&gt;env&lt;/span&gt;
&lt;span class="n"&gt;node_modules&lt;/span&gt;/
*.&lt;span class="n"&gt;log&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you do accidentally push a key, don't just delete the file. &lt;strong&gt;Revoke and replace the key immediately&lt;/strong&gt;, then clean up. Deleting the commit isn't enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. The Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What you want&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Start tracking a folder&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;See what's going on&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stage a file&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git add &amp;lt;file&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Save a snapshot&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git commit -m "message"&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;See history&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git log --oneline&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Make and switch to a branch&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git switch -c &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Switch branches&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git switch &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Merge a branch into the current one&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git merge &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Download a project&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git clone &amp;lt;url&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Send commits to GitHub&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git push&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Get latest changes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git pull&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You don't need to memorize all of these today. Print them, tape them next to your screen, and they'll stick on their own.&lt;/p&gt;

&lt;h2&gt;
  
  
  12. Habits That Make Git Painless
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Commit small and often.&lt;/strong&gt; Many small commits beat one giant one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write real messages.&lt;/strong&gt; Future you is a stranger who needs context.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pull before you start.&lt;/strong&gt; Begin from the freshest code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Branch for every feature.&lt;/strong&gt; Keep &lt;code&gt;main&lt;/code&gt; clean and working.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run &lt;code&gt;git status&lt;/code&gt; constantly.&lt;/strong&gt; It costs nothing and prevents most surprises.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Now Go Break Something Safely
&lt;/h2&gt;

&lt;p&gt;Make a throwaway folder, run &lt;code&gt;git init&lt;/code&gt;, and go wild. Create a branch, mess up a file on purpose, create a conflict, and fix it. There's no better way to lose your fear of Git than breaking it in a place where nothing matters.&lt;/p&gt;

&lt;p&gt;Ten minutes of that will teach you more than an hour of reading.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let's Connect
&lt;/h2&gt;

&lt;p&gt;I'm Prayush Adhikari, currently grinding through computer engineering, leading an IT club, and building my own company on the side. I write about Linux, productivity, and the honest side of being a developer.&lt;/p&gt;

&lt;p&gt;Tell me in the comments what part of Git confuses you the most. I'll cover it in a follow-up.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://linkedin.com/in/adhikareeprayush" rel="noopener noreferrer"&gt;linkedin.com/in/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/adhikareeprayush" rel="noopener noreferrer"&gt;github.com/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio: &lt;a href="https://prayushadhikari.com.np" rel="noopener noreferrer"&gt;prayushadhikari.com.np&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What should I write next: how to read and understand error messages, or how to build your first portfolio website from scratch?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Stop Panicking at Red Text: How to Actually Read Error Messages</title>
      <dc:creator>Prayush Adhikari</dc:creator>
      <pubDate>Mon, 05 Oct 2026 20:17:03 +0000</pubDate>
      <link>https://dev.to/adhikareeprayush/stop-panicking-at-red-text-how-to-actually-read-error-messages-1df</link>
      <guid>https://dev.to/adhikareeprayush/stop-panicking-at-red-text-how-to-actually-read-error-messages-1df</guid>
      <description>&lt;p&gt;Your screen just turned red. There's a wall of text, half of it looks like a foreign language, and your first instinct is to close the terminal and pretend it never happened.&lt;/p&gt;

&lt;p&gt;Been there. For an embarrassingly long time, my debugging strategy was to stare at the error for two seconds, decide it was unreadable, and start randomly changing things until it went away. Sometimes that worked. Mostly it made things worse.&lt;/p&gt;

&lt;p&gt;Here's the surprising truth: that red wall of text is usually the most helpful thing your computer will ever say to you. It tells you what broke, where it broke, and often why. You just need to learn to read it. Let's fix that.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. An Error Is a Note, Not an Insult
&lt;/h2&gt;

&lt;p&gt;Most beginners hear error messages as criticism. "You did it wrong." So they look away.&lt;/p&gt;

&lt;p&gt;Try a different frame. Think of an error message as a note left by a very literal coworker who can only say what they see: "I got to line 12, tried to use something called &lt;code&gt;total&lt;/code&gt;, and I don't know what that is."&lt;/p&gt;

&lt;p&gt;It isn't judging you. It's reporting a fact, and the fact narrows your search from "somewhere in my whole project" to "right around this line." That's a gift. A bug with no error message is much harder to find, and I'll get to that later.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Read the Whole Thing (Yes, Really)
&lt;/h2&gt;

&lt;p&gt;The number one habit that separates people who debug fast from people who suffer: &lt;strong&gt;they read the entire message, slowly, before touching anything.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most errors contain three useful pieces:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The type.&lt;/strong&gt; What kind of problem is this? (&lt;code&gt;TypeError&lt;/code&gt;, &lt;code&gt;NameError&lt;/code&gt;, &lt;code&gt;SyntaxError&lt;/code&gt;...)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The message.&lt;/strong&gt; A short sentence explaining what went wrong.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The location.&lt;/strong&gt; The file and line number where it happened.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Find those three and you've solved half the problem before opening Google.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Follow the Footprints
&lt;/h2&gt;

&lt;p&gt;Here's a real-looking Python error:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Traceback (most recent call last):
&lt;/span&gt;&lt;span class="gp"&gt;  File "app.py", line 8, in &amp;lt;module&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="go"&gt;    total = add_prices(cart)
  File "app.py", line 4, in add_prices
    return sum(prices) + tax
NameError: name 'tax' is not defined
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Looks scary. Let's read it like a detective following footprints.&lt;/p&gt;

&lt;p&gt;This block is called a &lt;strong&gt;stack trace&lt;/strong&gt; (or traceback). It's a trail showing how the program got to the crash: line 8 called a function, and inside that function, line 4 is where things fell apart.&lt;/p&gt;

&lt;p&gt;The trick in Python: &lt;strong&gt;read from the bottom up.&lt;/strong&gt; The last line is the actual problem:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;NameError: name 'tax' is not defined&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Translation: "You used something called &lt;code&gt;tax&lt;/code&gt;, but I've never heard of it." Now look one line above: line 4, inside &lt;code&gt;add_prices&lt;/code&gt;. You'll spot that &lt;code&gt;tax&lt;/code&gt; was never created, or is misspelled, or lives somewhere this function can't see.&lt;/p&gt;

&lt;p&gt;Thirty seconds, and you know exactly where to look. No guessing.&lt;/p&gt;

&lt;p&gt;JavaScript works a little differently, and the newest line is often at the top of the trace, so check where your browser or tool puts the important part. The reading skill is the same: find the type, the message, and the location.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. A Field Guide to Common Errors
&lt;/h2&gt;

&lt;p&gt;You'll see the same handful of errors over and over. Learn what they usually mean and you'll recognize most of them on sight.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Error&lt;/th&gt;
&lt;th&gt;What it usually means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SyntaxError&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;You broke the grammar of the language: a missing bracket, quote, or colon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;NameError&lt;/code&gt; / &lt;code&gt;ReferenceError&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;You used a variable or function that doesn't exist (yet), often a typo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TypeError&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;You used the wrong kind of thing, like adding a number to text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;IndexError&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;You asked for item 5 in a list that only has 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;KeyError&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;You asked a dictionary for a key that isn't there&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Cannot read properties of undefined&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;You tried to use a value that doesn't exist, like &lt;code&gt;user.name&lt;/code&gt; when &lt;code&gt;user&lt;/code&gt; is empty&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;ModuleNotFoundError&lt;/code&gt; / &lt;code&gt;Cannot find module&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;The library isn't installed, or the name or path is wrong&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;404&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The page or endpoint you asked for doesn't exist at that address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;401&lt;/code&gt; / &lt;code&gt;403&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;You're not logged in, or you're not allowed to see that&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;500&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The server itself crashed. Usually the problem is on their side, not yours&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Don't memorize this table. Bookmark it, and let the patterns sink in over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. The Error Might Be Lying (Slightly)
&lt;/h2&gt;

&lt;p&gt;One thing that trips up every beginner: &lt;strong&gt;the line number points to where the program noticed the problem, not always where you made it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The classic case is a missing closing bracket. You forget it on line 10, but the computer keeps reading until line 25 before realizing something is wrong. So the error shows up on line 25.&lt;/p&gt;

&lt;p&gt;When the reported line looks perfectly fine, check the lines above it. Look for unclosed brackets, quotes, or parentheses. Nine times out of ten, that's where the real culprit is hiding.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Search the Right Way
&lt;/h2&gt;

&lt;p&gt;Once you've read the error and still don't get it, Google is your next move. But there's a way to do this well.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Copy the error message itself&lt;/strong&gt;, especially the last line. Not your whole file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remove parts that are specific to you&lt;/strong&gt;, like your file paths and variable names.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add the language or framework&lt;/strong&gt; in front. "Python NameError name is not defined" beats "my code doesn't work."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Look at results from official docs, Stack Overflow, or GitHub issues&lt;/strong&gt; first. Skim the answers and check the date, because old answers can be outdated.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most errors you'll hit have been hit by thousands of people before you. You're rarely the first.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Using AI Without Turning Off Your Brain
&lt;/h2&gt;

&lt;p&gt;AI tools are genuinely good at explaining errors. Paste in the message and the few lines of code around it, and you'll often get a clear explanation in seconds.&lt;/p&gt;

&lt;p&gt;But use it as a teacher, not a fixer. Instead of "fix this," try:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Explain what this error means in simple words"&lt;/li&gt;
&lt;li&gt;"Where in my code is the likely cause, and why?"&lt;/li&gt;
&lt;li&gt;"Give me a hint but don't write the solution"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you paste the fix without understanding it, you'll hit the same error next week and be exactly as confused. I made the same argument in my earlier posts about learning in the AI era, and it applies double here.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. When There's No Error (The Silent Bug)
&lt;/h2&gt;

&lt;p&gt;The trickiest bugs are the ones where nothing crashes. The program runs happily and gives you the wrong answer.&lt;/p&gt;

&lt;p&gt;No red text means no clue, so you have to create your own clues:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Print your way through it.&lt;/strong&gt; Add print statements (or &lt;code&gt;console.log&lt;/code&gt; in JavaScript) to see what your variables actually hold at each step. Most of the time you'll find that something isn't what you assumed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shrink the problem.&lt;/strong&gt; Remove parts of the code until you have the smallest piece that still gives the wrong result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explain it out loud.&lt;/strong&gt; Describe what each line is supposed to do, to a friend, a rubber duck, or the wall. Somewhere in that sentence, you'll say something that doesn't match the code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Change one thing at a time.&lt;/strong&gt; If you edit five things and it starts working, you won't know which one fixed it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bugs aren't magic. Every one has a cause, and the goal is to narrow down where it hides.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. How to Ask for Help So People Actually Answer
&lt;/h2&gt;

&lt;p&gt;Sometimes you're truly stuck, and asking for help is the right move. Vague questions get vague answers, or silence. A good question includes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;What you're trying to do.&lt;/strong&gt; The goal in one sentence.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What you expected to happen.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What actually happened,&lt;/strong&gt; with the exact error message pasted as text, not a photo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The smallest bit of code&lt;/strong&gt; that shows the problem.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What you've already tried.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Writing the question this carefully often solves the problem before you hit send. And when it doesn't, people answer fast, because you made their job easy.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Habits That Make You Faster
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Read the error out loud,&lt;/strong&gt; slowly. It sounds silly and it works.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't change random things.&lt;/strong&gt; Every edit should test a specific idea.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fix the first error first.&lt;/strong&gt; Later errors are often just fallout from the earlier one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep a "bugs I've fixed" note.&lt;/strong&gt; The same mistakes come back. Your own notes are the fastest search engine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Take a break&lt;/strong&gt; if you've been stuck for over an hour. Fresh eyes spot the missing bracket in seconds.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Next Time Your Screen Turns Red
&lt;/h2&gt;

&lt;p&gt;Don't close it. Don't panic-click. Take one deep breath and read it from the bottom up. Find the type, the message, and the location.&lt;/p&gt;

&lt;p&gt;You'll be surprised how often the answer was sitting right there the whole time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let's Connect
&lt;/h2&gt;

&lt;p&gt;I'm Prayush Adhikari, currently grinding through computer engineering, leading an IT club, and building my own company on the side. I write about Linux, productivity, and the honest side of being a developer.&lt;/p&gt;

&lt;p&gt;Tell me in the comments about the most confusing error you've ever hit. I'd love to see if we can decode it together.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://linkedin.com/in/adhikareeprayush" rel="noopener noreferrer"&gt;linkedin.com/in/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/adhikareeprayush" rel="noopener noreferrer"&gt;github.com/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio: &lt;a href="https://prayushadhikari.com.np" rel="noopener noreferrer"&gt;prayushadhikari.com.np&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What should I write next: how to build your first portfolio website from scratch, or how to pick a programming language as a total beginner?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>debugging</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Which Programming Language Should You Learn First? (Stop Overthinking It)</title>
      <dc:creator>Prayush Adhikari</dc:creator>
      <pubDate>Sun, 04 Oct 2026 04:30:14 +0000</pubDate>
      <link>https://dev.to/adhikareeprayush/which-programming-language-should-you-learn-first-stop-overthinking-it-1km8</link>
      <guid>https://dev.to/adhikareeprayush/which-programming-language-should-you-learn-first-stop-overthinking-it-1km8</guid>
      <description>&lt;p&gt;You asked Reddit. You watched three "best language in 2026" videos. You messaged a friend who studies CS. Now you have six different answers, four browser tabs of comparison charts, and zero lines of code written.&lt;/p&gt;

&lt;p&gt;I get it. I lost an embarrassing amount of time on this exact question before I wrote a single real program, and I see the same thing every time new members join our IT club. This post will end the debate for you. It won't declare a winner, because there isn't one. It'll give you a way to choose in about ten minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The First Language Matters Less Than You Think
&lt;/h2&gt;

&lt;p&gt;Here's what nobody tells beginners: the hard part of programming isn't the language. It's the ideas underneath it. Variables, conditions, loops, functions, and how to break a problem into small steps. Those ideas are the same everywhere.&lt;/p&gt;

&lt;p&gt;Look at the same loop in two different languages.&lt;/p&gt;

&lt;p&gt;Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;JavaScript:&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="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same idea, same output, different spelling. Once you truly understand a loop in one language, you understand it in all of them. Your second language will take a fraction of the time your first one did.&lt;/p&gt;

&lt;p&gt;So the question isn't "which language is the best?" It's "which language will keep me learning and building until the fundamentals click?"&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Think of It Like Picking Your First Instrument
&lt;/h2&gt;

&lt;p&gt;Say you want to learn music. Guitar, piano, and drums are all fine choices. What actually matters is what you want to play.&lt;/p&gt;

&lt;p&gt;Want to accompany songs around a campfire? Guitar. Want to compose and understand theory? Piano. Want to drive a band? Drums.&lt;/p&gt;

&lt;p&gt;Whichever you pick, you learn rhythm, timing, and how to practice. Switch to another instrument later and all of that carries over. Nobody who started on piano is stuck on piano forever.&lt;/p&gt;

&lt;p&gt;Programming languages work the same way. Pick based on what you want to make, learn the universal skills, and move sideways whenever you need to.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Start From What You Want to Build
&lt;/h2&gt;

&lt;p&gt;Skip the "top languages" lists for a minute and ask a simpler question: &lt;strong&gt;what do I want to make?&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;If you want to build...&lt;/th&gt;
&lt;th&gt;Good first choice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Websites and web apps&lt;/td&gt;
&lt;td&gt;JavaScript (with HTML and CSS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Automation, scripts, data work, or AI projects&lt;/td&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Android apps&lt;/td&gt;
&lt;td&gt;Kotlin (or Java)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iPhone apps&lt;/td&gt;
&lt;td&gt;Swift&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Games (beginner friendly)&lt;/td&gt;
&lt;td&gt;C# with Unity, or GDScript with Godot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Big-name games or engines&lt;/td&gt;
&lt;td&gt;C++&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hardware, embedded systems, or operating systems&lt;/td&gt;
&lt;td&gt;C or C++&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend services at scale&lt;/td&gt;
&lt;td&gt;Java, C#, or Go&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Notice that a few of these overlap. That's fine. You're picking a starting point, not signing a contract.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Still Have No Idea? Pick Python or JavaScript
&lt;/h2&gt;

&lt;p&gt;If you genuinely don't know what you want to build yet, which is completely normal, choose between these two. Both are beginner-friendly, both have huge communities, and both have endless free learning material.&lt;/p&gt;

&lt;h3&gt;
  
  
  Python
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pros:&lt;/strong&gt; Clean, readable syntax that looks close to plain English. Great for automation, data, and AI. Very forgiving for beginners.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cons:&lt;/strong&gt; You don't see visual results as quickly. Building a website or app with it takes extra tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick it if:&lt;/strong&gt; You like logic, want to automate boring tasks, or are curious about data and AI.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  JavaScript
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pros:&lt;/strong&gt; Runs in every browser, so you can build something visual and share it with a link on day one. Powers a huge share of the web.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cons:&lt;/strong&gt; It has quirks that confuse beginners, and the ecosystem of tools can feel overwhelming.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick it if:&lt;/strong&gt; You want to see your work on screen immediately and you're interested in websites or apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're still stuck, flip a coin. I'm not joking. The difference between the two for a beginner is small, and the time you spend agonizing is worth far more than any gap between them.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. What About C, C++, or Java First?
&lt;/h2&gt;

&lt;p&gt;Many colleges start students on C, C++, or Java. If that's your situation, just learn what your course teaches. You'll be tested on it anyway.&lt;/p&gt;

&lt;p&gt;These languages are stricter and closer to how computers really work, which makes them harder at first but excellent for understanding memory, types, and performance. Plenty of great engineers started here. They're a fine first language if you have a teacher, a course, or a specific goal that needs them. If you're teaching yourself with no particular goal, a gentler language is usually easier to stick with.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Mistakes That Waste Your First Months
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language hopping.&lt;/strong&gt; Two weeks of Python, then "actually JavaScript is better," then Rust because someone on Twitter said so. Every restart resets your progress. Pick one and commit for at least 90 days.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choosing by hype or salary lists.&lt;/strong&gt; Trends change. The person who keeps learning beats the person who chased the trend.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Waiting for the perfect choice.&lt;/strong&gt; There isn't one. Time spent deciding is time not spent learning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learning three at once.&lt;/strong&gt; One language, one path, one project. Depth first, breadth later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learning syntax only.&lt;/strong&gt; Knowing what a &lt;code&gt;for&lt;/code&gt; loop looks like is not the same as being able to solve a problem with it. Build things.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  7. Does the Language Even Matter in the AI Era?
&lt;/h2&gt;

&lt;p&gt;Fair question, since AI tools can write code in almost any language now.&lt;/p&gt;

&lt;p&gt;Here's my answer: it matters less for typing, and more for understanding. AI can produce a working program in seconds, but you still need to read it, judge whether it's right, and fix it when it breaks. That requires knowing at least one language properly.&lt;/p&gt;

&lt;p&gt;So choose one, go deep, and use AI as a tutor along the way. I covered this in more detail in my post about learning to code in the AI era, so check that out if you haven't yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. How Will You Know You've Learned Enough?
&lt;/h2&gt;

&lt;p&gt;You're past the beginner stage when you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build a small project from a blank file without following a tutorial&lt;/li&gt;
&lt;li&gt;Read someone else's simple code and roughly follow what it does&lt;/li&gt;
&lt;li&gt;Fix most of your own errors by reading the message&lt;/li&gt;
&lt;li&gt;Explain, in plain words, what your code does and why&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's the target. Not "finish every chapter." Notice that none of it requires knowing every feature of the language.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. A Simple 90-Day Plan
&lt;/h2&gt;

&lt;p&gt;Once you've picked, here's a plan that works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Days 1 to 30: Fundamentals&lt;/strong&gt;&lt;br&gt;
Learn variables, conditions, loops, functions, and lists. Use one good free resource, and write small programs every day, even ten-line ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Days 31 to 60: Small projects&lt;/strong&gt;&lt;br&gt;
Build three or four tiny things: a calculator, a quiz, a simple tracker. Get stuck on purpose, and fight through it before searching.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Days 61 to 90: One real project&lt;/strong&gt;&lt;br&gt;
Pick something you'd actually use. Put it on GitHub, write a proper README, and get it online if you can. Show it to someone.&lt;/p&gt;

&lt;p&gt;By day 90 you'll have a real project, real confidence, and an easy answer to "what have you built?"&lt;/p&gt;

&lt;h2&gt;
  
  
  10. When to Add a Second Language
&lt;/h2&gt;

&lt;p&gt;Add another language when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You've shipped at least one project in your first&lt;/li&gt;
&lt;li&gt;A project or job genuinely needs something else&lt;/li&gt;
&lt;li&gt;You're curious and the first one feels comfortable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A common and useful pairing is Python for automation and data alongside JavaScript for the web. But that's a decision for later. Right now, your only job is to start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Decision Time
&lt;/h2&gt;

&lt;p&gt;Answer these quickly and go with your gut:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Do you already know what you want to build? &lt;strong&gt;Use the table in section 3.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Does your college require a particular language? &lt;strong&gt;Learn that one.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Still no idea? &lt;strong&gt;Python if you like logic, JavaScript if you like seeing results.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Still can't decide? &lt;strong&gt;Flip a coin, and start today.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The best first language is the one you actually open tomorrow morning.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let's Connect
&lt;/h2&gt;

&lt;p&gt;I'm Prayush Adhikari, currently grinding through computer engineering, leading an IT club, and building my own company on the side. I write about Linux, productivity, and the honest side of being a developer.&lt;/p&gt;

&lt;p&gt;Tell me in the comments which language you're starting with and what you want to build. I'll cheer you on.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://linkedin.com/in/adhikareeprayush" rel="noopener noreferrer"&gt;linkedin.com/in/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/adhikareeprayush" rel="noopener noreferrer"&gt;github.com/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio: &lt;a href="https://prayushadhikari.com.np" rel="noopener noreferrer"&gt;prayushadhikari.com.np&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What should I write next: how to build your first portfolio website from scratch, or how to stay consistent and avoid burnout while learning to code?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>career</category>
      <category>learning</category>
    </item>
    <item>
      <title>Your First Internship: How to Not Feel Completely Lost in Week One</title>
      <dc:creator>Prayush Adhikari</dc:creator>
      <pubDate>Thu, 01 Oct 2026 04:02:29 +0000</pubDate>
      <link>https://dev.to/adhikareeprayush/your-first-internship-how-to-not-feel-completely-lost-in-week-one-5cb0</link>
      <guid>https://dev.to/adhikareeprayush/your-first-internship-how-to-not-feel-completely-lost-in-week-one-5cb0</guid>
      <description>&lt;p&gt;You got the internship. Congratulations, genuinely. Now the panic sets in: everyone else seems to already know how things work here, the codebase is huge, and you have no idea what you're allowed to ask without looking clueless.&lt;/p&gt;

&lt;p&gt;Every intern feels this in week one. What separates the ones who have a great internship from the ones who spend three months quietly terrified isn't skill. It's how they handle exactly this stretch.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. You're an Exchange Student, Not a Transfer
&lt;/h2&gt;

&lt;p&gt;Think about what it's like being an exchange student at a new school abroad. You don't already know the unwritten rules: how strict this teacher actually is, which shortcuts are fine, which ones aren't, what the local slang means. A smart exchange student spends the first weeks watching and asking quiet questions before assuming their old school's rules apply here.&lt;/p&gt;

&lt;p&gt;An internship works the same way. Every team has its own unwritten culture: how they review code, how blunt or gentle their feedback is, what "done" actually means to them. You're not expected to know it on day one. You're expected to notice you don't know it yet, and to learn fast without pretending otherwise.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Nobody Expects You to Already Know Everything
&lt;/h2&gt;

&lt;p&gt;This is worth repeating because it doesn't sink in easily: &lt;strong&gt;you were hired as an intern, not as a finished engineer.&lt;/strong&gt; The company already knows you're learning. The pressure you feel to seem competent from day one is almost entirely self-imposed.&lt;/p&gt;

&lt;p&gt;What they actually expect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Curiosity and real effort&lt;/li&gt;
&lt;li&gt;The ability to ask for help instead of silently spinning your wheels&lt;/li&gt;
&lt;li&gt;Steady improvement over the weeks, not instant mastery&lt;/li&gt;
&lt;li&gt;Being pleasant and reliable to work with&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nobody is quietly judging you for not knowing the codebase on day two. They'd be far more concerned by someone who pretends to understand something they don't.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. The First Week Is for Watching, Not Proving
&lt;/h2&gt;

&lt;p&gt;Resist the urge to immediately prove yourself with something big. The first few days are better spent learning the terrain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Read the onboarding docs fully,&lt;/strong&gt; even the boring parts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set up your development environment&lt;/strong&gt; and get the existing project running locally&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read through the codebase&lt;/strong&gt; you'll be working in, even without changing anything yet&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notice communication patterns.&lt;/strong&gt; Which channel do people use for what? How formal or casual is the tone?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meet your team,&lt;/strong&gt; even briefly. A short chat with each teammate is worth more than it seems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You're not being unproductive by doing this. You're building the map you'll need before you can move confidently.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Ask Questions the Smart Way
&lt;/h2&gt;

&lt;p&gt;Asking questions is expected and encouraged. How you ask them is what actually gets noticed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Weak:&lt;/strong&gt; "This doesn't work, what do I do?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Better:&lt;/strong&gt; "I'm trying to do X. I expected Y to happen, but I got Z instead. Here's what I've tried so far. Do you know what I might be missing?"&lt;/p&gt;

&lt;p&gt;The second version shows effort, gives your teammate enough to actually help quickly, and doesn't waste their time on back-and-forth just to understand the problem. A good rule: try for fifteen to thirty minutes on your own first, then ask, rather than either giving up instantly or silently struggling for hours.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Take Notes Like Your Future Self Depends on It
&lt;/h2&gt;

&lt;p&gt;You'll be told a lot of things in your first weeks: where things live, how to run tests, who owns which part of the system, small quirks that aren't written down anywhere. Write it all down.&lt;/p&gt;

&lt;p&gt;Keep a simple running document:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Setup steps you had to figure out&lt;/li&gt;
&lt;li&gt;People and what they own or know well&lt;/li&gt;
&lt;li&gt;Terms and acronyms specific to this company&lt;/li&gt;
&lt;li&gt;Mistakes you made and how you fixed them&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two benefits: you stop asking the same question twice, and by week four you'll have an informal manual that would have saved you a lot of confusion in week one.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Understand Before You Touch
&lt;/h2&gt;

&lt;p&gt;When you're finally given a task, resist jumping straight into code. Spend a few minutes making sure you actually understand what's being asked:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Restate the task in your own words to whoever assigned it&lt;/li&gt;
&lt;li&gt;Ask about edge cases or ambiguous parts before you start&lt;/li&gt;
&lt;li&gt;Check how your task fits into the bigger picture, if that's unclear&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A short clarifying conversation up front is far cheaper than building the wrong thing and needing to redo it later.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Handling Feedback and Code Review
&lt;/h2&gt;

&lt;p&gt;Your code will get reviewed, and comments will come back. This is one of the best parts of an internship, not a punishment.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Don't take it personally.&lt;/strong&gt; A comment on your code isn't a comment on your worth&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask "why" when a suggestion isn't clear,&lt;/strong&gt; rather than silently changing it without understanding&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Say thanks,&lt;/strong&gt; even for blunt feedback. It signals you're coachable, which people notice and remember&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apply the same feedback proactively next time,&lt;/strong&gt; which shows you're actually learning, not just fixing one instance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interns who grow fastest are the ones who treat every review comment as a small, free lesson.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Manage Up a Little
&lt;/h2&gt;

&lt;p&gt;You likely have a manager or a mentor assigned to you. Don't wait passively for them to check on you constantly. A little initiative goes a long way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give a short update on your progress every few days, even unprompted&lt;/li&gt;
&lt;li&gt;Flag early if you're stuck or blocked, rather than waiting until a deadline is at risk&lt;/li&gt;
&lt;li&gt;Ask what "good" looks like for your specific tasks, so you're not guessing at the bar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A quick, honest "here's where I am, here's what I'm stuck on" message is one of the simplest ways to look reliable, regardless of your actual skill level yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Build Relationships, Not Just Output
&lt;/h2&gt;

&lt;p&gt;Your internship isn't only about the code you ship. It's also your first real chance to build a small professional network, which I've written about in more depth separately.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Say yes to coffee chats, casual lunches, or team social time when you can&lt;/li&gt;
&lt;li&gt;Ask people about their own path into the field. Most people enjoy being asked&lt;/li&gt;
&lt;li&gt;Be genuinely helpful to other interns too, not just senior engineers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These relationships often outlast the internship itself, sometimes becoming references, referrals, or simply people glad to hear from you again later.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Document Your Work as You Go
&lt;/h2&gt;

&lt;p&gt;Don't wait until the final week to remember what you did. Keep a running log:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What you built or fixed, in plain language&lt;/li&gt;
&lt;li&gt;What you learned that you didn't know before&lt;/li&gt;
&lt;li&gt;Any measurable impact, if you can point to one honestly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This becomes the raw material for your resume, your final presentation if there is one, and interview stories for your next application. Trying to reconstruct three months of work from memory in the last week is much harder than logging it along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Common Mistakes First-Time Interns Make
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pretending to understand something you don't.&lt;/strong&gt; It always surfaces later, at a worse time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disappearing when stuck.&lt;/strong&gt; Silence looks worse than admitting you're blocked.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Over-promising on timelines&lt;/strong&gt; to seem capable, then scrambling to deliver.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Only talking to your immediate team.&lt;/strong&gt; Meeting people elsewhere in the company opens doors later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comparing yourself to full-time engineers.&lt;/strong&gt; They've had years of practice you haven't had yet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not asking for feedback proactively.&lt;/strong&gt; Waiting for a scheduled review means missing months of smaller course corrections.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  12. Using AI Tools During Your Internship
&lt;/h2&gt;

&lt;p&gt;Many companies now allow AI coding tools, some don't, and some have specific rules about what data can go into them. Before using anything, ask what's allowed. Once you know the rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use it to understand unfamiliar code faster, not to avoid understanding it&lt;/li&gt;
&lt;li&gt;Never paste proprietary code, credentials, or customer data into a tool without explicit permission&lt;/li&gt;
&lt;li&gt;Still be able to explain your own work in review, since "the AI wrote it" isn't an answer your reviewer wants to hear&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Week One Checklist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Get your environment set up and the project running&lt;/li&gt;
&lt;li&gt;[ ] Read the docs and skim the codebase before writing code&lt;/li&gt;
&lt;li&gt;[ ] Meet your team, even with a short message or call&lt;/li&gt;
&lt;li&gt;[ ] Start your running notes document&lt;/li&gt;
&lt;li&gt;[ ] Ask at least one question you were nervous to ask&lt;/li&gt;
&lt;li&gt;[ ] Send a short first-week update to your manager or mentor&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  You're Allowed to Not Know Things Yet
&lt;/h2&gt;

&lt;p&gt;Every senior engineer on your team was once exactly where you are now, confused by a codebase, unsure what to ask, quietly worried they didn't belong. The only real difference between you and them is time and a lot of exactly these small, uncomfortable first weeks.&lt;/p&gt;

&lt;p&gt;Show up, ask honestly, take notes, and give it real effort. That's genuinely all anyone is expecting from you right now.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let's Connect
&lt;/h2&gt;

&lt;p&gt;I'm Prayush Adhikari, currently grinding through computer engineering, leading an IT club, and building my own company on the side. I write about Linux, productivity, and the honest side of being a developer.&lt;/p&gt;

&lt;p&gt;If you're starting an internship soon, tell me in the comments what's making you most nervous. I'll do my best to help.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://linkedin.com/in/adhikareeprayush" rel="noopener noreferrer"&gt;linkedin.com/in/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/adhikareeprayush" rel="noopener noreferrer"&gt;github.com/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio: &lt;a href="https://prayushadhikari.com.np" rel="noopener noreferrer"&gt;prayushadhikari.com.np&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What should I write next: how to survive group projects with a difficult teammate, or how to turn an internship into a full-time offer?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>internship</category>
      <category>beginners</category>
      <category>career</category>
      <category>students</category>
    </item>
    <item>
      <title>I Spent a Weekend Binge-Watching LLM Content So You Don't Have To (Okay, You Still Should, But Here's the Map)</title>
      <dc:creator>Prayush Adhikari</dc:creator>
      <pubDate>Sun, 27 Sep 2026 13:58:09 +0000</pubDate>
      <link>https://dev.to/adhikareeprayush/i-spent-a-weekend-binge-watching-llm-content-so-you-dont-have-to-okay-you-still-should-but-1im1</link>
      <guid>https://dev.to/adhikareeprayush/i-spent-a-weekend-binge-watching-llm-content-so-you-dont-have-to-okay-you-still-should-but-1im1</guid>
      <description>&lt;p&gt;Real talk: everyone and their uncle is "using AI" right now, but ask most people what a token actually is and you get a blank stare. I was in that camp too, not long ago. So this month I did something slightly unhinged — I sat down and went through three completely different explanations of how LLMs actually work, back to back, and it clicked in a way that no single YouTube video was ever going to give me.&lt;/p&gt;

&lt;p&gt;Here's the thing: each of these sources attacks the problem from a totally different altitude. One gets its hands dirty with code and whiteboard sketches. One skips theory entirely and just shows you how to build something. And one is basically a full grad-school course crammed into a lecture series. Stack them together and you get something close to an actual curriculum, minus the tuition.&lt;/p&gt;

&lt;p&gt;If you're on the same journey — curious about AI beyond "type prompt, get answer" — I'm breaking down what I learned from each one, and honestly, I'd watch them in the same order I did.&lt;/p&gt;

&lt;p&gt;Big credit up front to the people who actually made this stuff:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Piyush Garg&lt;/strong&gt; — &lt;a href="https://www.youtube.com/watch?v=K45s2PgywvI" rel="noopener noreferrer"&gt;"How LLMs Works? - Overview"&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dev Weekends&lt;/strong&gt; — &lt;a href="https://www.youtube.com/watch?v=qRzK8P_SnaE" rel="noopener noreferrer"&gt;"Level 0 and Level 1 - Gen AI Sessions"&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stanford Online&lt;/strong&gt; — &lt;a href="https://www.youtube.com/playlist?list=PLoROMvodv4rOCXd21gf0CF4xr35yINeOy" rel="noopener noreferrer"&gt;"CME295: Transformers and Large Language Models I, Autumn 2025"&lt;/a&gt; (Afshine and Shervine Amidi)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's get into it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 1: What's Actually Happening Inside the Box
&lt;/h2&gt;

&lt;p&gt;If you've ever nodded along in a conversation about AI while quietly having zero clue what "embedding" means, start with Piyush Garg's video. It's not a theory lecture — it's a "let me rip the hood off this thing" video, and it works because it stays concrete the entire time.&lt;/p&gt;

&lt;p&gt;The core message is refreshingly deflating in a good way: ChatGPT, Gemini, Claude — none of it is magic, none of it is sentient. It's math, code, and a lot of data. Even the name gives it away. GPT is basically a spec sheet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Generative&lt;/strong&gt; — it makes new stuff on the fly instead of retrieving and ranking existing pages like a search engine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pre-trained&lt;/strong&gt; — it already chewed through a mountain of internet text, books, and conversations before you typed anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transformer&lt;/strong&gt; — the architecture underneath all of it, from Google's 2017 paper &lt;em&gt;"Attention Is All You Need."&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From there the video walks you through the actual pipeline your sentence goes through:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tokenization.&lt;/strong&gt; Before a computer can do anything with your text, it needs numbers. A tokenizer chops your sentence into chunks based on a vocabulary, and the size of that vocabulary decides whether you get clean whole-word tokens or things get sliced into subwords and stray characters. Garg demos this live with Hugging Face's &lt;code&gt;transformers&lt;/code&gt; library and Google's Gemma tokenizer, and honestly that's the moment it stops being abstract and starts being "oh, that's literally what's happening."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vector embeddings.&lt;/strong&gt; Once you've got tokens, each one gets mapped to a dense vector — we're talking hundreds or thousands of dimensions — that's supposed to encode meaning. The analogy that actually landed for me: think direction and distance. The path from &lt;code&gt;Cat&lt;/code&gt; to &lt;code&gt;Milk&lt;/code&gt; looks a lot like the path from &lt;code&gt;Dog&lt;/code&gt; to &lt;code&gt;Pedigree&lt;/code&gt;. &lt;code&gt;Dog&lt;/code&gt; to &lt;code&gt;Animal&lt;/code&gt; mirrors &lt;code&gt;Man&lt;/code&gt; to &lt;code&gt;Human&lt;/code&gt;. The model isn't memorizing a dictionary — it's storing relationships between concepts, and you can literally go poke at this yourself through the OpenAI embeddings API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Positional encoding.&lt;/strong&gt; Here's a detail a lot of people skip over: Transformers don't read left to right the way you do. Without help, "the dog chased the cat" and "the cat chased the dog" would look identical to the attention mechanism, which — yeah, that's a problem. Positional encoding bolts sine and cosine functions onto the embeddings so word order (and the meaning that comes with it) actually survives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Self-attention and multi-head attention.&lt;/strong&gt; This is the star of the show, and it's the actual innovation from the 2017 paper everyone name-drops. Self-attention lets every token look at every other token and update itself based on context. That's how the model knows "bank" in "river bank" has nothing to do with "bank" in "ICICI bank" — something the older RNN and CNN architectures genuinely struggled with. Multi-head attention just runs a bunch of these attention processes in parallel, so the model can track multiple relationships at once — a dog, on a train, doing something, being a specific color — all simultaneously instead of one at a time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feed-forward layers, then output.&lt;/strong&gt; These attention blocks stack on top of each other, refining the representation layer by layer, until a final linear layer spits out a probability distribution over the entire vocabulary for "what token comes next." Softmax turns those raw scores into actual probabilities, and &lt;strong&gt;temperature&lt;/strong&gt; decides how safe or how spicy the model gets with its pick — low temperature plays it safe, high temperature gambles on something less likely (and usually more interesting, sometimes more unhinged).&lt;/p&gt;

&lt;p&gt;The video also draws a clean line between &lt;strong&gt;training&lt;/strong&gt; (the model sees known input-output pairs, calculates loss, updates weights via backpropagation) and &lt;strong&gt;inference&lt;/strong&gt; (live deployment — the model just predicts one token at a time, autoregressively, until it hits an end-of-sequence tag, with zero learning happening). Sounds obvious once you say it out loud, but it clears up a lot of confusion about what's actually happening when you're chatting with one of these things.&lt;/p&gt;

&lt;p&gt;What makes this video worth your time isn't that any of it is secret — it's that Garg keeps everything tied to code you can actually run: &lt;code&gt;AutoTokenizer&lt;/code&gt;, the OpenAI embeddings endpoint, a from-scratch PyTorch generation loop with &lt;code&gt;AutoModelForCausalLM&lt;/code&gt;. You walk away with a mental model you can go verify yourself instead of just trusting some guy on YouTube (me included).&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 2: Cool, Now How Do I Actually Build Something?
&lt;/h2&gt;

&lt;p&gt;Understanding attention mechanisms doesn't teach you how to ship a product. I learned that gap the hard way trying to wire an LLM into a side project with zero idea what I was doing. This is exactly where Dev Weekends' "Level 0 and Level 1" session comes in, and it's the most immediately useful of the three if your goal is writing software instead of passing an exam.&lt;/p&gt;

&lt;p&gt;It starts with the unglamorous stuff that actually matters: &lt;strong&gt;you pay for tokens&lt;/strong&gt;, full stop, and your bill is input tokens (your prompt) plus output tokens (the response). If you've ever gotten a surprise API bill, you already know why this matters more than the fancy theory.&lt;/p&gt;

&lt;p&gt;From there it breaks down the three roles you'll use in basically every single LLM API call:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;System message&lt;/strong&gt; — sets the model's personality and ground rules, invisible to whoever's using your app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User message&lt;/strong&gt; — whatever the human actually typed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assistant message&lt;/strong&gt; — the model's response, generated using both of the above as context.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A few engineering patterns get covered here that I think people skip more than they should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Streaming&lt;/strong&gt; (&lt;code&gt;stream=True&lt;/code&gt;) — instead of waiting for the full response, you get it chunk by chunk, which is the entire reason ChatGPT feels like it's "typing" instead of freezing and dumping a wall of text on you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured output / JSON schemas&lt;/strong&gt; — if you're plugging an LLM into a real system, you cannot have it randomly deciding to wrap its JSON in a friendly little paragraph. Define a schema up front and you kill an entire category of parsing bugs before they happen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool calling / function calling&lt;/strong&gt; — this is the mechanism that lets a model say "I don't know today's weather, but here's a function signature for a weather API, go call it and hand me the result." The model itself never executes anything — it just recognizes when it needs help and passes the ball back to your app.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the prompting side, it runs through the standard toolbox: &lt;strong&gt;zero-shot&lt;/strong&gt; (just ask), &lt;strong&gt;few-shot&lt;/strong&gt; (show it examples first), &lt;strong&gt;chain-of-thought&lt;/strong&gt; (make it reason step-by-step before answering), and &lt;strong&gt;ReAct&lt;/strong&gt; (interleaving reasoning with actual tool calls to chew through multi-step problems). I'd read about all of these separately before, but seeing them laid out as a progression — from "just ask" to "reason and act" — made a lot more sense than any individual blog post had.&lt;/p&gt;

&lt;p&gt;The part I found genuinely most useful, though, was the &lt;strong&gt;fine-tuning vs. RAG&lt;/strong&gt; breakdown. Fine-tuning means retraining chunks of the network on your own data — expensive, heavy on compute, and static, since any new information means retraining the whole thing over again. RAG (Retrieval-Augmented Generation) sidesteps all of that by keeping the model frozen and just hooking it up to an external, updatable vector database instead.&lt;/p&gt;

&lt;p&gt;The RAG pipeline breaks down into five steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Parse&lt;/strong&gt; your source documents — PDFs, databases, scraped pages via BeautifulSoup, whatever.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chunk&lt;/strong&gt; the text into fixed-size pieces (think 512 tokens) with some overlap (150 tokens) so you're not losing context at the seams.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embed and store&lt;/strong&gt; those chunks in a vector database (ChromaDB, PgVector) along with metadata like source and timestamp.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search&lt;/strong&gt; — turn the user's query into an embedding and run cosine similarity to pull the top-k most relevant chunks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inject&lt;/strong&gt; those chunks into the prompt so the model actually grounds its answer in your data instead of just guessing confidently.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And it doesn't stop at "ship it and pray" — it flags &lt;strong&gt;RAGAS&lt;/strong&gt; as a framework for actually evaluating whether your retrieved context is faithful, your answers are relevant, and you're not quietly hallucinating despite technically having a "grounded" system. That last part is easy to forget. RAG lowers your hallucination risk. It does not erase it. Learn that the easy way, not the hard way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 3: The Academic Backbone — Stanford CME295
&lt;/h2&gt;

&lt;p&gt;If the first two are "how it works" and "how you build with it," Stanford's CME295 (taught by Afshine and Shervine Amidi) is the "why it works, rigorously, and where this is all headed" course. It's a full nine-lecture sequence, and it's the one I'd point to if your goal is going from "informed enthusiast" to "person who can actually reason about model design decisions in a room full of people who'd know."&lt;/p&gt;

&lt;p&gt;The syllabus tracks a clean arc:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Transformer&lt;/strong&gt; — core attention mechanics and encoder-decoder structure, covered with academic precision instead of intuition-first analogies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transformer-Based Models &amp;amp; Tricks&lt;/strong&gt; — how BERT, GPT, and T5 diverge architecturally, different positional embedding schemes, and the tricks that make large-scale training actually converge instead of blowing up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transformers &amp;amp; LLMs&lt;/strong&gt; — the jump from small task-specific models to today's massive general-purpose ones, scaling laws, and emergent capabilities that only show up once you're big enough.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM Training&lt;/strong&gt; — pre-training objectives, dataset prep at scale, and the distributed-cluster/memory-efficiency tricks required to train something this large in the first place.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM Tuning&lt;/strong&gt; — Supervised Fine-Tuning, Parameter-Efficient Fine-Tuning (LoRA and friends), and alignment via RLHF and Direct Preference Optimization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM Reasoning&lt;/strong&gt; — how post-training unlocks reasoning, and the increasingly hot idea of scaling &lt;em&gt;test-time&lt;/em&gt; compute instead of just throwing more compute at training.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agentic LLMs&lt;/strong&gt; — designing autonomous agents: task decomposition, memory architectures, tool use, multi-agent coordination.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM Evaluation&lt;/strong&gt; — systematic benchmarking, the "LLM-as-a-judge" approach, and safety/robustness red-teaming.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recap &amp;amp; Current Trends&lt;/strong&gt; — tying it all together and pointing at where frontier research is actually headed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What this course adds that the other two structurally can't is the &lt;em&gt;why&lt;/em&gt;. Garg's video tells you self-attention solves the context problem. Stanford's course is where you'd actually get the math behind scaled dot-product attention, the reasoning behind specific positional embedding choices, and the real tradeoffs between RLHF and DPO for alignment. It's also the only one of the three treating agentic systems and formal evaluation as first-class topics instead of an afterthought bolted on at the end — which, not coincidentally, is exactly where the field's energy is right now.&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting It All Together
&lt;/h2&gt;

&lt;p&gt;Lined up side by side, these three cover roughly the same ground a CS curriculum would, just compressed into a weekend of watching instead of a semester of tuition:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Piyush Garg&lt;/th&gt;
&lt;th&gt;Dev Weekends&lt;/th&gt;
&lt;th&gt;Stanford CME295&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Best for&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Building intuition for the internals&lt;/td&gt;
&lt;td&gt;Shipping real LLM-powered software&lt;/td&gt;
&lt;td&gt;Deep theoretical and research literacy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Format&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Single video, whiteboard + code&lt;/td&gt;
&lt;td&gt;Hands-on workshop, live API/RAG demos&lt;/td&gt;
&lt;td&gt;9-lecture university course&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Core focus&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tokens → embeddings → attention → sampling&lt;/td&gt;
&lt;td&gt;API roles, streaming, JSON schemas, tool calling, RAG vs. fine-tuning&lt;/td&gt;
&lt;td&gt;Math foundations, scaling, alignment, reasoning, agents, evaluation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tools shown&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Hugging Face &lt;code&gt;transformers&lt;/code&gt;, PyTorch, OpenAI API&lt;/td&gt;
&lt;td&gt;OpenAI API, ChromaDB, LangChain, BeautifulSoup, RAGAS&lt;/td&gt;
&lt;td&gt;Academic frameworks, frontier benchmarks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Honest take: none of these alone gives you the full picture, and that's fine, because they're not trying to. &lt;strong&gt;Garg&lt;/strong&gt; hands you the mechanical model of how a token turns into a prediction. &lt;strong&gt;Dev Weekends&lt;/strong&gt; shows you what to actually do with that model once it's sitting behind an API and your credit card is on the line. &lt;strong&gt;Stanford&lt;/strong&gt; gives you the rigor to understand why the field made the choices it did, and where it's probably going next — reasoning models, agentic systems, evaluation frameworks that can actually keep pace.&lt;/p&gt;

&lt;p&gt;If you're early in this journey, that's the order I'd go: intuition, then application, then theory. Same path I took, minus the part where I procrastinated for two weeks before starting.&lt;/p&gt;

&lt;p&gt;Now go tokenize something.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's Connect
&lt;/h2&gt;

&lt;p&gt;I'm Prayush Adhikari, currently grinding through the 8th semester of computer engineering and running an IT club on the side while trying to actually understand the stuff I keep building with. If you've watched any of these three (or have a better resource I'm missing), drop it in the comments — I'm always collecting more.&lt;/p&gt;

&lt;p&gt;Which one are you starting with: the internals video, the build-something workshop, or going straight for the Stanford deep end?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://linkedin.com/in/adhikareeprayush" rel="noopener noreferrer"&gt;https://linkedin.com/in/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/adhikareeprayush" rel="noopener noreferrer"&gt;https://github.com/adhikareeprayush&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio: &lt;a href="https://prayushadhikari.com.np" rel="noopener noreferrer"&gt;https://prayushadhikari.com.np&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>llm</category>
      <category>machinelearning</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
