Kuldeep Singh

07 Sep 2026

Study methods used by programmers

How To get out of tutorial hell

You can follow this highly actionable, two-part program:

Prerequisites

  • Know the Basics: Ensure you understand fundamental concepts: variables, loops, conditionals, and functions.
  • Narrow Your Focus: Pick one software development stack (e.g., front-end, back-end, or mobile).
  • The Promise: Commit to not watching any more tutorials until you complete the exercises below.

Step 1: Do 50 Small Projects (Phase One)

  • The Goal: Complete 50 tiny projects that require less than 100 lines of unique code (e.g., a temperature converter or a palindrome checker).
  • Question Driven Development (QDD): Instead of following a guide, break the project into small questions and Google your way through individual hurdles (e.g., “how to reverse a string in JS”).
  • Integrate Code: If you copy code from online resources, you must figure out how to make it work within your own unique functions and conditionals. This active problem-solving builds a positive feedback loop.

Step 2: Clone 10 Existing Websites (Phase Two)

  • The Goal: Replicate 10 websites that you find interesting.
  • Beat Procrastination: Replicating existing layouts removes the need to worry about original design or functionality, preventing you from stalling.
  • Define an MVP: Write down your Minimum Viable Product features (e.g., just automating the navbar, sidebar, and feed) before starting, and consider the project done once those are built.
  • Decomposition: Break larger features down into their absolute smallest components (e.g., “how to add an icon next to a search bar”) and solve those specific tasks.

Step 3: Establish the “Learn then Build” Rule

  • Build Immediately: Once you return to tutorials, always write three tiny, crappy projects using the specific content you learned at the end of each section (e.g., building three forms after a section on forms and inputs).

How to master any new skill rapidly

Using the DSSS framework, execute these four steps in order:

1. Deconstruct the Skill

Break your broad, ambiguous goal (such as “learning to swim” or “learning Japanese”) down into its smallest, individual constituent parts.

  • Action: If you don’t know where to start, consult an expert (even a world-class talent or coach via a quick zoom call) to help you map out all the different components of the skill.

2. Select the High-Impact 20% (Pareto’s Law)

Identify and isolate the 20% of the material that will give you 80% of the results you want.

  • Action: Ignore the noise and find high-yield materials. For instance, instead of trying to learn hundreds of thousands of words in a new language, focus only on learning a frequency list of the 1,500 most common words to reach conversational fluency quickly.

3. Sequence the Practice Order

Arrange your selected components into a logical, highly effective order of practice, determining exactly what you must master first.

  • Action: Do not try to learn complex steps all at once. For example, if learning to swim, practice getting comfortable putting your head underwater before you ever worry about breathing techniques.

4. Set Consequences (Stakes)

Create immediate incentives or consequences to force behavior change and ensure you follow through on your commitments.

  • Action: Use “loss aversion” by giving a sum of money to a friend with strict instructions to donate it to a political candidate or cause you absolutely hate in your name if you fail to complete your goal.

How to Publish

  • Do the Work First: Dive deep into whatever you are curious about (like side projects) or what you are already solving at your day job. Keep a scratchpad open for a month to jot down interesting patterns or problems you solve.
  • Share the Journey (Don’t Wait for Perfection): Do not wait until you have a perfect, finished project. Share your work-in-progress, wins, losses, and thought processes; people are drawn to stories and people in motion.
  • Get It Off Your Hard Drive: You can publish anywhere your peers hang out—GitHub, Twitter, blogs, newsletters, forums, or YouTube. Anywhere that is not your local machine counts.
  • Be Excited Publicly: Share whatever you are genuinely curious about, because your excitement will naturally be contagious to others.

What to do when learning to code instead of note-taking

  • Over-Comment Your Code: Comment every variable, code block, and line. Do this for your own code and any snippets you copy to force yourself to step through and understand the logic.
  • Write README Documentation: Start every project with a README file using basic Markdown. Use it to document the purpose of the application and the technologies used. Treat this public documentation as your primary “notes”.
  • Apply the “Three-Times” Rule: Avoid writing notes for simple syntax, as you will naturally learn it through muscle memory. Only jot down a quick note if a specific problem trips you up three or more times.
  • Showcase on GitHub or GitLab: Keep your repositories public. Employers cannot see your private notebook, but seeing well-commented code and solid documentation on GitHub will make you stand out from other developers.

We never have complete information

The mindset holding you back is the desire for complete information—the belief that you must know absolutely everything before you can begin coding a project. This stems from an exam-based school system and traps you in an “anxious loop” that heavily slows down your progress.

To overcome this, you must transition to Just-in-Time learning using these short, actionable steps:

  • Learn only what you need: When you encounter a concept you don’t understand while building, study only that specific concept at that moment and nothing more.
  • Avoid study rabbit holes: Do not stop to master every related topic. If you need to sort an array, learn how to use array.sort and keep building immediately, rather than stopping to study all array methods.
  • Shift your core belief: Stop waiting to feel fully prepared and embrace the mindset that “I can learn while I’m building”.