<?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: MANZI RURANGIRWA Elvis</title>
    <description>The latest articles on DEV Community by MANZI RURANGIRWA Elvis (@mr_elvis).</description>
    <link>https://dev.to/mr_elvis</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%2F3589867%2F74e84801-1f11-47f1-a367-4bdb5bc25c52.jpeg</url>
      <title>DEV Community: MANZI RURANGIRWA Elvis</title>
      <link>https://dev.to/mr_elvis</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mr_elvis"/>
    <language>en</language>
    <item>
      <title>Building SignalHQ: Engineering a Production-Grade Incident Management Platform from Scratch</title>
      <dc:creator>MANZI RURANGIRWA Elvis</dc:creator>
      <pubDate>Sun, 26 Jul 2026 15:59:55 +0000</pubDate>
      <link>https://dev.to/mr_elvis/building-signalhq-engineering-a-production-grade-incident-management-platform-from-scratch-2eke</link>
      <guid>https://dev.to/mr_elvis/building-signalhq-engineering-a-production-grade-incident-management-platform-from-scratch-2eke</guid>
      <description>&lt;p&gt;Most portfolio projects stop after implementing authentication and CRUD operations.&lt;/p&gt;

&lt;p&gt;Production software doesn't.&lt;/p&gt;

&lt;p&gt;Engineering teams need systems capable of handling operational failures under pressure. During an incident, dozens of engineers may collaborate simultaneously, permissions must be enforced correctly, every action must be recorded, and changes must propagate instantly across every connected client.&lt;/p&gt;

&lt;p&gt;SignalHQ was built to explore those engineering challenges.&lt;/p&gt;

&lt;p&gt;Instead of another task manager, the project focuses on modeling how modern organizations manage production incidents from detection to postmortem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Modeling the Incident Lifecycle
&lt;/h2&gt;

&lt;p&gt;One of the first architectural decisions was to treat an incident as a state machine rather than a collection of arbitrary status values.&lt;/p&gt;

&lt;p&gt;Instead of allowing any transition, every change must follow predefined business rules:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Open
&amp;nbsp;↓
Investigating
&amp;nbsp;↓
Identified
&amp;nbsp;↓
Monitoring
&amp;nbsp;↓
Resolved
&amp;nbsp;↓
Postmortem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Centralizing these rules inside a dedicated state machine eliminates duplicated logic, simplifies testing, and prevents invalid transitions from occurring anywhere in the application.&lt;/p&gt;




&lt;h2&gt;
  
  
  Authorization Beyond User&amp;nbsp;Roles
&lt;/h2&gt;

&lt;p&gt;Many applications stop at role-based permissions.&lt;/p&gt;

&lt;p&gt;SignalHQ goes one step further.&lt;/p&gt;

&lt;p&gt;Changing an incident's severity requires the appropriate role, while resolving an incident additionally requires ownership of that specific incident.&lt;/p&gt;

&lt;p&gt;This combination of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Role-based authorization&lt;/li&gt;
&lt;li&gt;Resource ownership
creates layered security that closely resembles production systems.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Separating Operational History from Security&amp;nbsp;History
&lt;/h2&gt;

&lt;p&gt;SignalHQ intentionally maintains two independent historical records.&lt;/p&gt;

&lt;h3&gt;
  
  
  Incident Timeline
&lt;/h3&gt;

&lt;p&gt;Records operational activity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Comments&lt;/li&gt;
&lt;li&gt;Status changes&lt;/li&gt;
&lt;li&gt;Severity changes&lt;/li&gt;
&lt;li&gt;File uploads&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Audit Log
&lt;/h3&gt;

&lt;p&gt;Records security-sensitive actions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Login attempts&lt;/li&gt;
&lt;li&gt;Permission changes&lt;/li&gt;
&lt;li&gt;Escalations&lt;/li&gt;
&lt;li&gt;Administrative actions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Separating these concerns keeps operational history useful for responders while providing administrators with an immutable security trail.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real-Time Collaboration
&lt;/h2&gt;

&lt;p&gt;Engineering incidents evolve rapidly.&lt;/p&gt;

&lt;p&gt;Refreshing the browser every few seconds isn't acceptable.&lt;/p&gt;

&lt;p&gt;SignalHQ uses authenticated Socket.IO connections to broadcast updates after database transactions complete successfully.&lt;/p&gt;

&lt;p&gt;Every connected engineer immediately receives:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Status changes&lt;/li&gt;
&lt;li&gt;Timeline updates&lt;/li&gt;
&lt;li&gt;New comments&lt;/li&gt;
&lt;li&gt;Attachments&lt;/li&gt;
&lt;li&gt;Severity changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The server remains the single source of truth - WebSockets never modify application state directly.&lt;/p&gt;




&lt;h2&gt;
  
  
  Search That&amp;nbsp;Scales
&lt;/h2&gt;

&lt;p&gt;Searching production incidents becomes increasingly expensive as data grows.&lt;/p&gt;

&lt;p&gt;Instead of relying on:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ILIKE '%database%'&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
SignalHQ leverages PostgreSQL's native full-text search capabilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tsvector&lt;/li&gt;
&lt;li&gt;GIN indexessq&lt;/li&gt;
&lt;li&gt;Database triggers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result is significantly faster searching while keeping indexing responsibilities inside the database rather than application code.&lt;/p&gt;




&lt;h2&gt;
  
  
  Building for Maintainability
&lt;/h2&gt;

&lt;p&gt;Throughout development, the primary objective wasn't adding features - it was reducing future complexity.&lt;/p&gt;

&lt;p&gt;The backend is organized into isolated modules with dependency injection, DTO validation, migrations, and reusable guards.&lt;/p&gt;

&lt;p&gt;This makes individual components independently testable while allowing the application to evolve without accumulating tightly coupled code.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;p&gt;Building SignalHQ reinforced several software engineering principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architecture matters more than frameworks.&lt;/li&gt;
&lt;li&gt;Authorization is more nuanced than checking user roles.&lt;/li&gt;
&lt;li&gt;State machines simplify complex workflows.&lt;/li&gt;
&lt;li&gt;Real-time systems should remain server-authoritative.&lt;/li&gt;
&lt;li&gt;Search should leverage database capabilities instead of application code.&lt;/li&gt;
&lt;li&gt;Auditability is a first-class feature in production software.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SignalHQ demonstrates that production-ready applications aren't defined by the number of features they contain, but by the quality of the engineering decisions behind those features.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://joinsignalhq.vercel.app/" rel="noopener noreferrer"&gt;Live Site&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>react</category>
      <category>nestjs</category>
      <category>postgres</category>
    </item>
    <item>
      <title>Building a Movie Platform with Next.js and TMDB API</title>
      <dc:creator>MANZI RURANGIRWA Elvis</dc:creator>
      <pubDate>Fri, 12 Jun 2026 08:34:50 +0000</pubDate>
      <link>https://dev.to/mr_elvis/building-a-movie-platform-with-nextjs-and-tmdb-api-43gh</link>
      <guid>https://dev.to/mr_elvis/building-a-movie-platform-with-nextjs-and-tmdb-api-43gh</guid>
      <description>&lt;p&gt;As part of my journey toward becoming a better full-stack developer, I wanted to build something that would help me deepen my understanding of Next.js while also creating a project that people could actually use. That's how I ended up building &lt;strong&gt;Epic Screen&lt;/strong&gt;, a movie discovery platform powered by the TMDB API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Website:&lt;/strong&gt; &lt;a href="https://epic-screen.vercel.app" rel="noopener noreferrer"&gt;https://epic-screen.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal wasn't just to display movie posters. I wanted to understand how modern web applications fetch data, handle dynamic routes, improve performance, and provide a great user experience.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Built This Project
&lt;/h2&gt;

&lt;p&gt;I learn best by building real-world applications, and movie platforms contain many concepts that are commonly used in production software:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API integration&lt;/li&gt;
&lt;li&gt;Dynamic routing&lt;/li&gt;
&lt;li&gt;Server-side rendering&lt;/li&gt;
&lt;li&gt;Loading and error states&lt;/li&gt;
&lt;li&gt;Responsive design&lt;/li&gt;
&lt;li&gt;Search functionality&lt;/li&gt;
&lt;li&gt;Theme switching&lt;/li&gt;
&lt;li&gt;Performance optimization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building this project gave me the opportunity to work with all of these concepts in one application.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;I used the following technologies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Next.js&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;React&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tailwind CSS&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TMDB API&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JavaScript&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vercel&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Getting Movie Data with TMDB API
&lt;/h2&gt;

&lt;p&gt;One of the most interesting parts of the project was integrating the TMDB API.&lt;/p&gt;

&lt;p&gt;Instead of hardcoding movie information, the application fetches real movie data directly from TMDB. This includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Popular movies&lt;/li&gt;
&lt;li&gt;Trending movies&lt;/li&gt;
&lt;li&gt;Movie descriptions&lt;/li&gt;
&lt;li&gt;Ratings&lt;/li&gt;
&lt;li&gt;Release dates&lt;/li&gt;
&lt;li&gt;Cast information&lt;/li&gt;
&lt;li&gt;Reviews&lt;/li&gt;
&lt;li&gt;Related movies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using APIs taught me how applications communicate with external services and how important it is to handle loading and error states properly.&lt;/p&gt;




&lt;h2&gt;
  
  
  Understanding Dynamic Routes
&lt;/h2&gt;

&lt;p&gt;Next.js made it easy to create pages for individual movies.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/movie/550
/movie/157336
/movie/299536
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each route represents a specific movie.&lt;/p&gt;

&lt;p&gt;This helped me understand how dynamic routes work and how data can be fetched based on URL parameters.&lt;/p&gt;




&lt;h2&gt;
  
  
  Server Components and Data Fetching
&lt;/h2&gt;

&lt;p&gt;One thing I really enjoyed while building this project was learning about how Next.js handles data fetching.&lt;/p&gt;

&lt;p&gt;Instead of fetching everything on the client side, I used server components where appropriate. This approach has several advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster page loads&lt;/li&gt;
&lt;li&gt;Better SEO&lt;/li&gt;
&lt;li&gt;Less JavaScript sent to the browser&lt;/li&gt;
&lt;li&gt;Improved performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since the server handles most of the data fetching, users receive content faster and search engines can easily index the pages.&lt;/p&gt;




&lt;h2&gt;
  
  
  Search Functionality
&lt;/h2&gt;

&lt;p&gt;No movie platform would be complete without search.&lt;/p&gt;

&lt;p&gt;I implemented search so users can quickly find their favorite movies.&lt;/p&gt;

&lt;p&gt;Building this feature taught me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to manage state in React.&lt;/li&gt;
&lt;li&gt;How to handle user input.&lt;/li&gt;
&lt;li&gt;How to send search queries to an API.&lt;/li&gt;
&lt;li&gt;How to update the UI dynamically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Small features like this significantly improve the overall user experience.&lt;/p&gt;




&lt;h2&gt;
  
  
  Responsive Design
&lt;/h2&gt;

&lt;p&gt;I wanted Epic Screen to look good on every device.&lt;/p&gt;

&lt;p&gt;Using Tailwind CSS made responsiveness much easier.&lt;/p&gt;

&lt;p&gt;The website adapts to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mobile phones&lt;/li&gt;
&lt;li&gt;Tablets&lt;/li&gt;
&lt;li&gt;Laptops&lt;/li&gt;
&lt;li&gt;Large desktop screens&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I focused on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexible layouts&lt;/li&gt;
&lt;li&gt;Responsive grids&lt;/li&gt;
&lt;li&gt;Proper spacing&lt;/li&gt;
&lt;li&gt;Consistent typography&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Theme Switching
&lt;/h2&gt;

&lt;p&gt;Another feature I enjoyed implementing was dark mode.&lt;/p&gt;

&lt;p&gt;I wanted users to have the ability to switch between light and dark themes while maintaining a clean and modern interface.&lt;/p&gt;

&lt;p&gt;This helped me understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Theme providers&lt;/li&gt;
&lt;li&gt;Context management&lt;/li&gt;
&lt;li&gt;Persisting user preferences&lt;/li&gt;
&lt;li&gt;Creating consistent color systems&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Performance Optimization
&lt;/h2&gt;

&lt;p&gt;Performance was one of my priorities while building this project.&lt;/p&gt;

&lt;p&gt;Some things I focused on included:&lt;/p&gt;

&lt;h3&gt;
  
  
  Optimized Images
&lt;/h3&gt;

&lt;p&gt;Using Next.js image optimization helps reduce loading times and improve user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Efficient Data Fetching
&lt;/h3&gt;

&lt;p&gt;Fetching only the data needed prevents unnecessary API requests.&lt;/p&gt;

&lt;h3&gt;
  
  
  Component Reusability
&lt;/h3&gt;

&lt;p&gt;Reusable components made the codebase cleaner and easier to maintain.&lt;/p&gt;

&lt;h3&gt;
  
  
  Responsive Layouts
&lt;/h3&gt;

&lt;p&gt;The application remains fast and usable across different screen sizes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Challenges I Faced
&lt;/h2&gt;

&lt;p&gt;Like any real-world project, I encountered several challenges along the way.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hydration Issues
&lt;/h3&gt;

&lt;p&gt;I experienced hydration mismatch errors while working with theme switching.&lt;/p&gt;

&lt;p&gt;This taught me more about the differences between server-rendered and client-rendered components.&lt;/p&gt;




&lt;h3&gt;
  
  
  API Errors
&lt;/h3&gt;

&lt;p&gt;Occasionally, requests would fail or data would be missing.&lt;/p&gt;

&lt;p&gt;I learned the importance of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Error handling&lt;/li&gt;
&lt;li&gt;Fallback states&lt;/li&gt;
&lt;li&gt;Defensive programming&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Component Structure
&lt;/h3&gt;

&lt;p&gt;As the application grew, maintaining clean code became increasingly important.&lt;/p&gt;

&lt;p&gt;I learned how valuable it is to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Separate concerns.&lt;/li&gt;
&lt;li&gt;Create reusable components.&lt;/li&gt;
&lt;li&gt;Keep files organized.&lt;/li&gt;
&lt;li&gt;Avoid unnecessary complexity.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;p&gt;This project taught me much more than simply displaying movie information.&lt;/p&gt;

&lt;p&gt;It strengthened my understanding of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;API integration&lt;/li&gt;
&lt;li&gt;Dynamic routing&lt;/li&gt;
&lt;li&gt;Server components&lt;/li&gt;
&lt;li&gt;Responsive design&lt;/li&gt;
&lt;li&gt;Performance optimization&lt;/li&gt;
&lt;li&gt;State management&lt;/li&gt;
&lt;li&gt;Reusable component architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most importantly, it reinforced something I strongly believe:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The best way to learn software engineering is by building projects.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Tutorials are useful, but real understanding comes from solving problems and debugging issues yourself.&lt;/p&gt;




&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;p&gt;There are still several features I would like to add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;User profiles&lt;/li&gt;
&lt;li&gt;Watchlists&lt;/li&gt;
&lt;li&gt;Favorite movies&lt;/li&gt;
&lt;li&gt;Recommendations powered by AI&lt;/li&gt;
&lt;li&gt;Advanced filtering&lt;/li&gt;
&lt;li&gt;Infinite scrolling&lt;/li&gt;
&lt;li&gt;Ratings and comments&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Epic Screen was more than just another portfolio project.&lt;/p&gt;

&lt;p&gt;It gave me hands-on experience with concepts that are used in modern web applications and helped me become more comfortable with Next.js and API-driven development.&lt;/p&gt;

&lt;p&gt;Every project I build teaches me something new, and Epic Screen was no exception.&lt;/p&gt;

&lt;p&gt;I'm excited to continue improving it and applying these lessons to even bigger projects in the future.&lt;/p&gt;




&lt;h3&gt;
  
  
  Explore the Project
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://epic-screen.vercel.app" rel="noopener noreferrer"&gt;https://epic-screen.vercel.app&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Thanks for reading! Feel free to connect with me or check out some of my other projects as I continue learning and building.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Author: Elvis Manzi Rurangirwa&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Building a Movie Platform with Next.js and TMDB API</title>
      <dc:creator>MANZI RURANGIRWA Elvis</dc:creator>
      <pubDate>Fri, 12 Jun 2026 08:34:50 +0000</pubDate>
      <link>https://dev.to/mr_elvis/building-a-movie-platform-with-nextjs-and-tmdb-api-51ab</link>
      <guid>https://dev.to/mr_elvis/building-a-movie-platform-with-nextjs-and-tmdb-api-51ab</guid>
      <description>&lt;p&gt;As part of my journey toward becoming a better full-stack developer, I wanted to build something that would help me deepen my understanding of Next.js while also creating a project that people could actually use. That's how I ended up building &lt;strong&gt;Epic Screen&lt;/strong&gt;, a movie discovery platform powered by the TMDB API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Website:&lt;/strong&gt; &lt;a href="https://epic-screen.vercel.app" rel="noopener noreferrer"&gt;https://epic-screen.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal wasn't just to display movie posters. I wanted to understand how modern web applications fetch data, handle dynamic routes, improve performance, and provide a great user experience.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Built This Project
&lt;/h2&gt;

&lt;p&gt;I learn best by building real-world applications, and movie platforms contain many concepts that are commonly used in production software:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API integration&lt;/li&gt;
&lt;li&gt;Dynamic routing&lt;/li&gt;
&lt;li&gt;Server-side rendering&lt;/li&gt;
&lt;li&gt;Loading and error states&lt;/li&gt;
&lt;li&gt;Responsive design&lt;/li&gt;
&lt;li&gt;Search functionality&lt;/li&gt;
&lt;li&gt;Theme switching&lt;/li&gt;
&lt;li&gt;Performance optimization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building this project gave me the opportunity to work with all of these concepts in one application.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;I used the following technologies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Next.js&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;React&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tailwind CSS&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TMDB API&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JavaScript&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vercel&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Getting Movie Data with TMDB API
&lt;/h2&gt;

&lt;p&gt;One of the most interesting parts of the project was integrating the TMDB API.&lt;/p&gt;

&lt;p&gt;Instead of hardcoding movie information, the application fetches real movie data directly from TMDB. This includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Popular movies&lt;/li&gt;
&lt;li&gt;Trending movies&lt;/li&gt;
&lt;li&gt;Movie descriptions&lt;/li&gt;
&lt;li&gt;Ratings&lt;/li&gt;
&lt;li&gt;Release dates&lt;/li&gt;
&lt;li&gt;Cast information&lt;/li&gt;
&lt;li&gt;Reviews&lt;/li&gt;
&lt;li&gt;Related movies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using APIs taught me how applications communicate with external services and how important it is to handle loading and error states properly.&lt;/p&gt;




&lt;h2&gt;
  
  
  Understanding Dynamic Routes
&lt;/h2&gt;

&lt;p&gt;Next.js made it easy to create pages for individual movies.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/movie/550
/movie/157336
/movie/299536
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each route represents a specific movie.&lt;/p&gt;

&lt;p&gt;This helped me understand how dynamic routes work and how data can be fetched based on URL parameters.&lt;/p&gt;




&lt;h2&gt;
  
  
  Server Components and Data Fetching
&lt;/h2&gt;

&lt;p&gt;One thing I really enjoyed while building this project was learning about how Next.js handles data fetching.&lt;/p&gt;

&lt;p&gt;Instead of fetching everything on the client side, I used server components where appropriate. This approach has several advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster page loads&lt;/li&gt;
&lt;li&gt;Better SEO&lt;/li&gt;
&lt;li&gt;Less JavaScript sent to the browser&lt;/li&gt;
&lt;li&gt;Improved performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since the server handles most of the data fetching, users receive content faster and search engines can easily index the pages.&lt;/p&gt;




&lt;h2&gt;
  
  
  Search Functionality
&lt;/h2&gt;

&lt;p&gt;No movie platform would be complete without search.&lt;/p&gt;

&lt;p&gt;I implemented search so users can quickly find their favorite movies.&lt;/p&gt;

&lt;p&gt;Building this feature taught me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to manage state in React.&lt;/li&gt;
&lt;li&gt;How to handle user input.&lt;/li&gt;
&lt;li&gt;How to send search queries to an API.&lt;/li&gt;
&lt;li&gt;How to update the UI dynamically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Small features like this significantly improve the overall user experience.&lt;/p&gt;




&lt;h2&gt;
  
  
  Responsive Design
&lt;/h2&gt;

&lt;p&gt;I wanted Epic Screen to look good on every device.&lt;/p&gt;

&lt;p&gt;Using Tailwind CSS made responsiveness much easier.&lt;/p&gt;

&lt;p&gt;The website adapts to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mobile phones&lt;/li&gt;
&lt;li&gt;Tablets&lt;/li&gt;
&lt;li&gt;Laptops&lt;/li&gt;
&lt;li&gt;Large desktop screens&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I focused on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexible layouts&lt;/li&gt;
&lt;li&gt;Responsive grids&lt;/li&gt;
&lt;li&gt;Proper spacing&lt;/li&gt;
&lt;li&gt;Consistent typography&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Theme Switching
&lt;/h2&gt;

&lt;p&gt;Another feature I enjoyed implementing was dark mode.&lt;/p&gt;

&lt;p&gt;I wanted users to have the ability to switch between light and dark themes while maintaining a clean and modern interface.&lt;/p&gt;

&lt;p&gt;This helped me understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Theme providers&lt;/li&gt;
&lt;li&gt;Context management&lt;/li&gt;
&lt;li&gt;Persisting user preferences&lt;/li&gt;
&lt;li&gt;Creating consistent color systems&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Performance Optimization
&lt;/h2&gt;

&lt;p&gt;Performance was one of my priorities while building this project.&lt;/p&gt;

&lt;p&gt;Some things I focused on included:&lt;/p&gt;

&lt;h3&gt;
  
  
  Optimized Images
&lt;/h3&gt;

&lt;p&gt;Using Next.js image optimization helps reduce loading times and improve user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Efficient Data Fetching
&lt;/h3&gt;

&lt;p&gt;Fetching only the data needed prevents unnecessary API requests.&lt;/p&gt;

&lt;h3&gt;
  
  
  Component Reusability
&lt;/h3&gt;

&lt;p&gt;Reusable components made the codebase cleaner and easier to maintain.&lt;/p&gt;

&lt;h3&gt;
  
  
  Responsive Layouts
&lt;/h3&gt;

&lt;p&gt;The application remains fast and usable across different screen sizes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Challenges I Faced
&lt;/h2&gt;

&lt;p&gt;Like any real-world project, I encountered several challenges along the way.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hydration Issues
&lt;/h3&gt;

&lt;p&gt;I experienced hydration mismatch errors while working with theme switching.&lt;/p&gt;

&lt;p&gt;This taught me more about the differences between server-rendered and client-rendered components.&lt;/p&gt;




&lt;h3&gt;
  
  
  API Errors
&lt;/h3&gt;

&lt;p&gt;Occasionally, requests would fail or data would be missing.&lt;/p&gt;

&lt;p&gt;I learned the importance of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Error handling&lt;/li&gt;
&lt;li&gt;Fallback states&lt;/li&gt;
&lt;li&gt;Defensive programming&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Component Structure
&lt;/h3&gt;

&lt;p&gt;As the application grew, maintaining clean code became increasingly important.&lt;/p&gt;

&lt;p&gt;I learned how valuable it is to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Separate concerns.&lt;/li&gt;
&lt;li&gt;Create reusable components.&lt;/li&gt;
&lt;li&gt;Keep files organized.&lt;/li&gt;
&lt;li&gt;Avoid unnecessary complexity.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;p&gt;This project taught me much more than simply displaying movie information.&lt;/p&gt;

&lt;p&gt;It strengthened my understanding of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;API integration&lt;/li&gt;
&lt;li&gt;Dynamic routing&lt;/li&gt;
&lt;li&gt;Server components&lt;/li&gt;
&lt;li&gt;Responsive design&lt;/li&gt;
&lt;li&gt;Performance optimization&lt;/li&gt;
&lt;li&gt;State management&lt;/li&gt;
&lt;li&gt;Reusable component architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most importantly, it reinforced something I strongly believe:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The best way to learn software engineering is by building projects.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Tutorials are useful, but real understanding comes from solving problems and debugging issues yourself.&lt;/p&gt;




&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;p&gt;There are still several features I would like to add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;User profiles&lt;/li&gt;
&lt;li&gt;Watchlists&lt;/li&gt;
&lt;li&gt;Favorite movies&lt;/li&gt;
&lt;li&gt;Recommendations powered by AI&lt;/li&gt;
&lt;li&gt;Advanced filtering&lt;/li&gt;
&lt;li&gt;Infinite scrolling&lt;/li&gt;
&lt;li&gt;Ratings and comments&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Epic Screen was more than just another portfolio project.&lt;/p&gt;

&lt;p&gt;It gave me hands-on experience with concepts that are used in modern web applications and helped me become more comfortable with Next.js and API-driven development.&lt;/p&gt;

&lt;p&gt;Every project I build teaches me something new, and Epic Screen was no exception.&lt;/p&gt;

&lt;p&gt;I'm excited to continue improving it and applying these lessons to even bigger projects in the future.&lt;/p&gt;




&lt;h3&gt;
  
  
  Explore the Project
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://epic-screen.vercel.app" rel="noopener noreferrer"&gt;https://epic-screen.vercel.app&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Thanks for reading! Feel free to connect with me or check out some of my other projects as I continue learning and building.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Author: Elvis Manzi Rurangirwa&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>typescript</category>
    </item>
    <item>
      <title>How to Escape Tutorial Hell (For Real This Time)</title>
      <dc:creator>MANZI RURANGIRWA Elvis</dc:creator>
      <pubDate>Thu, 26 Feb 2026 09:49:51 +0000</pubDate>
      <link>https://dev.to/mr_elvis/how-to-escape-tutorial-hell-for-real-this-time-316</link>
      <guid>https://dev.to/mr_elvis/how-to-escape-tutorial-hell-for-real-this-time-316</guid>
      <description>&lt;p&gt;Let’s assume something.&lt;br&gt;
If you’re reading this, you already know you’re stuck.&lt;br&gt;
You don’t need another dramatic explanation of tutorial hell.&lt;br&gt;
You’ve lived it.&lt;/p&gt;

&lt;p&gt;You’ve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finished courses&lt;/li&gt;
&lt;li&gt;Built projects that only work with the instructor&lt;/li&gt;
&lt;li&gt;Started over three times&lt;/li&gt;
&lt;li&gt;Questioned your intelligence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So this isn’t going to be motivational fluff.&lt;br&gt;
This is the plan I wish someone gave me earlier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Stop Quitting Tutorials(Finish One Properly)
&lt;/h2&gt;

&lt;p&gt;Here’s the mistake most people make:&lt;br&gt;
They jump from tutorial to tutorial.&lt;/p&gt;

&lt;p&gt;React → Node → TypeScript → Next.js → “Maybe I should learn Python.”&lt;/p&gt;

&lt;p&gt;Stop.&lt;br&gt;
Pick one.&lt;br&gt;
Finish it.&lt;br&gt;
No skipping.&lt;br&gt;
No hopping.&lt;/p&gt;

&lt;p&gt;But here’s the twist:&lt;br&gt;
You’re not finishing it to memorize it.&lt;br&gt;
You’re finishing it to extract the patterns.&lt;/p&gt;

&lt;p&gt;Ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why did they structure it like this?&lt;/li&gt;
&lt;li&gt;Why this folder layout?&lt;/li&gt;
&lt;li&gt;Why this logic order?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You’re studying thinking, not syntax.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Rebuild It Without Looking
&lt;/h2&gt;

&lt;p&gt;This is where 90% of people panic.&lt;br&gt;
After finishing a tutorial, close it.&lt;br&gt;
Now rebuild the same project.&lt;br&gt;
No copying.&lt;br&gt;
No split-screen.&lt;br&gt;
Just you and your memory.&lt;/p&gt;

&lt;p&gt;It will feel awful.&lt;br&gt;
Good.&lt;br&gt;
That discomfort is where real learning starts.&lt;/p&gt;

&lt;p&gt;When you get stuck:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Think first&lt;/li&gt;
&lt;li&gt;Try something&lt;/li&gt;
&lt;li&gt;Then search specifically&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not:&lt;br&gt;
“How to build a full authentication system”&lt;/p&gt;

&lt;p&gt;But:&lt;br&gt;
“How to validate email input JavaScript”&lt;/p&gt;

&lt;p&gt;Specific search = active learning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Build Something Slightly Different
&lt;/h2&gt;

&lt;p&gt;Now change one thing.&lt;/p&gt;

&lt;p&gt;If the tutorial built:&lt;br&gt;
A to-do app&lt;/p&gt;

&lt;p&gt;You build:&lt;br&gt;
A habit tracker&lt;/p&gt;

&lt;p&gt;If it built:&lt;br&gt;
A blog&lt;/p&gt;

&lt;p&gt;You build:&lt;br&gt;
A notes app&lt;/p&gt;

&lt;p&gt;Same concepts.&lt;br&gt;
Different decisions.&lt;/p&gt;

&lt;p&gt;Now your brain can’t rely on memory.&lt;br&gt;
It has to think.&lt;/p&gt;

&lt;p&gt;And &lt;em&gt;&lt;strong&gt;thinking builds skill&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Make Peace With Ugly Code
&lt;/h2&gt;

&lt;p&gt;This part matters.&lt;/p&gt;

&lt;p&gt;Your first independent project will look messy.&lt;br&gt;
That’s normal.&lt;/p&gt;

&lt;p&gt;Beginners often return to tutorials because their own code doesn’t look “clean.”&lt;/p&gt;

&lt;p&gt;Clean code comes from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Experience&lt;/li&gt;
&lt;li&gt;Refactoring&lt;/li&gt;
&lt;li&gt;Repetition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not from watching someone else type beautifully structured code.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Messy code you understand is better than clean code you copied.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Reduce Tutorial Time to 20%
&lt;/h2&gt;

&lt;p&gt;Here’s a rule that changed everything for me:&lt;/p&gt;

&lt;p&gt;20% learning.&lt;br&gt;
80% building.&lt;/p&gt;

&lt;p&gt;Not the other way around.&lt;/p&gt;

&lt;p&gt;Tutorials are reference.&lt;br&gt;
Building is training.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You don’t get stronger watching gym videos.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Track What You Build, Not What You Watch
&lt;/h2&gt;

&lt;p&gt;This is subtle but powerful.&lt;/p&gt;

&lt;p&gt;Instead of saying:&lt;br&gt;
“I finished 3 courses this month.”&lt;/p&gt;

&lt;p&gt;Say:&lt;br&gt;
“I built 2 working projects this month.”&lt;/p&gt;

&lt;p&gt;Your identity shifts.&lt;/p&gt;

&lt;p&gt;From:&lt;br&gt;
Consumer.&lt;br&gt;
To:&lt;br&gt;
Builder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Expect Slower Progress (But Faster Growth)
&lt;/h2&gt;

&lt;p&gt;Here’s the honest part:&lt;/p&gt;

&lt;p&gt;You will feel slower.&lt;br&gt;
You will doubt yourself.&lt;/p&gt;

&lt;p&gt;You will think:&lt;br&gt;
“I was progressing faster with tutorials.”&lt;/p&gt;

&lt;p&gt;You weren’t!&lt;br&gt;
You were progressing in comfort.&lt;br&gt;
Now you’re progressing in competence.&lt;/p&gt;

&lt;p&gt;And competence feels slower, but it lasts.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually Changes When You Escape
&lt;/h2&gt;

&lt;p&gt;You start:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Opening blank files without fear&lt;/li&gt;
&lt;li&gt;Googling confidently&lt;/li&gt;
&lt;li&gt;Debugging without panic&lt;/li&gt;
&lt;li&gt;Thinking in systems, not steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don’t feel “ready.”&lt;br&gt;
You just feel capable.&lt;/p&gt;

&lt;p&gt;That’s different.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Truth
&lt;/h2&gt;

&lt;p&gt;There is no dramatic escape from tutorial hell.&lt;/p&gt;

&lt;p&gt;No single moment.&lt;/p&gt;

&lt;p&gt;It’s a quiet shift:&lt;/p&gt;

&lt;p&gt;From watching to building.&lt;br&gt;
From copying to deciding.&lt;br&gt;
From comfort to discomfort.&lt;/p&gt;

&lt;p&gt;Over and over.&lt;br&gt;
Until one day, you realize…&lt;br&gt;
You haven’t opened a full tutorial in weeks.&lt;br&gt;
And you didn’t even notice.&lt;/p&gt;

&lt;p&gt;If you’re serious about escaping:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Close one tutorial today.&lt;/li&gt;
&lt;li&gt;Open a blank file. &lt;/li&gt;
&lt;li&gt;And start imperfectly.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s the way out.&lt;/p&gt;

</description>
      <category>learning</category>
      <category>programming</category>
      <category>coding</category>
      <category>challenge</category>
    </item>
    <item>
      <title>Tutorial Hell Is a Billion-Dollar Problem</title>
      <dc:creator>MANZI RURANGIRWA Elvis</dc:creator>
      <pubDate>Mon, 23 Feb 2026 17:10:53 +0000</pubDate>
      <link>https://dev.to/mr_elvis/tutorial-hell-is-a-billion-dollar-problem-1n21</link>
      <guid>https://dev.to/mr_elvis/tutorial-hell-is-a-billion-dollar-problem-1n21</guid>
      <description>&lt;p&gt;Let me say something that might make people uncomfortable:&lt;/p&gt;

&lt;p&gt;Tutorial hell is not an accident.&lt;br&gt;
It’s a system.&lt;br&gt;
And it’s making a lot of money.&lt;/p&gt;

&lt;h2&gt;
  
  
  I Thought I Was Learning
&lt;/h2&gt;

&lt;p&gt;I remember the feeling.&lt;/p&gt;

&lt;p&gt;New course.&lt;br&gt;
New playlist.&lt;br&gt;
New roadmap.&lt;/p&gt;

&lt;p&gt;“This time,” I told myself, “I’m going to master it.”&lt;/p&gt;

&lt;p&gt;The instructor was clear.&lt;br&gt;
The project worked.&lt;br&gt;
The code ran.&lt;/p&gt;

&lt;p&gt;I felt productive, Intelligent, On track.&lt;/p&gt;

&lt;p&gt;Then I closed the video.&lt;/p&gt;

&lt;p&gt;Opened a blank file.&lt;/p&gt;

&lt;p&gt;And my brain went completely silent.&lt;/p&gt;

&lt;p&gt;No ideas.&lt;br&gt;
No structure.&lt;br&gt;
No confidence.&lt;/p&gt;

&lt;p&gt;Just a blinking cursor.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Addiction Nobody Talks About
&lt;/h2&gt;

&lt;p&gt;Tutorials feel like progress.&lt;/p&gt;

&lt;p&gt;They give you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Direction&lt;/li&gt;
&lt;li&gt;Momentum&lt;/li&gt;
&lt;li&gt;Clarity&lt;/li&gt;
&lt;li&gt;Small wins&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But here’s the uncomfortable truth:&lt;/p&gt;

&lt;p&gt;You’re not solving problems.&lt;/p&gt;

&lt;p&gt;You’re watching someone else solve them.&lt;/p&gt;

&lt;p&gt;Your brain isn’t building decision-making muscle.&lt;br&gt;
It’s building recognition.&lt;/p&gt;

&lt;p&gt;And recognition feels like understanding, until you’re alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why It’s a Billion-Dollar Problem
&lt;/h2&gt;

&lt;p&gt;Online learning platforms thrive on one thing: "&lt;strong&gt;&lt;em&gt;Retention&lt;/em&gt;&lt;/strong&gt;".&lt;/p&gt;

&lt;p&gt;Not mastery.&lt;br&gt;
Not independence.&lt;br&gt;
Retention.&lt;/p&gt;

&lt;p&gt;If you finish a course and immediately feel capable of building your own projects without coming back…&lt;/p&gt;

&lt;p&gt;You don’t need another course.&lt;/p&gt;

&lt;p&gt;But if you finish and feel like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I think I get it… but maybe I should watch one more tutorial.”&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;You subscribe.&lt;br&gt;
You enroll.&lt;br&gt;
You keep consuming.&lt;/p&gt;

&lt;p&gt;Nobody is evil here.&lt;br&gt;
But the system rewards keeping you learning, not releasing you.&lt;/p&gt;

&lt;p&gt;And that difference changes everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Quiet Damage
&lt;/h2&gt;

&lt;p&gt;Tutorial hell doesn’t just waste time.&lt;/p&gt;

&lt;p&gt;It damages confidence.&lt;/p&gt;

&lt;p&gt;You start to think:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Maybe I’m just slow.”&lt;/li&gt;
&lt;li&gt;“Maybe I’m not smart enough.”&lt;/li&gt;
&lt;li&gt;“Other people are getting this faster.”&lt;/li&gt;
&lt;li&gt;“Why can’t I build anything alone?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don’t realize the problem isn’t you.&lt;/p&gt;

&lt;p&gt;It’s that you’ve trained yourself to follow, not to decide.&lt;/p&gt;

&lt;p&gt;And programming is mostly decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Moment It Hit Me
&lt;/h2&gt;

&lt;p&gt;The shift for me didn’t happen during a tutorial.&lt;/p&gt;

&lt;p&gt;It happened during frustration.&lt;/p&gt;

&lt;p&gt;I tried building something small.&lt;br&gt;
It broke.&lt;br&gt;
I had no guide.&lt;br&gt;
No step-by-step.&lt;br&gt;
No instructor voice telling me what to type next.&lt;/p&gt;

&lt;p&gt;It was uncomfortable.&lt;br&gt;
Messy.&lt;br&gt;
Slow.&lt;/p&gt;

&lt;p&gt;And weirdly… that’s when I learned the most.&lt;/p&gt;

&lt;p&gt;Because I had to think.&lt;/p&gt;

&lt;p&gt;Not copy.&lt;br&gt;
Not follow.&lt;br&gt;
Not predict what line came next.&lt;/p&gt;

&lt;p&gt;Think.&lt;/p&gt;

&lt;p&gt;And thinking is exhausting.&lt;/p&gt;

&lt;p&gt;Which is why tutorials feel easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Cycle Is So Hard to Escape
&lt;/h2&gt;

&lt;p&gt;Tutorial hell is comfortable.&lt;br&gt;
Building alone is uncomfortable.&lt;br&gt;
Humans avoid discomfort.&lt;/p&gt;

&lt;p&gt;So when your project gets hard, you do what feels productive:&lt;/p&gt;

&lt;p&gt;You open YouTube.&lt;br&gt;
You search:&lt;br&gt;
“How to build X in React.”&lt;/p&gt;

&lt;p&gt;And suddenly everything feels structured again.&lt;/p&gt;

&lt;p&gt;But structure borrowed is not structure built.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Brutal Truth
&lt;/h2&gt;

&lt;p&gt;You don’t escape tutorial hell by watching a tutorial about escaping tutorial hell.&lt;/p&gt;

&lt;p&gt;You escape it by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Closing the video&lt;/li&gt;
&lt;li&gt;Building something slightly wrong&lt;/li&gt;
&lt;li&gt;Getting stuck&lt;/li&gt;
&lt;li&gt;Googling intentionally&lt;/li&gt;
&lt;li&gt;Fixing it&lt;/li&gt;
&lt;li&gt;Repeating&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It feels slower.&lt;br&gt;
It feels uglier.&lt;br&gt;
It feels less impressive.&lt;/p&gt;

&lt;p&gt;But it builds something tutorials don’t: "&lt;strong&gt;&lt;em&gt;Ownership&lt;/em&gt;&lt;/strong&gt;".&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Cost
&lt;/h2&gt;

&lt;p&gt;The cost of tutorial hell isn’t money. &lt;strong&gt;It’s &lt;em&gt;years&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Years of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Almost being ready&lt;/li&gt;
&lt;li&gt;Almost feeling confident&lt;/li&gt;
&lt;li&gt;Almost building something real&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don’t need another roadmap!&lt;/p&gt;

&lt;p&gt;You need &lt;em&gt;&lt;strong&gt;discomfort&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Not overwhelming chaos.&lt;br&gt;
Just enough friction to force thinking.&lt;/p&gt;

&lt;h2&gt;
  
  
  This Isn’t Anti-Tutorial
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Tutorials are tools&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;But tools are dangerous when they become crutches.&lt;/p&gt;

&lt;p&gt;Use them to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand concepts&lt;/li&gt;
&lt;li&gt;See patterns&lt;/li&gt;
&lt;li&gt;Learn structure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then leave.&lt;br&gt;
Don’t live there.&lt;/p&gt;

&lt;h2&gt;
  
  
  If This Feels Personal…
&lt;/h2&gt;

&lt;p&gt;Good.&lt;/p&gt;

&lt;p&gt;It felt personal when I realized it too.&lt;/p&gt;

&lt;p&gt;If you’ve ever:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Built something perfectly with a video&lt;/li&gt;
&lt;li&gt;Failed to rebuild it alone&lt;/li&gt;
&lt;li&gt;Questioned your intelligence&lt;/li&gt;
&lt;li&gt;Bought “just one more course”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You’re not broken.&lt;/p&gt;

&lt;p&gt;You’re just &lt;em&gt;stuck&lt;/em&gt; in a system that rewards watching more than building.&lt;/p&gt;

&lt;p&gt;And the only way out isn’t dramatic.&lt;/p&gt;

&lt;p&gt;It’s small.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Build one imperfect thing without guidance.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then another, then another.&lt;/p&gt;

&lt;p&gt;And eventually, you’ll look back and realize:&lt;/p&gt;

&lt;p&gt;You don’t need someone telling you what to type anymore.&lt;/p&gt;

&lt;p&gt;Tutorial hell isn’t about laziness.&lt;br&gt;
It’s about comfort.&lt;br&gt;
And comfort is expensive.&lt;/p&gt;

&lt;p&gt;If you want to actually grow,&lt;br&gt;
you’ll have to choose discomfort on purpose.&lt;/p&gt;

&lt;p&gt;Not forever.&lt;/p&gt;

&lt;p&gt;Just long enough to start thinking for yourself.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>discuss</category>
      <category>learning</category>
    </item>
    <item>
      <title>Why Discipline Beats Passion in Programming</title>
      <dc:creator>MANZI RURANGIRWA Elvis</dc:creator>
      <pubDate>Mon, 23 Feb 2026 16:08:57 +0000</pubDate>
      <link>https://dev.to/mr_elvis/why-discipline-beats-passion-in-programming-1f2h</link>
      <guid>https://dev.to/mr_elvis/why-discipline-beats-passion-in-programming-1f2h</guid>
      <description>&lt;p&gt;Let’s be honest.&lt;/p&gt;

&lt;p&gt;Passion is amazing…&lt;br&gt;
for about three days.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day one:&lt;/strong&gt;&lt;br&gt;
You’re watching tutorials at 2AM.&lt;br&gt;
You’re telling everyone you’re “learning to code.”&lt;br&gt;
You feel unstoppable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day seven:&lt;/strong&gt;&lt;br&gt;
You open your laptop.&lt;br&gt;
You stare at the screen.&lt;br&gt;
You suddenly remember you also wanted to learn guitar.&lt;/p&gt;

&lt;p&gt;Welcome to reality.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem With Passion
&lt;/h2&gt;

&lt;p&gt;Passion feels powerful because it’s emotional.&lt;/p&gt;

&lt;p&gt;It’s that rush when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You finally understand something.&lt;/li&gt;
&lt;li&gt;Your code runs without errors.&lt;/li&gt;
&lt;li&gt;You imagine yourself building cool apps.
But here’s the part nobody says loudly enough:&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Passion is inconsistent.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It shows up when things are exciting.&lt;br&gt;
It disappears when things get boring.&lt;/p&gt;

&lt;p&gt;And programming gets boring.&lt;/p&gt;

&lt;p&gt;Not because it’s bad.&lt;br&gt;
But because growth includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Debugging for 40 minutes&lt;/li&gt;
&lt;li&gt;Reading documentation&lt;/li&gt;
&lt;li&gt;Refactoring code that “worked fine”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Passion doesn’t love those moments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Discipline Doesn’t Care How You Feel
&lt;/h2&gt;

&lt;p&gt;Discipline is different.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;“You said you’d code today. So code.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Even when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You’re tired&lt;/li&gt;
&lt;li&gt;You’re confused&lt;/li&gt;
&lt;li&gt;You’d rather scroll social media&lt;/li&gt;
&lt;li&gt;Nothing is clicking
Discipline shows up quietly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No fireworks.&lt;br&gt;
No dramatic music.&lt;br&gt;
Just &lt;strong&gt;consistency.&lt;/strong&gt;&lt;br&gt;
And consistency wins.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lie About “Loving What You Do”
&lt;/h2&gt;

&lt;p&gt;We’re told:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“If you love it, you’ll never work a day in your life.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That sounds nice.&lt;/p&gt;

&lt;p&gt;But even if you love programming, there will be days when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You doubt yourself&lt;/li&gt;
&lt;li&gt;You feel behind&lt;/li&gt;
&lt;li&gt;You don’t want to look at another error message&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Love doesn’t eliminate difficulty.&lt;br&gt;
It just makes it meaningful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Discipline&lt;/strong&gt; is what carries you through the difficult parts.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Difference Between Beginners and Pros
&lt;/h2&gt;

&lt;p&gt;It’s not intelligence.&lt;br&gt;
It’s not talent.&lt;br&gt;
It’s not some secret brain upgrade.&lt;/p&gt;

&lt;p&gt;It’s this:&lt;/p&gt;

&lt;p&gt;Beginners code when they feel motivated.&lt;br&gt;
Professionals code when it’s scheduled.&lt;/p&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;The person who codes 30 minutes every day for a year&lt;br&gt;
will outperform the person who codes 6 hours once a week when inspired.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Quiet effort beats emotional bursts.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Every time!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Days That Actually Matter
&lt;/h2&gt;

&lt;p&gt;The days that change you aren’t the exciting ones.&lt;/p&gt;

&lt;p&gt;They’re the ones where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You didn’t want to start… but you did.&lt;/li&gt;
&lt;li&gt;You didn’t understand… but you tried anyway.&lt;/li&gt;
&lt;li&gt;You felt slow… but you didn’t quit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those days stack.&lt;/p&gt;

&lt;p&gt;And stacking days builds confidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Shift That Helped Me
&lt;/h2&gt;

&lt;p&gt;I stopped asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Do I feel like coding today?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And started asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What’s the smallest thing I can complete?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not a full project.&lt;br&gt;
Not a massive feature.&lt;/p&gt;

&lt;p&gt;Just one small win.&lt;/p&gt;

&lt;p&gt;Momentum doesn’t come from passion.&lt;br&gt;
It comes from movement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passion Starts You. Discipline Finishes You.
&lt;/h2&gt;

&lt;p&gt;Passion is the spark.&lt;br&gt;
Discipline is the engine.&lt;/p&gt;

&lt;p&gt;You need both.&lt;br&gt;
But only one works when things get hard.&lt;/p&gt;

&lt;p&gt;And programming gets hard.&lt;/p&gt;

&lt;p&gt;That’s not a warning.&lt;br&gt;
That’s a promise.&lt;/p&gt;

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

&lt;p&gt;If you’re waiting to “&lt;em&gt;feel ready&lt;/em&gt;” or “&lt;em&gt;feel motivated&lt;/em&gt;”,&lt;br&gt;
you’ll be waiting a long time.&lt;/p&gt;

&lt;p&gt;But if you build the habit of showing up anyway?&lt;/p&gt;

&lt;p&gt;You won’t need motivation.&lt;br&gt;
You’ll have momentum.&lt;/p&gt;

&lt;p&gt;And momentum is way more powerful.&lt;br&gt;
If you’re learning to code right now,&lt;br&gt;
be honest:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Are you relying on passion… or building discipline?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>coding</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Why You Forget Code You Learned Last Week</title>
      <dc:creator>MANZI RURANGIRWA Elvis</dc:creator>
      <pubDate>Wed, 21 Jan 2026 03:14:39 +0000</pubDate>
      <link>https://dev.to/mr_elvis/why-you-forget-code-you-learned-last-week-16ga</link>
      <guid>https://dev.to/mr_elvis/why-you-forget-code-you-learned-last-week-16ga</guid>
      <description>&lt;p&gt;Let me guess.&lt;/p&gt;

&lt;p&gt;Last week, you finally understood something.&lt;br&gt;
It clicked.&lt;br&gt;
You felt smart. Dangerous, even.&lt;/p&gt;

&lt;p&gt;Then this week… you opened your editor and thought:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Wait. Why does none of this look familiar?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Congratulations. You’re not broken.&lt;br&gt;
You’re officially learning to code.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lie We’re All Told
&lt;/h2&gt;

&lt;p&gt;Somewhere along the way, we’re made to believe that learning to code works like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Learn something → remember it forever → move on.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That might work for memorizing song lyrics.&lt;br&gt;
It does not work for programming.&lt;/p&gt;

&lt;p&gt;If forgetting code was a sign you’re bad at it, there would be approximately zero developers left on Earth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your Brain Is Not a USB Drive
&lt;/h2&gt;

&lt;p&gt;This was a hard pill for me to swallow.&lt;/p&gt;

&lt;p&gt;I used to think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“If I forget this, it means I didn’t really learn it.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No. It means your brain is doing what brains do.&lt;/p&gt;

&lt;p&gt;Code isn’t facts.&lt;br&gt;
It’s &lt;strong&gt;patterns&lt;/strong&gt;, &lt;strong&gt;logic&lt;/strong&gt;, and &lt;strong&gt;decisions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you don’t use it, your brain quietly says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Wow. Not important. Deleting.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ruthless. Efficient. Slightly rude.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tutorials Make This Worse (Sorry)
&lt;/h2&gt;

&lt;p&gt;Tutorials are great… until they aren’t.&lt;/p&gt;

&lt;p&gt;When you follow along:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The decisions are already made&lt;/li&gt;
&lt;li&gt;The structure is given&lt;/li&gt;
&lt;li&gt;The problems are pre-solved&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your brain is basically on passenger mode.&lt;/p&gt;

&lt;p&gt;So when the tutorial ends and you try to build something alone, your brain panics:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Wait, we were just watching. Why are we driving now?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s why everything disappears.&lt;/p&gt;

&lt;h2&gt;
  
  
  Forgetting Is Not Failure. It’s a Signal
&lt;/h2&gt;

&lt;p&gt;This part changed how I see learning.&lt;/p&gt;

&lt;p&gt;Forgetting usually means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You didn’t struggle enough&lt;/li&gt;
&lt;li&gt;You didn’t make decisions&lt;/li&gt;
&lt;li&gt;You didn’t break anything&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The things you remember best are the ones that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Took you forever&lt;/li&gt;
&lt;li&gt;Made you angry&lt;/li&gt;
&lt;li&gt;Broke three times before working&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pain = memory.&lt;br&gt;
Sadly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Moment I Stopped Panicking
&lt;/h2&gt;

&lt;p&gt;I remember opening a project and realizing &lt;strong&gt;I couldn’t remember how I did something I literally wrote&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Past me had betrayed present me.&lt;/p&gt;

&lt;p&gt;Instead of panicking, I tried something new:&lt;br&gt;
I reread my own code.&lt;/p&gt;

&lt;p&gt;And suddenly it came back.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Not because I memorized it, but because I understood why it existed.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That’s when I realized:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The goal isn’t to remember code.&lt;br&gt;
The goal is to remember how to figure it out again.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What Good Developers Actually Remember
&lt;/h2&gt;

&lt;p&gt;Here’s a secret.&lt;/p&gt;

&lt;p&gt;Good developers don’t remember:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exact syntax&lt;/li&gt;
&lt;li&gt;Every method name&lt;/li&gt;
&lt;li&gt;Every edge case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They remember:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to think&lt;/li&gt;
&lt;li&gt;How to break problems down&lt;/li&gt;
&lt;li&gt;Where to look when they forget&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They Google. Constantly. Confidently. Shamelessly.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Forget Less (Without Trying Harder)
&lt;/h2&gt;

&lt;p&gt;Here’s what actually helps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Build Something Small After Learning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Even a tiny thing.&lt;br&gt;
Especially a tiny thing.&lt;/p&gt;

&lt;p&gt;Your brain remembers decisions, not explanations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Revisit Old Code (Yes, It’s Ugly)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reading your past code feels like reading old diary entries.&lt;/p&gt;

&lt;p&gt;Cringe.&lt;br&gt;
But powerful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Explain It to an Imaginary Person&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you can explain it without code, you understand it.&lt;br&gt;
If you can’t, that’s okay! Now you know what to revisit.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Reframe That Saved Me
&lt;/h2&gt;

&lt;p&gt;Now, when I forget something, I don’t think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I’m bad at this.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Okay. I’ve seen this before. Let’s reconnect the dots.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Learning to code is not about building a perfect memory.&lt;/p&gt;

&lt;p&gt;It’s about building familiarity.&lt;/p&gt;

&lt;p&gt;And familiarity comes back faster every time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Final Thought&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’re forgetting code you learned last week, you’re not behind.&lt;/p&gt;

&lt;p&gt;You’re not stupid.&lt;br&gt;
You’re not failing.&lt;/p&gt;

&lt;p&gt;You’re just doing something hard, and doing it honestly.&lt;/p&gt;

&lt;p&gt;And that’s exactly how real developers are made.&lt;/p&gt;

&lt;p&gt;If this article felt a little too real, you’re my people.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s the last thing you forgot that made you question everything? 😄&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>learning</category>
      <category>motivation</category>
    </item>
    <item>
      <title>Things No One Tells You About Learning to Code</title>
      <dc:creator>MANZI RURANGIRWA Elvis</dc:creator>
      <pubDate>Wed, 21 Jan 2026 02:56:18 +0000</pubDate>
      <link>https://dev.to/mr_elvis/things-no-one-tells-you-about-learning-to-code-43ce</link>
      <guid>https://dev.to/mr_elvis/things-no-one-tells-you-about-learning-to-code-43ce</guid>
      <description>&lt;p&gt;Most people talk about learning to code like it’s a straight road:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Learn a language → build projects → get a job → succeed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s not how it actually works.&lt;/p&gt;

&lt;p&gt;If you’re learning to code right now, there are a lot of things no one tells you which are things I wish I knew earlier. This article is for beginners, self-taught developers, and anyone who feels stuck, confused, or behind.&lt;/p&gt;

&lt;p&gt;Let’s talk honestly.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Feeling Stupid Is Part of the Process
&lt;/h2&gt;

&lt;p&gt;No one warns you about this.&lt;/p&gt;

&lt;p&gt;You’ll watch a tutorial, feel confident, then try to build something alone — and suddenly nothing works. Errors everywhere. Concepts you thought you understood feel foreign.&lt;/p&gt;

&lt;p&gt;This doesn’t mean you’re bad at coding.&lt;br&gt;
It means your brain is adapting to a new way of thinking.&lt;/p&gt;

&lt;p&gt;Every good developer you admire has felt this. Repeatedly.&lt;/p&gt;

&lt;p&gt;If you’re confused, you’re not failing — you’re learning.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Tutorials Can Trap You
&lt;/h2&gt;

&lt;p&gt;Tutorials feel productive. You follow along, the app works, and you feel smart.&lt;/p&gt;

&lt;p&gt;But here’s the uncomfortable truth:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Watching tutorials doesn’t mean you can build.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You only really learn when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You close the tutorial&lt;/li&gt;
&lt;li&gt;You break things&lt;/li&gt;
&lt;li&gt;You fix them yourself&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tutorials should be training wheels, not your destination.&lt;/p&gt;

&lt;p&gt;The moment you start building your own messy, imperfect projects, that’s when growth accelerates.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. You’ll Learn Slower Than You Expect (And That’s Normal)
&lt;/h2&gt;

&lt;p&gt;Social media makes it look like everyone is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learning React in a week&lt;/li&gt;
&lt;li&gt;Building startups at 16&lt;/li&gt;
&lt;li&gt;Becoming a “10x developer” overnight&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reality is slower. Much slower.&lt;/p&gt;

&lt;p&gt;Learning to code is more like going to the gym:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Progress is invisible at first&lt;/li&gt;
&lt;li&gt;Consistency beats intensity&lt;/li&gt;
&lt;li&gt;Skipping days hurts more than you think
If you show up regularly, even when motivation is low, &lt;strong&gt;you will win.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Copying Code Is Not Cheating
&lt;/h2&gt;

&lt;p&gt;Beginners often feel guilty copying code from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stack Overflow&lt;/li&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;li&gt;Docs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s the truth:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Every developer copies code.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The key difference:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bad copying = paste and move on&lt;/li&gt;
&lt;li&gt;Good copying = paste, then understand, modify, and reuse&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learning to code isn’t about memorization.&lt;br&gt;
It’s about &lt;strong&gt;recognizing patterns&lt;/strong&gt; and &lt;strong&gt;knowing where to look&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Projects Matter More Than Languages
&lt;/h2&gt;

&lt;p&gt;People obsess over:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Which language should I learn?”&lt;/li&gt;
&lt;li&gt;“Is X better than Y?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of the time, it doesn’t matter.&lt;/p&gt;

&lt;p&gt;What matters is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Can you build something?&lt;/li&gt;
&lt;li&gt;Can you explain how it works?&lt;/li&gt;
&lt;li&gt;Can you improve it?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A simple project you understand deeply is more valuable than 5 languages you barely know.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. You’ll Break Things. A Lot.
&lt;/h2&gt;

&lt;p&gt;Your code will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crash&lt;/li&gt;
&lt;li&gt;Refuse to run&lt;/li&gt;
&lt;li&gt;Work yesterday but not today&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;This is normal.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Debugging is not a side skill! It is the skill!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every error you fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Makes you more confident&lt;/li&gt;
&lt;li&gt;Trains your problem-solving ability&lt;/li&gt;
&lt;li&gt;Separates you from people who quit&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  7. Progress Is Not Linear
&lt;/h2&gt;

&lt;p&gt;Some days you’ll feel unstoppable.&lt;br&gt;
Other days you’ll forget things you learned last week.&lt;/p&gt;

&lt;p&gt;That doesn’t mean you’re going backward.&lt;/p&gt;

&lt;p&gt;Learning to code looks like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confusion&lt;/li&gt;
&lt;li&gt;Small breakthroughs&lt;/li&gt;
&lt;li&gt;Bigger confusion&lt;/li&gt;
&lt;li&gt;Clarity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Over time, the confusion becomes more manageable.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. You Don’t Need to Know Everything
&lt;/h2&gt;

&lt;p&gt;Beginners think real developers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memorize syntax&lt;/li&gt;
&lt;li&gt;Know every framework&lt;/li&gt;
&lt;li&gt;Never Google
That’s false.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Real developers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google constantly&lt;/li&gt;
&lt;li&gt;Read documentation&lt;/li&gt;
&lt;li&gt;Ask questions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn just enough to solve the problem&lt;/p&gt;

&lt;p&gt;You don’t need to know everything. &lt;strong&gt;You need to know how to learn&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thought&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Learning to code is hard.&lt;br&gt;
Not because you’re incapable, but because it forces you to think differently.&lt;/p&gt;

&lt;p&gt;If you’re struggling, that’s a good sign.&lt;br&gt;
It means you’re doing real work.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Keep building. Keep breaking things. Keep going.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you’re learning to code right now:&lt;br&gt;
&lt;strong&gt;What’s the hardest part for you?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>learning</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The Hidden Skill Every Good Developer Has (That No One Taught Me)</title>
      <dc:creator>MANZI RURANGIRWA Elvis</dc:creator>
      <pubDate>Wed, 21 Jan 2026 02:36:37 +0000</pubDate>
      <link>https://dev.to/mr_elvis/the-hidden-skill-every-good-developer-has-that-no-one-taught-me-148l</link>
      <guid>https://dev.to/mr_elvis/the-hidden-skill-every-good-developer-has-that-no-one-taught-me-148l</guid>
      <description>&lt;p&gt;When I first started learning to code, I thought I was doing everything right.&lt;/p&gt;

&lt;p&gt;I watched tutorials.&lt;br&gt;
I followed along line by line.&lt;br&gt;
My code worked — at least in the video.&lt;/p&gt;

&lt;p&gt;Then I tried to build something on my own.&lt;/p&gt;

&lt;p&gt;And everything fell apart.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Moment I Realized Something Was Missing&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I remember staring at my screen, completely stuck.&lt;/p&gt;

&lt;p&gt;Not because I didn’t know the syntax.&lt;br&gt;
Not because I hadn’t “learned enough.”&lt;/p&gt;

&lt;p&gt;But because I didn’t know where to start.&lt;/p&gt;

&lt;p&gt;The task felt simple on the surface, yet overwhelming in reality. My brain was trying to solve UI, logic, data flow, and edge cases all at once. I kept asking myself:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What code do I write here?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question kept leading me nowhere.&lt;/p&gt;

&lt;p&gt;What I didn’t realize at the time was that I wasn’t missing a language, a framework, or a tutorial.&lt;/p&gt;

&lt;p&gt;I was missing a skill.&lt;br&gt;
The Skill No One Mentions&lt;/p&gt;

&lt;p&gt;Ask people what makes a good developer, and they’ll usually say:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Knowing many languages&lt;/li&gt;
&lt;li&gt;Writing clean code&lt;/li&gt;
&lt;li&gt;Understanding algorithms&lt;/li&gt;
&lt;li&gt;Learning fast&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those things matter, but they’re not the foundation.&lt;/p&gt;

&lt;p&gt;The hidden skill every good developer has is problem decomposition.&lt;/p&gt;

&lt;p&gt;The ability to take a messy, overwhelming problem and break it into small, manageable pieces.&lt;/p&gt;

&lt;p&gt;Once I understood this, everything changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Good Developers Don’t Start With Code&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Beginners (including past me) think like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“How do I code this feature?”&lt;br&gt;
Good developers think like this:&lt;/p&gt;

&lt;p&gt;“What problem am I actually solving?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Before writing a single line of code, they ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What should happen?&lt;/li&gt;
&lt;li&gt;In what order?&lt;/li&gt;
&lt;li&gt;What are the inputs?&lt;/li&gt;
&lt;li&gt;What could go wrong?&lt;/li&gt;
&lt;li&gt;What does “done” even mean?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They don’t rush.&lt;br&gt;
They clarify.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Everything Felt So Hard Before&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Back then, I wasn’t bad at coding.&lt;/p&gt;

&lt;p&gt;I was trying to solve the entire problem in my head at once.&lt;/p&gt;

&lt;p&gt;For example, instead of thinking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Let me first show the form”&lt;/li&gt;
&lt;li&gt;“Then validate the input”&lt;/li&gt;
&lt;li&gt;“Then store the data”&lt;/li&gt;
&lt;li&gt;“Then handle errors”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I thought:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I need to build the whole system.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That mental overload is why learning to code feels impossible for many beginners.&lt;/p&gt;

&lt;p&gt;Not because the problem is too big, but because it hasn’t been broken down yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Shift That Changed How I Code&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;At some point, I stopped asking:&lt;/p&gt;

&lt;p&gt;“What code should I write?”&lt;/p&gt;

&lt;p&gt;And started asking:&lt;/p&gt;

&lt;p&gt;“What’s the smallest piece of this I can solve right now?”&lt;/p&gt;

&lt;p&gt;That one change:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduced overwhelm&lt;/li&gt;
&lt;li&gt;Made debugging easier&lt;/li&gt;
&lt;li&gt;Increased confidence&lt;/li&gt;
&lt;li&gt;Helped me actually finish projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wasn’t becoming smarter.&lt;br&gt;
I was becoming more methodical.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why This Skill Matters More Than Any Language&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Here’s the part most beginners don’t hear enough:&lt;/p&gt;

&lt;p&gt;Programming languages change.&lt;br&gt;
Frameworks come and go.&lt;br&gt;
Tools evolve constantly.&lt;/p&gt;

&lt;p&gt;But the ability to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyze problems&lt;/li&gt;
&lt;li&gt;Break them into steps&lt;/li&gt;
&lt;li&gt;Solve one piece at a time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That skill transfers everywhere.&lt;/p&gt;

&lt;p&gt;A developer with strong problem decomposition can pick up new technologies faster than someone who only memorizes syntax.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Debugging Is Proof This Skill Works&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;When something breaks, beginners panic.&lt;/p&gt;

&lt;p&gt;Experienced developers pause and ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What was supposed to happen?&lt;/li&gt;
&lt;li&gt;What actually happened?&lt;/li&gt;
&lt;li&gt;Where could the difference come from?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Debugging is just problem decomposition in reverse.&lt;/p&gt;

&lt;p&gt;You’re narrowing the problem until the real cause reveals itself.&lt;/p&gt;

&lt;p&gt;That’s why good developers don’t fear bugs — they treat them like puzzles.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Practice This Skill Now
&lt;/h2&gt;

&lt;p&gt;I still do this consciously:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. I Explain the Problem in Plain English&lt;/strong&gt;&lt;br&gt;
If I can’t explain what I’m building without code, I’m not ready to code it yet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. I Build the Simplest Version First&lt;/strong&gt;&lt;br&gt;
Not the best version.&lt;br&gt;
Not the cleanest.&lt;br&gt;
Just the version that works.&lt;/p&gt;

&lt;p&gt;Then I improve it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. I Focus on the Next Small Win&lt;/strong&gt;&lt;br&gt;
Not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“How do I finish this project?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What’s the next tiny thing I can make work?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Momentum beats motivation every time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thought&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Great developers aren’t magic.&lt;br&gt;
They’re not faster learners.&lt;br&gt;
They don’t know everything.&lt;/p&gt;

&lt;p&gt;They’re just really good at breaking problems down.&lt;/p&gt;

&lt;p&gt;If learning to code feels hard right now, don’t assume you’re failing.&lt;/p&gt;

&lt;p&gt;You might just be learning the most important skill — the one no tutorial explicitly teaches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s a problem you’re currently stuck on, and how are you breaking it down?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>softwareengineering</category>
      <category>problemsolving</category>
      <category>learningtocode</category>
    </item>
  </channel>
</rss>
