<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ tutorial hell - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ tutorial hell - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Wed, 03 Jun 2026 17:24:39 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/tutorial-hell/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Learn from Tutorials the Right Way – and Not Get Trapped in Tutorial Hell ]]>
                </title>
                <description>
                    <![CDATA[ Project tutorials are a very popular way to start building your first few projects. But unfortunately most people go about it in the wrong way and don't end up learning very much in the process.  In this article, I will provide some tips on how to pr... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-learn-from-coding-tutorials-and-avoid-tutorial-hell/</link>
                <guid isPermaLink="false">66b8d98ef805ffd579552e8c</guid>
                
                    <category>
                        <![CDATA[ learning to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Productivity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Tutorial ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tutorial hell ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jessica Wilkins ]]>
                </dc:creator>
                <pubDate>Fri, 26 Mar 2021 17:15:22 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/605ddfd49618b008528a7b18.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Project tutorials are a very popular way to start building your first few projects. But unfortunately most people go about it in the wrong way and don't end up learning very much in the process. </p>
<p>In this article, I will provide some tips on how to properly learn from tutorials and gain confidence to start building your own projects. I will also provide advice on how to avoid tutorial hell. </p>
<p>But first, what is tutorial hell? </p>
<h2 id="heading-help-i-am-trapped-in-tutorial-hell">Help! I am trapped in tutorial hell</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-322.png" alt="Image" width="600" height="400" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/@wanderluly?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"&gt;Ludovica Dri / &lt;a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm<em>campaign=api-credit)</em></p>
<p>When I first started learning how to code 9 months ago, I didn't understand how to go about building my first project. So I signed up for a Udemy course and learned how to build a restaurant page with HTML and CSS. </p>
<p>I loved the final result and decided to sign up for another Udemy course. I learned how to build a product landing page with some cool animations. </p>
<p>I was proud of these two projects and decided to go on a shopping spree and buy four JavaScript courses on Udemy. I built a couple more small JavaScript projects and now I was interested in building something on my own. </p>
<p>But when I opened up my code editor, I was drawing a complete blank. I had no clue how to get started or how to research. </p>
<p>It then dawned on me that for the past month, I was trapped in consuming tutorials without a game plan. I had the opportunity to learn from these videos, but I went about it in the wrong way. </p>
<p>All I was doing was coding along with the instructor and jumping from project to project. I didn't stop to ask questions and process what I had just learned.</p>
<p>Tutorials can be a good learning tool, but you have to go about it in the right way or else you can become dependent on them and not learn how to code on your own. </p>
<h2 id="heading-what-is-the-right-way-to-learn">What is the right way to learn?</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-323.png" alt="Image" width="600" height="400" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/@jcosens?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"&gt;Jonathan Cosens Photography / &lt;a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm<em>campaign=api-credit)</em></p>
<p>Here are my five steps for learning with tutorials:</p>
<ol>
<li>Stop and think about what you are going to build. It would help to write down the basic components of the project.</li>
<li>Try building some of it own your own first. It is totally fine to make mistakes because it is part of the learning process.  </li>
<li>Watch the video and pause periodically to process the information and ask questions. Remember that Google is your friend. </li>
<li>Take the finished project and break it. You can learn a lot from error messages.</li>
<li>Rebuild the project from the beginning but in your own way. This will test if you really understood the concepts in the tutorial. </li>
</ol>
<h2 id="heading-step-1-think-about-the-project-first">Step 1: Think about the project first</h2>
<p>A lot of beginners, including myself, will just dive straight into the video without first thinking about the project. A key part of becoming a developer is thinking about the problem first and then worrying about the implementation. </p>
<p>Let's say you want to watch a tutorial on how to create a random background color changer. Your basic thought process might look something like this:</p>
<ul>
<li>create a collection of different colors</li>
<li>create a button that when clicked will change the background color</li>
<li>create some sort of random function for the color selections</li>
</ul>
<p>Even if you don't know how to implement that into code, at least you are starting to think about the problem. </p>
<h2 id="heading-step-2-try-building-it-on-your-own-first">Step 2: Try building it on your own first</h2>
<p>A lot of people are afraid to build something on their own because of the fear of not having the skills or knowledge. But there is nothing wrong with at least trying some things first. </p>
<p>Before you watch a video, you could try to translate step 1 into code. If you Google "collection of colors JavaScript", then one of the results will mention an array. </p>
<p>Or if you Google, "random function JavaScript", then the first result will be for     <code>Math.random()</code>. </p>
<p>This is a way that you can slowly start to translate step 1 into code. It is fine if your code is not 100% correct. </p>
<p>The goal is to start learning how to research and think about the problem first. </p>
<h2 id="heading-step-3-pause-the-video-to-process-and-ask-questions">Step 3: Pause the video to process and ask questions</h2>
<p>Now that you have thought about the project and started trying some things on your own, you are ready to start watching the video. </p>
<p>I would not advise you to sit down and watch the entire video without stopping. Your brain can only consume so much information at once. </p>
<p>It would be better to periodically pause the video to process what you have just learned. It will also give you an opportunity to research concepts that confused you in the video. </p>
<p>Asking questions and researching is an important skill for becoming a successful developer. </p>
<h2 id="heading-step-4-intentionally-break-the-finished-project">Step 4: Intentionally break the finished project</h2>
<p>Once you finish the video and the project is complete, I would challenge you to break it. Creating small bugs in your project will teach you to read error messages. </p>
<p>Error messages are not always a bad thing. You can learn a lot from these errors. </p>
<p>For example, maybe you were wondering why the instructor chose to use <code>let</code> instead of <code>const</code> in a particular situation. Try changing it to <code>const</code> and see what happens. </p>
<p>Is there an error message? If so, then read through that error message and you will learn why the instructor chose to use <code>let</code>  over <code>const</code>. </p>
<h2 id="heading-step-5-rebuild-the-project-your-own-way">Step 5: Rebuild the project your own way</h2>
<p>If you want to test yourself on the concepts learned in the video, rebuild the project in your own way. </p>
<p>You can start by choosing different styles or methods from the instructor. </p>
<p>For example, if the instructor used if/else statements, maybe you want to change it to switch statements. Or if the instructor used a simple for loop, maybe a forEach loop would work too. </p>
<p>You can also add an extra feature to the project. Maybe you want to create some custom animations or experiment with adding sounds.</p>
<p>Or maybe you want to take that single page application and turn that into a multipage website. </p>
<p>Learning how to rebuild the project your own way will start to give you the confidence to build projects on your own. It will also teach you how to research, ask questions, and debug your code. </p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Project tutorials can be a great learning tool if you use them the right way. </p>
<p>The wrong way would be to leap from tutorial to tutorial and not process what you just learned. You also don't want to develop a dependency on these tutorials and get trapped in tutorial hell. </p>
<p>The end goal is to learn how to build projects on your own.  My five steps for learning with tutorials will help you get to that end goal. </p>
<ol>
<li>Stop and think about what you are going to build. It would help to write down the basic components of the project.</li>
<li>Try building some of it own your own first. It is totally fine to make mistakes because it is part of the learning process.  </li>
<li>Watch the video and pause periodically to process the information and ask questions. Remember that Google is your friend. </li>
<li>Take the finished project and break it. You can learn a lot from error messages.</li>
<li>Rebuild the project from the beginning but in your own way. This will test if you really understood the concepts in the tutorial. </li>
</ol>
<p>I hope you found this article helpful and will approach tutorials in a different and more effective manner.</p>
<p>Happy coding! </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How I Escaped Tutorial Purgatory – and How You Can, Too ]]>
                </title>
                <description>
                    <![CDATA[ By Daniel Chae Tutorial purgatory. We've all been there. The mindless scrolling, pausing, and playing. All the copying, and pasting of the coding snippets. It's a lukewarm place to be.  You're "learning" because you're making your way through structu... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/escape-tutorial-purgatory/</link>
                <guid isPermaLink="false">66d45e00d7a4e35e38434957</guid>
                
                    <category>
                        <![CDATA[ tutorial purgatory ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learning to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ lessons learned ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Tutorial ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tutorial hell ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 23 Nov 2020 17:50:41 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/11/road-trip-with-raj-_cbKur5I60A-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Daniel Chae</p>
<p>Tutorial purgatory. We've all been there. The mindless scrolling, pausing, and playing. All the copying, and pasting of the coding snippets. It's a lukewarm place to be. </p>
<p>You're "learning" because you're making your way through structured content. But when you leave the tutorial, you can't code any of what you "learned". </p>
<p>The great thing is that you don't have to stay stuck in tutorial purgatory. I'm going to share with you my own experience about how I broke out of tutorial purgatory and how you can too. </p>
<p>Whatever method you decide to use, I'll share the key metrics for breaking out of the tutorial rut.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-259.png" alt="Image" width="600" height="400" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/@dchuck?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"&gt;Daniel Chekalov / &lt;a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm<em>campaign=api-credit)</em></p>
<h2 id="heading-painful-realizations-about-my-learning-approach">Painful Realizations About My Learning Approach</h2>
<p>When I first started learning how to code I looked forward to learning anything and everything. </p>
<p>I'd Google "easy programming projects" and browse the first few search results. I kept my eyes peeled for tutorials because I thought I could avoid failure with the tutorial's help. I also believed that the more tutorials I completed, the more I would learn. </p>
<p>I couldn't have been more incorrect in my learning approach.</p>
<p>The unfortunate aspect was that I wasn't retaining the knowledge of what I was coding. After several months of "completing" tutorials, I soon came to grips with my lack of progress. I couldn't understand the code I was writing. </p>
<p>An example of this was when I completed a Flask tutorial. I thought I knew and understand Python from completing a tutorial. I decided to take w3 school's Python quiz and was confident I would pass. Unfortunately, I failed.</p>
<p>After I discovered I wasn't learning what I thought I was, I felt pretty hopeless. I thought tutorials were the key to learning. I thought about trying projects without tutorial help, but I was too scared to fail. I was burning with desire to become a great programmer, but I was out of ideas for how to do that.</p>
<h2 id="heading-how-i-broke-free-from-tutorial-purgatory">How I Broke Free from Tutorial Purgatory</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-260.png" alt="Image" width="600" height="400" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/@pabloheimplatz?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"&gt;Pablo Heimplatz / &lt;a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm<em>campaign=api-credit)</em></p>
<p>I spent the next several months sulking, but not for long. There was a determination within me to find a way. </p>
<p>After months of not touching a single line of code I sat down and asked myself, "what is it that I want to work on? What type of programming is out there?"  </p>
<p>I sat and pondered answers to those two questions. I started researching different types of programming and various career paths. It was illuminating.</p>
<p>I found articles and forums on data science and analysis. I found helpful graphics that explained the difference between the front-end and back-end. I discovered how the front-end and back-end interact. I also found videos that explained what APIs were and how to view, receive, and write data from an API.</p>
<p>I would encourage you to ask the same questions:</p>
<blockquote>
<p>What is it that you want to work on? </p>
<p>What type of programming is out there?</p>
</blockquote>
<p>As you reflect on what it is you want to work on and explore, you'll begin to narrow down your learning path. </p>
<p>You'll feel less inclined to learn everything there is to know and more of what you are most interested in. You'll also feel less overwhelmed as you focus in on what type of programming interests you the most.</p>
<h2 id="heading-meetups-changed-my-life">Meetups Changed My Life</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-261.png" alt="Image" width="600" height="400" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/@windows?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"&gt;Windows / &lt;a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm<em>campaign=api-credit)</em></p>
<p>Another thing I started doing was attending coding meetups. It's hard to imagine in-person meetups given that we're currently in a pandemic. But I remember my first coding meetup and how helpful it was.</p>
<p>Long story short, I had no idea what I was doing at the meetup. But I went with the intention to learn and open myself to different methods of programming. One of the facilitators ended up sitting me down and asked me why I was at the meetup. </p>
<p>After I told him I was there to learn more about programming, he helped me explore. He took me through different use cases for the Beautiful Soup and Selenium libraries. He ended up teaching me how to build a web scraper. After that meetup I realized data science and analysis interested me the most. </p>
<p>Throughout the next several months I had a renewed drive for programming. I had a specific vision and set of goals in mind. I began to complete small, simple projects. I built a web scraper that scraped financial data from the NASDAQ stock market. I also built a Java application that generated a random "workout of the day". </p>
<h2 id="heading-this-is-what-freedom-feels-like">This is What Freedom Feels Like</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-262.png" alt="Image" width="600" height="400" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/@micahtindell?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"&gt;Micah Tindell / &lt;a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm<em>campaign=api-credit)</em></p>
<p>Over the course of the next year I could feel my confidence grow. As I completed small, simple projects my comprehension began to grow as well. I started to recognize more and more lines of code from other people's scripts on GitHub.  </p>
<p>Given that most of us are sheltering in place, I would recommend you don't go to an in-person coding meetup. That said, there are plenty of virtual coding meetups on <a target="_blank" href="https://www.meetup.com/">Meetup.com.</a> </p>
<p>I would also encourage you to check out the <a target="_blank" href="https://www.reddit.com/r/learnprogramming/">r/learnprogramming subreddit</a>. There are some snarky individuals on Reddit who may give you a hard time for asking questions. But there are also plenty of people who are more than willing to guide, inspire, and help you. If you allow them to, they'll help you become a better programmer.</p>
<h2 id="heading-your-keys-to-success-when-learning-to-code">Your Keys to Success When Learning to Code</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-263.png" alt="Image" width="600" height="400" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/@mlightbody?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"&gt;Malcolm Lightbody / &lt;a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm<em>campaign=api-credit)</em></p>
<p>There are many ways to break out of tutorial purgatory. You don't have to do any of what I did. Whatever you choose to do, you should know there are a few key success metrics to guide you. </p>
<p>The most important metric is results. Are you able to complete projects without a tutorial guiding you every step of the way? Are you able to understand the problem and develop some type of approach? </p>
<p>Tutorials should help you so that you can go back and understand what you built with the tutorial's help. </p>
<p>The second metric is confidence. Do you feel like you're heading in the right direction? Do you feel like you're progressing? </p>
<p>Confidence can precede results, but it should never exist without results. Otherwise, you'll experience what I did while I was "completing" tutorials. You'll have, in essence, a false sense of confidence.</p>
<p>Tutorial purgatory is a miserable place to be. You don't know if you're heading in the right direction and learning to program can feel hopeless. </p>
<p>But take heart, you don't have to stay stuck in tutorial purgatory. Keep asking questions! Distill your vision so that you're not overwhelmed with having to learn everything. You're heading in the right direction if you're producing results and feeling confident. Time to break out of tutorial purgatory and you'll thank yourself later.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How learning to skateboard helped me find a way out of tutorial hell ]]>
                </title>
                <description>
                    <![CDATA[ By Kevin Powell I've been creating websites for years now. I started making my first websites back in highschool in the late 90s. For the past six years, I've also been teaching introduction to HTML & CSS classes (among others) in the classroom. Abou... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-learning-to-skateboard-helped-me-find-a-way-out-of-tutorial-hell/</link>
                <guid isPermaLink="false">66d45f68246e57ac83a2c781</guid>
                
                    <category>
                        <![CDATA[ learning to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tutorial hell ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 20 Feb 2020 17:00:00 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c9c7d740569d1a4ca327b.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Kevin Powell</p>
<p>I've been creating websites for years now. I started making my first websites back in highschool in the late 90s.</p>
<p>For the past six years, I've also been teaching introduction to HTML &amp; CSS classes (among others) in the classroom. About 3 years ago, I also started <a target="_blank" href="https://youtube.com/kevinpowell">my YouTube channel</a> which primarily focuses on CSS.</p>
<p>In other words, I've been making websites for awhile, but I also have a lot of experience with helping people learn how to do it as well.</p>
<p>A bit over a year ago we got my son a skateboard for his birthday and, at age 34, I thought it would be fun to learn along with him.</p>
<p>It's been fun, but it's also changed both how I learn new things, as well as how I teach people how to make websites.</p>
<h2 id="heading-escaping-tutorial-hell">Escaping tutorial hell</h2>
<p>Have you ever heard of tutorial hell? A lot of people who are trying to learn to be front-end devs find themselves stuck in tutorial hell.</p>
<p>It's this place where you feel like you understand things. You watch a tutorial and can follow along and you <em>understand</em> what they are doing.</p>
<p>This understanding makes you feel like you know how to do it as well. That is until you try and use it later on.</p>
<p>The problem is, people <em>watch</em> tutorials a ton, and that's about it.</p>
<h3 id="heading-its-not-that-simple">It's not that simple</h3>
<p>The problem is, understanding how to do something isn't the same as being able to do it yourself.</p>
<p>I've watched a ton of skateboarding videos about how to do an ollie. I could even describe out all the steps to do one to you in excruciating detail.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/jared-tomasek-0NzzGgi4wzo-unsplash-1.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Someone doing an ollie</em></p>
<p>I still took me an embarrassing amount of time to actually be able to do one, and I'm still terrible at them.</p>
<p>I <em>understand</em> the steps to do one. I can't implement those steps properly.</p>
<p>And I can hear you right now saying "but doing an ollie isn't the same as writing out some code!" Sure, one is a little more physical than the other, but they are much more related than you might think.</p>
<h2 id="heading-going-back-to-the-very-basics">Going back to the very basics</h2>
<p>One of the problems with learning to create websites is that it's easy to get ahead of yourself.</p>
<p>You figured out how to make an <code>&lt;h1&gt;</code> so you think you know how to markup a site.</p>
<p>You understand that <code>display: flex</code> creates columns, so you start feeling like you get flexbox.</p>
<p>You watch people doing more complex things and it all makes sense. But just like I know the steps to ollie but can't do one more than an inch off the ground, just because you understand the steps of that tutorial doesn't mean you're ready to do it on your own yet.</p>
<p>You need to go back to the basics and practice.</p>
<p>And practice.</p>
<p>And practice.</p>
<p>This is where skateboarding is better than learning to code. When you learn to code, you <em>think</em> you know what you're doing, but it's only a false sense of knowledge. With skateboarding, when you try something you don't know, you end up with a few bruises and a pretty good idea that you need to keep trying.</p>
<h3 id="heading-practicing-the-basics">Practicing the basics</h3>
<p>I was told that the first step to learning to skateboard is to push.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/seyi-ariyo-9L1sq2Q7tBM-unsplash.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>A guy pushing on his skateboard</em></p>
<p>You know, standing on the board with one foot and pushing with the other so that you can move. That's sort of foundational, so it makes sense that you need to start there.</p>
<p>The thing is, even though you can start to push within a few minutes, it doesn't mean you are very good at pushing.</p>
<p>You need to practice, practice, practice.</p>
<p>You build up your balance and develop a feel for your board. I mean, how the hell can I make my board jump into the air and then land on it if I haven't properly developed my balance on the board?</p>
<p>So you need to learn the steps to pushing. Then you start to practice. The more you practice, the more comfortable you feel balancing on your board and that starts opening the doors to more things.</p>
<h2 id="heading-the-ollie-of-page-layouts">The ollie of page layouts</h2>
<p>Trying to do an ollie without being comfortable riding a board is like someone trying to create a layout but who doesn't understand the box model.</p>
<p>The ollie of CSS is probably something like flexbox. It's a pretty essential skill in the long run, but not a <em>foundational</em> skill like the box model, cascade, and inheritance are. </p>
<p>And yes, you could learn flex right away and get something working, but it's going to be a lot harder to make changes. And when something goes wrong (which it eventually will), you'll have no idea why or how to fix it.</p>
<h3 id="heading-learning-to-push-the-code-version">Learning to push, the code version</h3>
<p>When you're learning to stand on your skateboard, and then to push, you don't feel comfortable balancing on your board. The more you do it, the more you develop your balance and the easier it gets.</p>
<p>Some languages have a bigger issue with this than others. CSS might be the worst at giving people a false sense of knowledge. The problem with CSS is it's easy to hear someone talk about how the cascade works and think that you know it.</p>
<p>You run into issues <em>later</em> because you didn't actually understand it, even though you thought you did at the time. </p>
<p>Then, later on, you get a little stuck so you read a tutorial and use it to help you muddle your way through making a navbar using flexbox. That's great! But you don't really understand how it works or how to make changes to it.</p>
<p>You get stuck, or even worse, it doesn't work like it did in the tutorial and you have no idea why.</p>
<p>Or worse yet, you think you got it, but then go to make it on your own without a tutorial and stare blankly at the screen with <em>no idea</em> where to start.</p>
<p>The same happens when learning JavaScript, or any other language though. In JavaScript, you learn how a simple loop works and then you move on, try to make a function that needs one, and then it starts throwing errors at you. </p>
<p>When you followed that tutorial, you learned <em>how</em> a loop works, and maybe you even made one, but you didn't cement that knowledge before moving on.</p>
<h2 id="heading-how-to-practice-the-fundamentals">How to practice the fundamentals</h2>
<p>So when you decide to learn something new, or you come across something you haven't heard of before, you need to nail that thing down.</p>
<p>That doesn't mean reading a quick article on it and saying "I've got this!". It means following a tutorial. Not watching a tutorial, but following along with it <strong>writing the code yourself</strong>.</p>
<p>Let's say you're learning how to make a navigation menu with an unordered list. Go and watch a video on it and follow along.</p>
<p>Then go and do it again. <strong>The exact same thing</strong>, but this time don't watch anything. See if you can remember how to do it.</p>
<p>Now make it but with the logo in the middle of the nav links instead of the logo on the left and the links on the right.</p>
<p>Now make that first one again from scratch. Can you <em>still</em> remember how to do it?</p>
<p>Now make a vertical navigation that sticks to the side of the site.</p>
<p>You get the idea. This is the part people skip, but it's so important! We need to practice, practice, and practice some more. It's not as exciting, but <strong>this is how you're going to learn</strong>. </p>
<p>And by doing this, you'll not only learn how to make one specific navigation, but you're also going to learn how to make all the possible variations. And you'll learn more about how flexbox works and that skill will roll over to other things that you're working on too!</p>
<h2 id="heading-twice-to-make-it-true">Twice to make it true</h2>
<p>We don't feel the need to do it when we're coding because we get something to work and we feel like we can move on. But imagine if I did that with skateboarding, or any manual task really.</p>
<p>Doing something once doesn't mean "you got it!", it means you managed to make it work one time, in one very specific situation.</p>
<p>In skateboarding you'll hear "twice to make it true", meaning you can only really say you've landed a new trick once you've landed it twice in a row. </p>
<p>It's the same when you're learning something new. <strong>First you do it following a tutorial, then you do it <em>without</em> any help at all.</strong></p>
<p>Forget something when trying to do it without help? You can't just go back to that tutorial and get the missing key. Follow along with the tutorial and then <em>do it again</em> without it. </p>
<h2 id="heading-there-is-a-framework-to-learning-something-properly">There is a framework to learning something properly</h2>
<p>Starting to learn how to skateboard made me remember 2 things about learning:</p>
<ol>
<li>Even small, simple things have a lot of steps</li>
<li>You need to practice a lot</li>
</ol>
<p>Those small, simple things with a lot of steps often rely on foundational knowledge that people gloss over when they're learning.</p>
<p>Some of these foundational things are simple and others don't really get in the way. So even if you don't understand block formatting context, you can still do things and get them to work.</p>
<p>But if from the very start you can learn the foundational skills of the language you're trying to learn (like pushing for when you learn to ride a skateboard), then it'll make the rest of it all so much easier!</p>
<p>So I looked at how I teach in the classroom, and how I see students learn and succeed (and fail). I've also taken some tips from how I've had to break tasks down as I learn to skateboard. Then I turned it into <strong>a framework to help people learn front-end development better and faster</strong>.</p>
<p>If you'd like to get that framework, <a target="_blank" href="http://front-end-mastery.kevinpowell.co/">follow this link</a>. You'll get both an e-book that dives into the specifics of it, as well as a PDF flowchart that outlines all the steps in a visual way, all for free ?.</p>
<p>It might sound simple (and really, it is), but by following along a specific path whenever you're learning something new, it's going to help you be more consistent with your learning. </p>
<p>All the repetition might seem excessive at first, but once you get into the groove of it, it'll help speed things up because it ensures that you understand the foundational skills which everything then builds upon.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
