{"id":7750,"date":"2025-03-06T19:18:22","date_gmt":"2025-03-06T19:18:22","guid":{"rendered":"https:\/\/algocademy.com\/blog\/why-you-cant-learn-from-other-peoples-solutions\/"},"modified":"2025-03-17T09:01:46","modified_gmt":"2025-03-17T09:01:46","slug":"why-you-cant-learn-from-other-peoples-solutions","status":"publish","type":"post","link":"https:\/\/algocademy.com\/blog\/why-you-cant-learn-from-other-peoples-solutions\/","title":{"rendered":"Why You Can&#8217;t Learn From Other People&#8217;s Solutions"},"content":{"rendered":"<div class=\"tldr\">\n<div class=\"tldr\">\n<h3>TL;DR: Why You Can&#8217;t Learn From Other People&#8217;s Solutions<\/h3>\n<p>Looking at solutions when you&#8217;re stuck creates an &#8220;illusion of competence&#8221; where you think you understand more than you actually do. Reading code uses recognition memory, but solving problems requires recall memory and deeper mental models. Productive struggle is essential for building lasting programming skills &#8211; when you work through challenges, your brain forms stronger neural connections. Instead of peeking at solutions, use structured hints, time-box your struggles, explain problems out loud, or review just enough to get unstuck. The most effective approach combines independent problem-solving with spaced repetition. While studying solutions has its place (after solving independently or learning new concepts), true algorithmic mastery comes from developing your own problem-solving abilities through persistent practice.<\/p>\n<\/div>\n<\/div>\n<p>In the world of programming and problem solving, there\u2019s a temptation that almost every learner faces: looking at someone else\u2019s solution when you\u2019re stuck. It seems logical. After all, isn\u2019t that how we learn many things in life? By observing others who have already mastered the skill?<\/p>\n<p>But when it comes to algorithmic problem solving and coding challenges, this approach often backfires in subtle yet significant ways. At AlgoCademy, we\u2019ve observed thousands of learners on their journey from beginner programmers to successful technical interview candidates at top tech companies. What we\u2019ve consistently found is that those who truly excel develop their skills through struggle, not shortcuts.<\/p>\n<p>In this article, we\u2019ll explore why simply studying other people\u2019s solutions doesn\u2019t lead to the deep learning and problem solving abilities needed to become an exceptional programmer. We\u2019ll also provide alternative approaches that actually work for building lasting skills.<\/p>\n<h2>The False Promise of Learning by Solution<\/h2>\n<p>Let\u2019s start with a scenario that might sound familiar: You\u2019re working on a challenging algorithm problem. After 30 minutes of struggle, you feel stuck. Your instinct kicks in: \u201cLet me just see how others solved this.\u201d<\/p>\n<p>You find a clean, elegant solution online. It makes perfect sense as you read it. You understand each line. You even explain it to yourself. \u201cWow, that was so simple! I get it now,\u201d you think.<\/p>\n<p>But here\u2019s the crucial question: Two weeks later, when faced with a similar but slightly different problem, will you be able to solve it independently?<\/p>\n<p>For most people, the answer is no. And understanding why this happens is key to improving how you learn.<\/p>\n<h2>The Illusion of Competence<\/h2>\n<p>When you read someone else\u2019s solution, you experience what psychologists call the \u201cillusion of competence.\u201d This cognitive bias tricks your brain into thinking you understand the material more deeply than you actually do.<\/p>\n<p>It\u2019s like watching a professional chef prepare a complex dish. Everything looks straightforward as you observe. \u201cI could do that,\u201d you think. But when you\u2019re alone in your kitchen with the same ingredients, you discover there were dozens of small decisions and techniques that weren\u2019t obvious from just watching.<\/p>\n<p>Programming works the same way. Reading code activates different neural pathways than producing code. Understanding someone else\u2019s solution engages your recognition memory, which is much easier to activate than the recall memory and problem solving abilities needed to create a solution from scratch.<\/p>\n<h2>The Missing Mental Models<\/h2>\n<p>When you jump straight to a solution, you miss building the mental models that are essential for problem solving. These models are the frameworks your brain constructs to understand and navigate complex domains.<\/p>\n<p>Consider a classic algorithmic challenge like finding all permutations of a string. A concise recursive solution might look elegant and obvious:<\/p>\n<pre><code>function permutations(str) {\n  if (str.length &lt;= 1) return [str];\n  \n  const result = [];\n  for (let i = 0; i &lt; str.length; i++) {\n    const current = str[i];\n    const remaining = str.slice(0, i) + str.slice(i + 1);\n    \n    for (const perm of permutations(remaining)) {\n      result.push(current + perm);\n    }\n  }\n  \n  return result;\n}<\/code><\/pre>\n<p>Reading this solution might make perfect sense. But developing the mental model that leads to this approach\u2014understanding how to break a permutation problem into smaller subproblems, recognizing the recursive pattern, visualizing the call stack\u2014these crucial mental structures only form through the struggle of attempting to solve the problem yourself.<\/p>\n<h2>The Crucial Role of Productive Struggle<\/h2>\n<p>Cognitive science research consistently shows that learning happens most effectively during periods of productive struggle. When you grapple with a problem just beyond your current abilities, your brain forms stronger neural connections.<\/p>\n<p>This process, sometimes called \u201cdesirable difficulty,\u201d is what transforms information from short-term understanding into long-term learning. It\u2019s the difference between recognizing a solution and being able to produce one.<\/p>\n<p>Think about how children learn to walk. They don\u2019t watch walking tutorials and then immediately stride confidently across the room. They fall repeatedly, adjust, struggle, and gradually build the neural pathways needed for this complex motor skill.<\/p>\n<p>Programming problem solving works similarly. The moments of confusion, the wrong approaches, the debugging\u2014these aren\u2019t wasted time. They\u2019re essential components of building robust mental models.<\/p>\n<h2>The Technical Interview Reality<\/h2>\n<p>If you\u2019re preparing for technical interviews at major tech companies, the stakes for genuine learning are even higher. In these high-pressure situations, the illusion of competence quickly dissolves.<\/p>\n<p>Consider this scenario: You\u2019ve \u201cstudied\u201d dozens of LeetCode problems by reading solutions. During your interview at a top tech company, the interviewer presents a problem that seems familiar. You try to recall the solution you read, but under pressure, you realize you don\u2019t truly understand the underlying principles. You struggle to adapt the memorized approach to this slightly different context.<\/p>\n<p>Contrast this with someone who solved fewer problems but wrestled with each one independently. They\u2019ve built robust mental models that allow them to approach novel problems with confidence, even under pressure.<\/p>\n<h2>Solution Reading vs. Solution Construction<\/h2>\n<p>The core issue is the fundamental difference between solution reading and solution construction:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Solution Reading<\/th>\n<th>Solution Construction<\/th>\n<\/tr>\n<tr>\n<td>Passive<\/td>\n<td>Active<\/td>\n<\/tr>\n<tr>\n<td>Recognition memory<\/td>\n<td>Recall memory<\/td>\n<\/tr>\n<tr>\n<td>Follows a predetermined path<\/td>\n<td>Explores multiple paths<\/td>\n<\/tr>\n<tr>\n<td>Skips dead ends<\/td>\n<td>Learns from dead ends<\/td>\n<\/tr>\n<tr>\n<td>Appears efficient<\/td>\n<td>Appears inefficient but builds stronger foundations<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>This distinction explains why so many programmers can read and understand complex code but struggle to produce solutions independently. They\u2019ve optimized for the wrong skill.<\/p>\n<h2>The Hidden Cost of Solution Peeking<\/h2>\n<p>Beyond the illusion of competence, there\u2019s another subtle cost to regularly checking solutions: it trains you to give up too easily.<\/p>\n<p>Every time you hit a roadblock and immediately look at a solution, you\u2019re reinforcing a pattern of behavior that says, \u201cWhen things get difficult, seek the answer externally rather than persisting.\u201d<\/p>\n<p>Over time, this habit lowers your frustration tolerance and problem solving stamina\u2014qualities that are essential for tackling complex programming challenges in the real world, where there might not be a solution to peek at.<\/p>\n<p>Professional software engineers often spend days working through difficult problems. The ability to persist through confusion and uncertainty is as valuable as technical knowledge itself.<\/p>\n<h2>When Learning Plateaus: A Common Pattern<\/h2>\n<p>Many programmers experience a peculiar learning plateau that stems directly from solution-checking habits. Their progress follows a predictable pattern:<\/p>\n<ol>\n<li>Initial rapid progress through basic concepts<\/li>\n<li>Increasing challenge as problems become more complex<\/li>\n<li>Growing reliance on looking at solutions when stuck<\/li>\n<li>Apparent continued progress (completing more problems)<\/li>\n<li>A sudden plateau when faced with novel problems that require independent thinking<\/li>\n<\/ol>\n<p>This plateau is particularly frustrating because it often comes after investing significant time in study. The programmer has \u201ccompleted\u201d many problems but hasn\u2019t developed the independent problem solving ability they need.<\/p>\n<h2>The Memorization Trap<\/h2>\n<p>When you frequently read solutions before solving problems yourself, you may fall into the \u201cmemorization trap\u201d\u2014attempting to memorize solutions to specific problem types rather than understanding the underlying principles.<\/p>\n<p>This approach might seem to work initially, especially for common problem patterns. You might think, \u201cThis is a sliding window problem, so I\u2019ll apply the sliding window template I memorized.\u201d<\/p>\n<p>But algorithmic problem solving isn\u2019t about memorizing templates. It\u2019s about developing the ability to analyze problems, recognize patterns, and construct appropriate solutions from first principles.<\/p>\n<p>Real-world programming and technical interviews rarely present problems that exactly match templates. They test your ability to adapt and combine concepts, which memorization doesn\u2019t prepare you for.<\/p>\n<h2>Better Alternatives to Solution Peeking<\/h2>\n<p>If looking at solutions isn\u2019t effective, what should you do when you\u2019re stuck? Here are more productive approaches:<\/p>\n<h3>1. Structured Hints Instead of Complete Solutions<\/h3>\n<p>Rather than jumping to a complete solution, seek out or create a system of progressive hints. These guide your thinking without giving away the entire approach.<\/p>\n<p>Good hints might include:<\/p>\n<ul>\n<li>What data structure would be most appropriate here?<\/li>\n<li>Can you break this problem into smaller subproblems?<\/li>\n<li>Is there a specific algorithm pattern that applies?<\/li>\n<\/ul>\n<p>This approach keeps you in the driver\u2019s seat of problem solving while providing just enough guidance to move forward.<\/p>\n<h3>2. Time-Boxing Your Struggle<\/h3>\n<p>Set a reasonable time limit for struggling with a problem before seeking help. This might be 30 minutes for simpler problems or several hours for complex ones.<\/p>\n<p>During this time, fully commit to solving the problem independently. Document your approaches, even the failed ones. This practice builds problem solving stamina while ensuring you don\u2019t get permanently stuck.<\/p>\n<h3>3. Rubber Duck Debugging<\/h3>\n<p>Sometimes, the best way past an obstacle is to explain your problem to someone else\u2014or something else. The practice of explaining a problem out loud, even to an inanimate object like a rubber duck, often reveals insights you missed while keeping the solution process active rather than passive.<\/p>\n<p>Try articulating:<\/p>\n<ul>\n<li>What you\u2019re trying to accomplish<\/li>\n<li>The approaches you\u2019ve tried<\/li>\n<li>Why you think they didn\u2019t work<\/li>\n<li>What you\u2019re considering trying next<\/li>\n<\/ul>\n<p>This verbalization process often uncovers logical gaps or new perspectives.<\/p>\n<h3>4. Partial Solution Review<\/h3>\n<p>If you must look at a solution, try reviewing only enough to get unstuck on your specific obstacle, then return to solving the problem independently.<\/p>\n<p>For example, if you\u2019re struggling with how to efficiently check for duplicates in an array, you might look up just that specific technique rather than a complete solution to your broader problem.<\/p>\n<h3>5. Post-Solution Reflection<\/h3>\n<p>After completing a problem (whether with or without help), take time to reflect on the solution process. Ask yourself:<\/p>\n<ul>\n<li>What was the key insight needed to solve this problem?<\/li>\n<li>What patterns or techniques were used that I could apply elsewhere?<\/li>\n<li>Where specifically did I get stuck, and why?<\/li>\n<li>How could I approach a similar problem differently next time?<\/li>\n<\/ul>\n<p>This reflection transforms even solution-assisted problems into learning opportunities.<\/p>\n<h2>The Spaced Repetition Approach<\/h2>\n<p>One of the most effective techniques for building lasting problem solving skills combines the principles above with spaced repetition. Here\u2019s how it works:<\/p>\n<ol>\n<li>Attempt to solve a problem completely independently.<\/li>\n<li>If you succeed, schedule to revisit a similar problem in 1-2 weeks.<\/li>\n<li>If you get stuck, use the structured hint approach, only looking at a solution as a last resort.<\/li>\n<li>Regardless of whether you solved it independently, schedule to solve the exact same problem again in 2-3 days, without referring to any notes or previous solutions.<\/li>\n<li>If you struggle again, repeat the process. If you solve it easily, schedule a more challenging variation for a week later.<\/li>\n<\/ol>\n<p>This approach leverages the psychological spacing effect, which shows that information learned and recalled across multiple sessions with gaps between them forms stronger, more durable neural pathways.<\/p>\n<h2>Real Examples: The Difference in Approaches<\/h2>\n<p>Let\u2019s examine how these different learning approaches play out with a common interview problem: finding the longest substring without repeating characters.<\/p>\n<h3>Approach 1: Solution Peeking<\/h3>\n<p>A learner reads this solution:<\/p>\n<pre><code>function lengthOfLongestSubstring(s) {\n  let maxLength = 0;\n  let start = 0;\n  const charMap = new Map();\n  \n  for (let end = 0; end &lt; s.length; end++) {\n    const currentChar = s[end];\n    \n    if (charMap.has(currentChar) &amp;&amp; charMap.get(currentChar) &gt;= start) {\n      start = charMap.get(currentChar) + 1;\n    }\n    \n    charMap.set(currentChar, end);\n    maxLength = Math.max(maxLength, end - start + 1);\n  }\n  \n  return maxLength;\n}<\/code><\/pre>\n<p>They understand it conceptually: \u201cWe use a sliding window approach with a hashmap to track character positions. When we find a duplicate, we move the start pointer past the previous occurrence.\u201d<\/p>\n<p>But two weeks later, when asked to solve a similar problem about finding the longest substring with at most K distinct characters, they struggle to adapt the approach because they didn\u2019t develop the underlying mental model.<\/p>\n<h3>Approach 2: Structured Learning<\/h3>\n<p>A different learner tackles the same problem:<\/p>\n<ol>\n<li>They spend 20 minutes trying different approaches, including a naive solution that checks all substrings (which is too slow).<\/li>\n<li>They get stuck and use a hint: \u201cCould you solve this in a single pass through the string?\u201d<\/li>\n<li>After more thought, they realize they need to track character positions and only need to consider substrings ending at the current position.<\/li>\n<li>They develop a sliding window approach with a hashmap, working through several edge cases.<\/li>\n<li>They revisit the problem a week later, reconstructing the solution from their understanding of the pattern.<\/li>\n<\/ol>\n<p>When later faced with the K-distinct characters problem, they recognize it as a variation of the sliding window pattern they\u2019ve internalized and can adapt their approach accordingly.<\/p>\n<h2>Common Objections and Responses<\/h2>\n<p>Let\u2019s address some common objections to the \u201cstruggle first\u201d approach:<\/p>\n<h3>\u201cBut I learn better by example!\u201d<\/h3>\n<p>While examples are valuable for learning, there\u2019s a crucial difference between using examples to understand concepts and skipping the problem solving process entirely. The most effective approach often involves:<\/p>\n<ol>\n<li>Learning conceptual fundamentals with examples<\/li>\n<li>Attempting problems independently<\/li>\n<li>Reviewing different solution approaches after you\u2019ve developed your own<\/li>\n<\/ol>\n<p>This sequence preserves the cognitive benefits of struggle while still leveraging the power of examples.<\/p>\n<h3>\u201cI don\u2019t have time to spend hours on each problem!\u201d<\/h3>\n<p>It\u2019s true that time is limited, but consider this: spending three hours deeply engaging with one problem often provides more lasting learning than skimming through solutions to five problems in the same time.<\/p>\n<p>Quality trumps quantity in algorithmic learning. A smaller number of thoroughly understood problems creates more transferable skills than a larger number of superficially \u201ccompleted\u201d ones.<\/p>\n<h3>\u201cSome problems are just too difficult for my current level!\u201d<\/h3>\n<p>This is valid. Not every problem is appropriate for independent solving at every skill level. The key is finding problems within your \u201czone of proximal development\u201d\u2014challenging enough to promote growth but not so difficult that productive struggle turns into unproductive frustration.<\/p>\n<p>If a problem is truly beyond your current capabilities, look for simpler related problems to build the necessary foundational skills.<\/p>\n<h2>When It IS Appropriate to Study Solutions<\/h2>\n<p>While we\u2019ve emphasized the limitations of solution-reading as a primary learning method, there are legitimate situations where studying others\u2019 solutions is valuable:<\/p>\n<h3>1. After Solving a Problem Independently<\/h3>\n<p>Once you\u2019ve successfully solved a problem on your own, reviewing alternative solutions can expose you to more elegant or efficient approaches. This comparative analysis deepens your understanding without short-circuiting the problem solving process.<\/p>\n<h3>2. Learning Entirely New Concepts<\/h3>\n<p>When encountering algorithm patterns or data structures you\u2019ve never seen before (like dynamic programming for a beginner), studying example solutions alongside explanations can provide necessary context before you attempt similar problems.<\/p>\n<h3>3. Breaking Through Persistent Roadblocks<\/h3>\n<p>If you\u2019ve made multiple genuine attempts at a problem over several sessions and remain completely stuck, reviewing a partial solution or high-level approach may be necessary to continue making progress.<\/p>\n<h3>4. Reverse Engineering for Pattern Recognition<\/h3>\n<p>Occasionally studying solutions to identify common patterns across problem types can help you recognize these patterns in future problems. The key is to study the pattern abstractly rather than memorizing specific implementations.<\/p>\n<h2>Building a Sustainable Learning Practice<\/h2>\n<p>Based on the principles we\u2019ve discussed, here\u2019s a framework for building a sustainable practice that develops genuine problem solving abilities:<\/p>\n<h3>1. Establish Clear Time Boundaries<\/h3>\n<p>Decide in advance how long you\u2019ll work on a problem before seeking hints or solutions. This prevents both premature solution-checking and unproductive frustration.<\/p>\n<h3>2. Document Your Problem Solving Process<\/h3>\n<p>Keep a journal of your approaches, including:<\/p>\n<ul>\n<li>Your initial understanding of the problem<\/li>\n<li>Approaches you considered and why<\/li>\n<li>Specific obstacles you encountered<\/li>\n<li>Insights that led to breakthroughs<\/li>\n<\/ul>\n<p>This documentation helps reinforce learning and reveals patterns in your problem solving process over time.<\/p>\n<h3>3. Build a Personal Hint System<\/h3>\n<p>Create or collect graduated hints for problem types you\u2019re studying. These might range from gentle nudges (\u201cConsider using a hash table\u201d) to more specific guidance (\u201cTry tracking the last position of each character\u201d).<\/p>\n<h3>4. Implement Deliberate Review<\/h3>\n<p>Schedule regular review sessions where you revisit problems you\u2019ve previously solved. Attempt to solve them from scratch, then compare your new solution to your previous one.<\/p>\n<h3>5. Join a Learning Community<\/h3>\n<p>Connect with other learners who share your commitment to deep learning. Explaining your approaches to others and seeing how they tackle problems expands your thinking without short-circuiting the problem solving process.<\/p>\n<h2>The Path to Algorithmic Mastery<\/h2>\n<p>Becoming proficient at algorithmic problem solving isn\u2019t about accumulating knowledge of solutions. It\u2019s about developing the mental models and problem solving frameworks that allow you to approach novel challenges with confidence.<\/p>\n<p>The most successful engineers we\u2019ve worked with at AlgoCademy share a common trait: they embrace the productive struggle of problem solving rather than seeking shortcuts. They understand that the moments of confusion and breakthrough are precisely where the most valuable learning happens.<\/p>\n<p>As you continue your learning journey, remember that your goal isn\u2019t just to solve problems\u2014it\u2019s to become a problem solver. And that transformation happens through the challenges you overcome, not the solutions you consume.<\/p>\n<h2>Practical Next Steps<\/h2>\n<p>If you\u2019re convinced of the value of productive struggle but aren\u2019t sure how to implement it in your learning routine, here are concrete next steps:<\/p>\n<ol>\n<li><strong>Choose a problem slightly above your current level<\/strong>. Set a timer for 30 minutes and commit to working on it without looking at hints or solutions during that time.<\/li>\n<li><strong>Write down every approach you try<\/strong>, even the ones that don\u2019t work. Document why you think they failed.<\/li>\n<li><strong>If you solve it<\/strong>, write an explanation of your solution as if teaching it to someone else. Then look at alternative solutions to compare approaches.<\/li>\n<li><strong>If you don\u2019t solve it after your time limit<\/strong>, write down specific questions or points of confusion. Seek out targeted hints rather than complete solutions.<\/li>\n<li><strong>Schedule a time to revisit the exact same problem<\/strong> in 2-3 days, attempting it from scratch.<\/li>\n<\/ol>\n<p>This deliberate practice approach might feel slower initially, but the depth of understanding and problem solving ability you\u2019ll develop will serve you far better in the long run than collecting superficial exposure to many solutions.<\/p>\n<h2>Conclusion<\/h2>\n<p>The path to programming mastery is not through consuming other people\u2019s solutions, but through developing your own problem solving abilities through persistent, thoughtful practice.<\/p>\n<p>While it might be tempting to take shortcuts when learning algorithms and data structures, the research is clear: productive struggle is not wasted time\u2014it\u2019s the essence of effective learning. By embracing this process, you build not just knowledge of specific solutions, but the far more valuable ability to solve novel problems independently.<\/p>\n<p>Remember that your goal in studying algorithms isn\u2019t just to pass interviews or complete assignments\u2014it\u2019s to develop thinking patterns that will serve you throughout your programming career. And those patterns emerge most strongly through the challenges you overcome yourself, not the solutions you borrow from others.<\/p>\n<p>The next time you feel stuck on a problem and your finger hovers over that \u201cView Solution\u201d button, ask yourself: Am I looking for understanding, or am I looking for an answer? The difference between these two intentions might just determine the trajectory of your growth as a programmer.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>TL;DR: Why You Can&#8217;t Learn From Other People&#8217;s Solutions Looking at solutions when you&#8217;re stuck creates an &#8220;illusion of competence&#8221;&#8230;<\/p>\n","protected":false},"author":1,"featured_media":7749,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-7750","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\/7750"}],"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=7750"}],"version-history":[{"count":2,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/posts\/7750\/revisions"}],"predecessor-version":[{"id":7774,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/posts\/7750\/revisions\/7774"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/media\/7749"}],"wp:attachment":[{"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/media?parent=7750"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/categories?post=7750"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/tags?post=7750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}