{"id":7378,"date":"2025-03-06T11:46:48","date_gmt":"2025-03-06T11:46:48","guid":{"rendered":"https:\/\/algocademy.com\/blog\/why-watching-coding-tutorials-isnt-improving-your-problem-solving-skills\/"},"modified":"2025-03-06T11:46:48","modified_gmt":"2025-03-06T11:46:48","slug":"why-watching-coding-tutorials-isnt-improving-your-problem-solving-skills","status":"publish","type":"post","link":"https:\/\/algocademy.com\/blog\/why-watching-coding-tutorials-isnt-improving-your-problem-solving-skills\/","title":{"rendered":"Why Watching Coding Tutorials Isn&#8217;t Improving Your Problem Solving Skills"},"content":{"rendered":"<p>You&#8217;ve spent countless hours watching coding tutorials. Your YouTube history is filled with &#8220;Learn Python in 10 Hours&#8221; and &#8220;Become a JavaScript Master&#8221; videos. You&#8217;ve followed along, typing the same code as the instructor, feeling that rush of accomplishment when your program runs successfully. Yet, when faced with a real coding problem or a technical interview question, you freeze. The solution doesn&#8217;t come to you like it seemed to come to the tutorial instructor.<\/p>\n<p>If this sounds familiar, you&#8217;re experiencing what many coding learners encounter: the tutorial trap. This phenomenon occurs when learners consume vast amounts of instructional content but struggle to apply that knowledge independently.<\/p>\n<p>In this comprehensive guide, we&#8217;ll explore why passive learning through tutorials often fails to develop strong problem solving skills, and more importantly, what you can do about it.<\/p>\n<h2>Table of Contents<\/h2>\n<ul>\n<li><a href=\"#the-illusion-of-competence\">The Illusion of Competence: Why Tutorials Feel Effective<\/a><\/li>\n<li><a href=\"#passive-vs-active-learning\">Passive vs. Active Learning in Programming<\/a><\/li>\n<li><a href=\"#tutorial-limitations\">The Limitations of Coding Tutorials<\/a><\/li>\n<li><a href=\"#cognitive-skills\">The Cognitive Skills Tutorials Don&#8217;t Teach<\/a><\/li>\n<li><a href=\"#effective-learning\">How to Learn Programming Effectively<\/a><\/li>\n<li><a href=\"#practical-exercises\">Practical Exercises to Build Problem Solving Skills<\/a><\/li>\n<li><a href=\"#balancing-approach\">Balancing Tutorials with Active Problem Solving<\/a><\/li>\n<li><a href=\"#measuring-progress\">How to Measure Your Progress Beyond Tutorials<\/a><\/li>\n<li><a href=\"#conclusion\">Conclusion: Moving Beyond the Tutorial Trap<\/a><\/li>\n<\/ul>\n<h2 id=\"the-illusion-of-competence\">The Illusion of Competence: Why Tutorials Feel Effective<\/h2>\n<p>When you follow along with a coding tutorial, you experience what psychologists call the &#8220;illusion of competence.&#8221; This cognitive bias makes you believe you understand a concept better than you actually do.<\/p>\n<p>As you watch an instructor solve a problem step by step, the solution seems obvious. &#8220;Of course, that&#8217;s how you&#8217;d do it!&#8221; you think to yourself. The instructor&#8217;s explanation makes perfect sense, and when you replicate their code, it works just as expected. This creates a false sense of mastery.<\/p>\n<p>Here&#8217;s why this happens:<\/p>\n<h3>Recognition vs. Recall<\/h3>\n<p>When watching tutorials, you&#8217;re engaging in recognition, which is a much simpler cognitive process than recall. Recognition is seeing something and thinking, &#8220;Yes, I know that.&#8221; Recall, however, is retrieving that information from memory without prompts or hints.<\/p>\n<p>Programming in the real world requires recall. You need to remember syntax, algorithms, patterns, and concepts without someone walking you through them.<\/p>\n<h3>Guided Problem Solving<\/h3>\n<p>In tutorials, instructors have already:<\/p>\n<ul>\n<li>Identified the problem<\/li>\n<li>Broken it down into manageable steps<\/li>\n<li>Determined the appropriate solution approach<\/li>\n<li>Anticipated and planned for edge cases<\/li>\n<\/ul>\n<p>By the time you see the tutorial, all the hard cognitive work has been done for you. You&#8217;re essentially tracing their footsteps rather than blazing your own trail.<\/p>\n<h3>The Missing Struggle<\/h3>\n<p>Real learning happens during moments of productive struggle. When you encounter a problem, try different approaches, hit walls, and eventually break through to a solution, that experience creates strong neural pathways that facilitate future problem solving.<\/p>\n<p>Tutorials eliminate this valuable struggle. Everything works as expected because the instructor has ironed out all the bugs and complications beforehand.<\/p>\n<h2 id=\"passive-vs-active-learning\">Passive vs. Active Learning in Programming<\/h2>\n<p>Understanding the fundamental difference between passive and active learning is crucial for developing programming skills.<\/p>\n<h3>Passive Learning: The Tutorial Approach<\/h3>\n<p>Passive learning occurs when you consume information without actively engaging with it. In the context of programming, this includes:<\/p>\n<ul>\n<li>Watching video tutorials without pausing to experiment<\/li>\n<li>Reading programming books from cover to cover<\/li>\n<li>Following along with code examples without modifying them<\/li>\n<li>Listening to programming podcasts without implementing concepts<\/li>\n<\/ul>\n<p>While passive learning is comfortable and can introduce you to new concepts, it rarely leads to the development of problem solving skills or deep understanding.<\/p>\n<h3>Active Learning: The Problem Solver&#8217;s Approach<\/h3>\n<p>Active learning involves engaging with material in ways that require thinking, creating, and problem solving. For programmers, this includes:<\/p>\n<ul>\n<li>Writing code from scratch to solve specific problems<\/li>\n<li>Debugging broken code<\/li>\n<li>Modifying existing programs to add new features<\/li>\n<li>Explaining concepts to others (teaching is one of the most effective forms of learning)<\/li>\n<li>Working on projects without step-by-step guidance<\/li>\n<\/ul>\n<p>Research consistently shows that active learning leads to better retention, deeper understanding, and stronger problem solving abilities.<\/p>\n<h3>The Neuroscience Behind It<\/h3>\n<p>From a neuroscience perspective, active learning creates stronger neural connections. When you actively engage with programming concepts by solving problems, your brain forms multiple pathways to access that information.<\/p>\n<p>Additionally, the emotional component of overcoming challenges creates stronger memories. The satisfaction of solving a difficult programming problem triggers dopamine release, which enhances memory formation and creates positive associations with the learning process.<\/p>\n<h2 id=\"tutorial-limitations\">The Limitations of Coding Tutorials<\/h2>\n<p>While tutorials have their place in the learning journey, understanding their inherent limitations can help you avoid overreliance on them.<\/p>\n<h3>Simplified Problems<\/h3>\n<p>Most tutorials use carefully crafted examples that demonstrate concepts cleanly. Real-world programming problems are messier, with:<\/p>\n<ul>\n<li>Ambiguous requirements<\/li>\n<li>Multiple valid solution approaches<\/li>\n<li>Performance and scalability considerations<\/li>\n<li>Integration with existing systems<\/li>\n<li>Edge cases that aren&#8217;t immediately obvious<\/li>\n<\/ul>\n<p>This simplification, while helpful for teaching concepts, doesn&#8217;t prepare you for the complexity of actual programming tasks.<\/p>\n<h3>Linear Learning Path<\/h3>\n<p>Tutorials present information in a logical, sequential order. The instructor knows exactly where they&#8217;re going and the best path to get there.<\/p>\n<p>Real programming is more exploratory. You often need to research multiple topics simultaneously, backtrack when you hit dead ends, and pivot your approach based on what you discover along the way.<\/p>\n<h3>Lack of Debugging Experience<\/h3>\n<p>In tutorials, code typically works as expected. When it doesn&#8217;t, the instructor quickly identifies and fixes the issue. This deprives you of essential debugging experience, which is where much of a programmer&#8217;s time is spent in reality.<\/p>\n<p>Learning to read error messages, use debugging tools, and systematically isolate problems is a crucial skill that tutorials rarely develop adequately.<\/p>\n<h3>The &#8220;Copy and Paste&#8221; Syndrome<\/h3>\n<p>Many tutorial followers fall into the habit of copying code without understanding it fully. This creates knowledge gaps that become apparent only when you try to apply concepts in different contexts.<\/p>\n<p>Consider this example: a learner might copy a React component from a tutorial without understanding the component lifecycle or state management principles. When they later need to create a component with different behavior, they struggle because they lack the foundational understanding.<\/p>\n<h2 id=\"cognitive-skills\">The Cognitive Skills Tutorials Don&#8217;t Teach<\/h2>\n<p>Problem solving in programming requires specific cognitive skills that are difficult to develop through tutorials alone.<\/p>\n<h3>Algorithmic Thinking<\/h3>\n<p>Algorithmic thinking involves breaking down problems into logical steps and developing systematic approaches to solve them. This skill requires practice in:<\/p>\n<ul>\n<li>Identifying patterns in problems<\/li>\n<li>Creating abstracted, reusable solutions<\/li>\n<li>Evaluating different algorithms for efficiency<\/li>\n<li>Understanding time and space complexity<\/li>\n<\/ul>\n<p>While tutorials might demonstrate algorithms, they rarely force you to develop algorithmic thinking independently.<\/p>\n<h3>Pattern Recognition<\/h3>\n<p>Experienced programmers recognize common patterns across different problems. This pattern recognition allows them to apply proven solutions to new situations.<\/p>\n<p>For example, recognizing when a problem calls for a specific data structure (like a hash map for quick lookups) or design pattern (like observer pattern for event handling) comes from exposure to many different problems.<\/p>\n<h3>Mental Model Building<\/h3>\n<p>Effective programmers build mental models of how systems work. These mental models allow them to:<\/p>\n<ul>\n<li>Predict how code will behave<\/li>\n<li>Understand interactions between components<\/li>\n<li>Identify potential failure points<\/li>\n<li>Reason about code without always executing it<\/li>\n<\/ul>\n<p>Tutorials often focus on implementation details without helping learners develop these crucial mental models.<\/p>\n<h3>Strategic Problem Decomposition<\/h3>\n<p>Complex programming problems require strategic decomposition into smaller, manageable subproblems. This skill involves:<\/p>\n<ul>\n<li>Identifying the core challenges within a larger problem<\/li>\n<li>Establishing dependencies between subproblems<\/li>\n<li>Determining appropriate abstraction boundaries<\/li>\n<li>Creating interfaces between components<\/li>\n<\/ul>\n<p>In tutorials, this decomposition is already done for you, depriving you of the opportunity to practice this essential skill.<\/p>\n<h2 id=\"effective-learning\">How to Learn Programming Effectively<\/h2>\n<p>Now that we understand the limitations of tutorial-based learning, let&#8217;s explore more effective approaches to developing programming skills.<\/p>\n<h3>The Project-Based Learning Approach<\/h3>\n<p>Project-based learning involves building complete applications or systems with minimal guidance. This approach forces you to:<\/p>\n<ul>\n<li>Define requirements and specifications<\/li>\n<li>Make architectural and design decisions<\/li>\n<li>Research and integrate appropriate technologies<\/li>\n<li>Test and debug your own code<\/li>\n<li>Refactor and improve your solutions<\/li>\n<\/ul>\n<p>Start with simple projects and gradually increase complexity. For example, if you&#8217;re learning web development, you might progress from a static personal website to a dynamic application with a database backend.<\/p>\n<h3>The Deliberate Practice Framework<\/h3>\n<p>Deliberate practice, a concept popularized by psychologist Anders Ericsson, involves focused practice on specific aspects of a skill. For programmers, this means:<\/p>\n<ul>\n<li>Identifying weak areas in your knowledge or abilities<\/li>\n<li>Creating targeted exercises to address those weaknesses<\/li>\n<li>Seeking immediate feedback on your performance<\/li>\n<li>Reflecting on what worked and what didn&#8217;t<\/li>\n<li>Iteratively improving your approach<\/li>\n<\/ul>\n<p>For example, if you struggle with recursive algorithms, you might focus on solving various recursion problems and analyzing different approaches.<\/p>\n<h3>The Feynman Technique<\/h3>\n<p>Named after physicist Richard Feynman, this technique involves explaining concepts in simple terms as if teaching someone else. The process includes:<\/p>\n<ol>\n<li>Choose a concept (e.g., closures in JavaScript)<\/li>\n<li>Explain it in simple language<\/li>\n<li>Identify gaps in your explanation<\/li>\n<li>Review and simplify technical terms<\/li>\n<\/ol>\n<p>This approach forces you to develop a deeper understanding of programming concepts rather than just recognizing them.<\/p>\n<h3>Spaced Repetition and Retrieval Practice<\/h3>\n<p>Research in cognitive science shows that spaced repetition (reviewing material at increasing intervals) and retrieval practice (actively recalling information) significantly improve long-term retention.<\/p>\n<p>For programmers, this might involve:<\/p>\n<ul>\n<li>Revisiting previously solved problems without looking at your solution<\/li>\n<li>Creating flashcards for programming concepts and syntax<\/li>\n<li>Implementing the same functionality using different approaches<\/li>\n<li>Teaching concepts to others after learning them<\/li>\n<\/ul>\n<h2 id=\"practical-exercises\">Practical Exercises to Build Problem Solving Skills<\/h2>\n<p>Let&#8217;s explore specific exercises that develop the problem solving muscles that tutorials often neglect.<\/p>\n<h3>Code Challenges with Constraints<\/h3>\n<p>Solving problems with artificial constraints forces creative thinking. Try exercises like:<\/p>\n<ul>\n<li>Implementing a sorting algorithm without using loops<\/li>\n<li>Building a web page without JavaScript<\/li>\n<li>Creating a function using a maximum of 10 lines of code<\/li>\n<li>Solving a problem using only pure functions (no side effects)<\/li>\n<\/ul>\n<p>These constraints prevent you from using familiar patterns and push you to explore alternative approaches.<\/p>\n<h3>Reverse Engineering Exercises<\/h3>\n<p>Take existing code and work backward to understand it. For example:<\/p>\n<ul>\n<li>Examine an open-source library and document how it works<\/li>\n<li>Study a complex algorithm implementation and explain each step<\/li>\n<li>Take a working application and create a detailed architecture diagram<\/li>\n<li>Predict the output of unfamiliar code before running it<\/li>\n<\/ul>\n<p>This develops your ability to read and understand code, a critical skill for professional developers.<\/p>\n<h3>Debugging Challenges<\/h3>\n<p>Deliberately practice debugging by:<\/p>\n<ul>\n<li>Introducing bugs into working code and then fixing them<\/li>\n<li>Working with &#8220;broken&#8221; code examples that you need to repair<\/li>\n<li>Using debugging tools to trace program execution<\/li>\n<li>Analyzing and fixing performance issues in inefficient code<\/li>\n<\/ul>\n<p>Debugging is where many programmers spend significant time, yet it&#8217;s rarely covered thoroughly in tutorials.<\/p>\n<h3>Implementation from Specification<\/h3>\n<p>Instead of following step-by-step tutorials, try implementing features from written specifications:<\/p>\n<ul>\n<li>Build features based on user stories or requirements documents<\/li>\n<li>Implement algorithms from academic papers or descriptions<\/li>\n<li>Create components that match a provided API specification<\/li>\n<li>Replicate the functionality of existing tools without looking at their code<\/li>\n<\/ul>\n<p>This simulates real-world development, where you rarely have step-by-step instructions.<\/p>\n<h3>Code Review Practice<\/h3>\n<p>Reviewing others&#8217; code develops critical analysis skills:<\/p>\n<ul>\n<li>Contribute to open-source projects by reviewing pull requests<\/li>\n<li>Exchange code reviews with peers or mentors<\/li>\n<li>Analyze and suggest improvements for public code examples<\/li>\n<li>Compare multiple solutions to the same problem<\/li>\n<\/ul>\n<p>Code review forces you to think critically about code quality, readability, and efficiency.<\/p>\n<h2 id=\"balancing-approach\">Balancing Tutorials with Active Problem Solving<\/h2>\n<p>Despite their limitations, tutorials do have value in the learning process. The key is finding the right balance and using tutorials effectively.<\/p>\n<h3>The Learning Cycle Approach<\/h3>\n<p>Consider adopting a cyclical learning approach:<\/p>\n<ol>\n<li><strong>Concept Introduction<\/strong>: Use tutorials to introduce new concepts and tools<\/li>\n<li><strong>Guided Practice<\/strong>: Follow along with basic examples<\/li>\n<li><strong>Independent Application<\/strong>: Apply the concept to a different problem<\/li>\n<li><strong>Extension and Exploration<\/strong>: Modify and expand on what you&#8217;ve learned<\/li>\n<li><strong>Reflection and Integration<\/strong>: Connect new knowledge with existing skills<\/li>\n<\/ol>\n<p>This cycle ensures that tutorials serve as a starting point rather than the entire learning experience.<\/p>\n<h3>Active Watching Techniques<\/h3>\n<p>When you do use tutorials, engage with them actively:<\/p>\n<ul>\n<li><strong>Predict Next Steps<\/strong>: Pause the tutorial and predict what the instructor will do next<\/li>\n<li><strong>Code First, Watch Later<\/strong>: Try solving the problem yourself before watching the solution<\/li>\n<li><strong>Take Notes<\/strong>: Summarize key concepts in your own words<\/li>\n<li><strong>Ask Questions<\/strong>: Note questions that arise and research them independently<\/li>\n<li><strong>Experiment<\/strong>: Modify the example code to test your understanding<\/li>\n<\/ul>\n<p>These techniques transform passive watching into active learning.<\/p>\n<h3>The 50\/50 Rule<\/h3>\n<p>Consider adopting a 50\/50 rule for your learning time:<\/p>\n<ul>\n<li>50% of your time on instruction (tutorials, books, courses)<\/li>\n<li>50% of your time on application (projects, exercises, problems)<\/li>\n<\/ul>\n<p>As you advance, gradually shift this ratio to favor more application and less instruction.<\/p>\n<h3>Tutorial Selection Criteria<\/h3>\n<p>Not all tutorials are created equal. Look for tutorials that:<\/p>\n<ul>\n<li>Explain the &#8220;why&#8221; behind decisions, not just the &#8220;how&#8221;<\/li>\n<li>Include challenges or exercises beyond the basic examples<\/li>\n<li>Cover common errors and debugging approaches<\/li>\n<li>Discuss alternative implementations and trade-offs<\/li>\n<li>Connect concepts to broader programming principles<\/li>\n<\/ul>\n<p>These higher-quality tutorials provide more transferable knowledge than those focused solely on implementation steps.<\/p>\n<h2 id=\"measuring-progress\">How to Measure Your Progress Beyond Tutorials<\/h2>\n<p>As you shift from tutorial-based learning to more active problem solving, you need new ways to measure your progress.<\/p>\n<h3>Problem Solving Metrics<\/h3>\n<p>Track metrics that reflect problem solving ability:<\/p>\n<ul>\n<li><strong>Time to Solution<\/strong>: How long it takes you to solve new problems<\/li>\n<li><strong>Solution Quality<\/strong>: Code cleanliness, efficiency, and robustness<\/li>\n<li><strong>Independence Level<\/strong>: How much external help you needed<\/li>\n<li><strong>Debugging Efficiency<\/strong>: How quickly you can identify and fix issues<\/li>\n<li><strong>Knowledge Transfer<\/strong>: Ability to apply concepts across different contexts<\/li>\n<\/ul>\n<p>These metrics provide more meaningful feedback than simply counting completed tutorials.<\/p>\n<h3>Portfolio Development<\/h3>\n<p>Build a portfolio of projects that demonstrate your skills:<\/p>\n<ul>\n<li>Complete projects that solve real problems<\/li>\n<li>Contribute to open-source initiatives<\/li>\n<li>Document your problem solving process<\/li>\n<li>Showcase different programming paradigms and technologies<\/li>\n<li>Include refactored projects that demonstrate growth over time<\/li>\n<\/ul>\n<p>A strong portfolio provides concrete evidence of your abilities beyond tutorial completion.<\/p>\n<h3>Peer Feedback and Code Reviews<\/h3>\n<p>Seek feedback from others to gain outside perspective:<\/p>\n<ul>\n<li>Join programming communities and share your work<\/li>\n<li>Participate in pair programming sessions<\/li>\n<li>Submit your code for formal reviews<\/li>\n<li>Engage in programming competitions or hackathons<\/li>\n<li>Contribute to discussions about code quality and best practices<\/li>\n<\/ul>\n<p>External feedback often reveals blind spots in your knowledge and skills.<\/p>\n<h3>Technical Interview Preparation<\/h3>\n<p>Use technical interview questions as a benchmark:<\/p>\n<ul>\n<li>Practice common algorithm and data structure problems<\/li>\n<li>Explain your solutions verbally (simulating an interview)<\/li>\n<li>Analyze time and space complexity of your solutions<\/li>\n<li>Compare your approaches to standard solutions<\/li>\n<li>Time yourself to measure improvement over time<\/li>\n<\/ul>\n<p>Interview-style problems test both conceptual understanding and application skills.<\/p>\n<h3>Teaching and Explanation<\/h3>\n<p>Your ability to teach others reflects your own understanding:<\/p>\n<ul>\n<li>Explain complex concepts to beginners<\/li>\n<li>Create tutorials or blog posts on topics you&#8217;ve learned<\/li>\n<li>Answer questions on forums like Stack Overflow<\/li>\n<li>Mentor less experienced programmers<\/li>\n<li>Present technical topics at meetups or conferences<\/li>\n<\/ul>\n<p>Teaching exposes gaps in your knowledge and deepens your understanding of familiar concepts.<\/p>\n<h2 id=\"conclusion\">Conclusion: Moving Beyond the Tutorial Trap<\/h2>\n<p>The journey from tutorial follower to problem solver is neither quick nor easy, but it&#8217;s essential for becoming an effective programmer. Here&#8217;s a summary of key takeaways:<\/p>\n<ul>\n<li><strong>Recognize the limitations<\/strong> of tutorial-based learning and the illusion of competence it can create<\/li>\n<li><strong>Shift from passive consumption<\/strong> to active engagement with programming concepts<\/li>\n<li><strong>Develop cognitive skills<\/strong> like algorithmic thinking and pattern recognition through deliberate practice<\/li>\n<li><strong>Balance instruction with application<\/strong>, gradually increasing the proportion of independent problem solving<\/li>\n<li><strong>Measure progress<\/strong> through meaningful metrics beyond tutorial completion<\/li>\n<\/ul>\n<p>Remember that struggle is not a sign of failure but an essential part of the learning process. The moments when you&#8217;re stuck, confused, and searching for solutions are precisely when your problem solving skills are developing most rapidly.<\/p>\n<p>As you continue your programming journey, use tutorials as a starting point rather than a destination. They can introduce you to new concepts and technologies, but true mastery comes from applying those concepts to solve novel problems independently.<\/p>\n<p>The programming field rewards problem solvers, not tutorial followers. By shifting your learning approach to emphasize active problem solving, you&#8217;ll develop the skills that truly matter for success as a programmer.<\/p>\n<p>What will you build today that goes beyond following a tutorial?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You&#8217;ve spent countless hours watching coding tutorials. Your YouTube history is filled with &#8220;Learn Python in 10 Hours&#8221; and &#8220;Become&#8230;<\/p>\n","protected":false},"author":1,"featured_media":7377,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-7378","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-problem-solving"],"_links":{"self":[{"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/posts\/7378"}],"collection":[{"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/comments?post=7378"}],"version-history":[{"count":0,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/posts\/7378\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/media\/7377"}],"wp:attachment":[{"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/media?parent=7378"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/categories?post=7378"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/tags?post=7378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}