<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Touheed Khan</title>
    <description>The latest articles on DEV Community by Touheed Khan (@touheedkhan).</description>
    <link>https://dev.to/touheedkhan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F725686%2F31841170-31f0-4c4f-ab89-a114c0a8edf5.jpeg</url>
      <title>DEV Community: Touheed Khan</title>
      <link>https://dev.to/touheedkhan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/touheedkhan"/>
    <language>en</language>
    <item>
      <title>The Python Interview Roadmap: What to Learn, In What Order, Before Someone Asks You About the GIL</title>
      <dc:creator>Touheed Khan</dc:creator>
      <pubDate>Sun, 28 Jun 2026 11:58:04 +0000</pubDate>
      <link>https://dev.to/touheedkhan/the-python-interview-roadmap-what-to-learn-in-what-order-before-someone-asks-you-about-the-gil-38ej</link>
      <guid>https://dev.to/touheedkhan/the-python-interview-roadmap-what-to-learn-in-what-order-before-someone-asks-you-about-the-gil-38ej</guid>
      <description>&lt;p&gt;&lt;em&gt;Everyone "knows Python." Far fewer can explain why &lt;code&gt;a = a + [1]&lt;/code&gt; and &lt;code&gt;a += [1]&lt;/code&gt; aren't the same thing. This is the path from the first group to the second.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Here's the uncomfortable thing about Python interviews: the language is so friendly that it lets you get away with not understanding it for years. You can ship working code, pass code review, and ship more code, all while quietly believing that &lt;code&gt;is&lt;/code&gt; and &lt;code&gt;==&lt;/code&gt; are basically the same and that a default argument of &lt;code&gt;[]&lt;/code&gt; is a perfectly innocent idea.&lt;/p&gt;

&lt;p&gt;Then you sit down across from someone who asks, "What happens when two threads append to the same list?" and the friendliness evaporates.&lt;/p&gt;

&lt;p&gt;The problem usually isn't effort. It's order. People study Python like they're browsing a buffet, grabbing decorators on Monday, async on Tuesday, metaclasses on a caffeine-fueled Wednesday, and somehow never learning what a name actually &lt;em&gt;is&lt;/em&gt;. So here's a roadmap that goes in the order the language was meant to be understood, fundamentals first, party tricks last.&lt;/p&gt;

&lt;p&gt;(If you'd rather click through it than read about it, the whole thing is laid out as an interactive track &lt;a href="https://interview-prep.coderboi.com/roadmap/python" rel="noopener noreferrer"&gt;here&lt;/a&gt;, with progress that fills in as you go. But the reasoning matters more than the clicking, so let's walk it.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 1 — Foundations: the part everyone skips and shouldn't
&lt;/h2&gt;

&lt;p&gt;This is the stage that feels too easy to bother with and quietly decides every other answer you'll give.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fundamentals.&lt;/strong&gt; Names, values, and mutability. Not "variables" — &lt;em&gt;names bound to objects&lt;/em&gt;. Once you genuinely understand that a Python variable is a label on a box and not the box itself, half the language's "weird" behavior stops being weird. The mutable-default-argument trap, the &lt;code&gt;is&lt;/code&gt; vs &lt;code&gt;==&lt;/code&gt; distinction, integer caching, all of it falls out of this one idea.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Structures.&lt;/strong&gt; Lists, dicts, sets, tuples, and the question of &lt;em&gt;when&lt;/em&gt; to reach for each. Dicts being ordered now, sets being unreasonably fast, tuples being the unsung hero of clean code. Interviewers love this because the wrong choice is rarely a bug, just a quiet O(n) where an O(1) was sitting right there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comprehensions &amp;amp; Iteration.&lt;/strong&gt; The iterator protocol is the closest thing Python has to a magic trick you can explain. Generators, lazy evaluation, why a comprehension reads better than a loop, and why &lt;code&gt;for x in thing&lt;/code&gt; works on so many things. Get this and &lt;code&gt;yield&lt;/code&gt; stops being scary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Functions.&lt;/strong&gt; First-class functions, &lt;code&gt;*args&lt;/code&gt;/&lt;code&gt;**kwargs&lt;/code&gt;, closures, scope. The moment functions become values you can pass around, decorators stop being witchcraft and become "a function that takes a function." Which is the whole secret.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a roadmap tempts you to skip this stage because you "already know it," that's exactly the stage to do slowly. The senior-level questions are just these four topics wearing a trench coat.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 2 — Core Language: how a program is actually shaped
&lt;/h2&gt;

&lt;p&gt;Now we move from "what is a value" to "how do I organize ten thousand of them."&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Object-Oriented Programming.&lt;/strong&gt; Classes, inheritance, and the part people fumble: the &lt;strong&gt;MRO&lt;/strong&gt; (method resolution order) and what &lt;code&gt;super()&lt;/code&gt; is &lt;em&gt;really&lt;/em&gt; doing. Spoiler: it's not "call my parent." It's "call the next class in the MRO," which is a very different sentence when diamond inheritance shows up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Errors &amp;amp; Exceptions.&lt;/strong&gt; The exception hierarchy, &lt;code&gt;try/except/else/finally&lt;/code&gt;, and the deeply Pythonic idea that it's &lt;strong&gt;easier to ask forgiveness than permission&lt;/strong&gt;. Knowing &lt;em&gt;when&lt;/em&gt; to catch, when to re-raise, and why a bare &lt;code&gt;except:&lt;/code&gt; is a code smell that interviewers can spot from orbit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modules, Packages &amp;amp; Environments.&lt;/strong&gt; Imports, the dreaded circular import, what &lt;code&gt;if __name__ == "__main__"&lt;/code&gt; is for, and why virtual environments exist. Not glamorous. Extremely common in the "tell me how you'd structure this project" portion where glamour was never the point.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Stage 3 — Idiomatic &amp;amp; Typed Python: writing it like you mean it
&lt;/h2&gt;

&lt;p&gt;This is where you stop writing Python that &lt;em&gt;works&lt;/em&gt; and start writing Python that gets approved without three rounds of "could we make this more Pythonic?"&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Functional Programming.&lt;/strong&gt; &lt;code&gt;map&lt;/code&gt;, &lt;code&gt;filter&lt;/code&gt;, &lt;code&gt;reduce&lt;/code&gt;, and the more interesting question of when a list comprehension is the better answer (usually). &lt;code&gt;functools&lt;/code&gt;, &lt;code&gt;partial&lt;/code&gt;, and treating functions as the composable Lego bricks they are.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Type Hints &amp;amp; Typing.&lt;/strong&gt; Annotations, &lt;code&gt;Optional&lt;/code&gt;, &lt;code&gt;Union&lt;/code&gt;, generics, and the thing that surprises people: type hints don't do &lt;em&gt;anything&lt;/em&gt; at runtime. They're for humans and tools, not the interpreter. Knowing that distinction is a small flex that signals you actually read the docs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standard Library Essentials.&lt;/strong&gt; &lt;code&gt;collections&lt;/code&gt;, &lt;code&gt;itertools&lt;/code&gt;, &lt;code&gt;functools&lt;/code&gt;, &lt;code&gt;dataclasses&lt;/code&gt;, &lt;code&gt;pathlib&lt;/code&gt;. Python ships with an absurd amount of "you don't need a library for that." Reaching for &lt;code&gt;defaultdict&lt;/code&gt; or &lt;code&gt;Counter&lt;/code&gt; at the right moment is the difference between five lines and one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pythonic Idioms.&lt;/strong&gt; Context managers and &lt;code&gt;with&lt;/code&gt;, unpacking, the walrus operator, EAFP, truthiness. The accumulated good taste of the language. Hard to test directly, impossible to fake, instantly visible in how you write a five-line snippet on a whiteboard.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Stage 4 — Advanced &amp;amp; Tooling: the senior-stripe material
&lt;/h2&gt;

&lt;p&gt;The stuff that separates "writes Python" from "would trust them to debug Python at 2 a.m."&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Concurrency &amp;amp; Parallelism.&lt;/strong&gt; Threads, processes, &lt;code&gt;asyncio&lt;/code&gt;, and the &lt;strong&gt;GIL&lt;/strong&gt; — the topic that launches a thousand interview questions. Knowing &lt;em&gt;why&lt;/em&gt; threads don't speed up CPU-bound work in CPython, and what to use instead, is close to a rite of passage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory &amp;amp; Internals.&lt;/strong&gt; Reference counting, garbage collection, how CPython actually runs your bytecode. You won't use this daily. You'll use it precisely when something is leaking memory and everyone else is guessing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing.&lt;/strong&gt; &lt;code&gt;pytest&lt;/code&gt;, fixtures, mocking, parametrization. The skill that quietly tells a hiring manager you've shipped to production before, because people who've been burned write tests and people who haven't write hope.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are two honest gaps even a good roadmap leaves at the edges — &lt;strong&gt;packaging &amp;amp; distribution&lt;/strong&gt; and &lt;strong&gt;performance profiling&lt;/strong&gt; — the topics everybody agrees are important and nobody puts on the critical path. Worth a weekend each, once the spine above is solid.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to actually walk this
&lt;/h2&gt;

&lt;p&gt;A few rules that survive contact with a real deadline:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Top to bottom, no buffet.&lt;/strong&gt; The order isn't decorative. Each stage is the prerequisite for the next one's "hard" questions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Depth in one stack beats a tour of five.&lt;/strong&gt; Stage 1 alone, understood &lt;em&gt;deeply&lt;/em&gt;, answers more interview questions than a skim of all four.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test yourself before someone else does.&lt;/strong&gt; You don't know a topic until you can answer a question on it cold. Reading an answer and generating one are different muscles.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That last point is the whole reason the roadmap exists as something you can &lt;em&gt;click&lt;/em&gt; rather than just read: each topic links straight to its questions with full answers, you mark what you've genuinely got down, and the path fills in so you can see — honestly — where the soft spots still are. There are flashcards for the recall drills and quizzes for the cold-answer practice, but you can ignore all of that and just use the list as a study order. The order is the gift. The buttons are a bonus.&lt;/p&gt;

&lt;p&gt;You can start at the top &lt;a href="https://interview-prep.coderboi.com/roadmap/python" rel="noopener noreferrer"&gt;here&lt;/a&gt;. Or don't, and learn about the GIL the hard way, in a room, with a stranger watching. Your call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep reading
&lt;/h2&gt;

&lt;p&gt;If a stage above poked at a soft spot, here's where to go next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://interview-prep.coderboi.com/python" rel="noopener noreferrer"&gt;All Python interview questions&lt;/a&gt; — the full set, organized by topic, each with a written answer and code.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://interview-prep.coderboi.com/blog/python-gil-threading-explained" rel="noopener noreferrer"&gt;Python Threading and the GIL, explained&lt;/a&gt; — the deep version of that Stage 4 cliffhanger.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://interview-prep.coderboi.com/blog/python-asyncio-async-await-explained" rel="noopener noreferrer"&gt;asyncio, async/await explained&lt;/a&gt; — the other half of the concurrency conversation.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://interview-prep.coderboi.com/blog/python-cpython-execution-model-explained" rel="noopener noreferrer"&gt;How CPython actually runs your code&lt;/a&gt; — for when "it's interpreted" stops being a good enough answer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And if Python's just the start of your stack, FastAPI has the same treatment — a guided path and the questions to back it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://interview-prep.coderboi.com/roadmap/fastapi" rel="noopener noreferrer"&gt;FastAPI interview roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://interview-prep.coderboi.com/fastapi" rel="noopener noreferrer"&gt;FastAPI interview questions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>fastapi</category>
      <category>ai</category>
      <category>interview</category>
    </item>
    <item>
      <title>We Pulled Together 4,628 Technical Interview Questions Across 8 Stacks. Here's What the Collection Looks Like.</title>
      <dc:creator>Touheed Khan</dc:creator>
      <pubDate>Sun, 28 Jun 2026 11:27:04 +0000</pubDate>
      <link>https://dev.to/touheedkhan/we-pulled-together-4628-technical-interview-questions-across-8-stacks-heres-what-the-collection-4383</link>
      <guid>https://dev.to/touheedkhan/we-pulled-together-4628-technical-interview-questions-across-8-stacks-heres-what-the-collection-4383</guid>
      <description>&lt;p&gt;&lt;em&gt;We built our prep library by working through established syllabi, official docs, and the topics that keep coming up in technical interviews. Then we counted the whole thing. Here's the honest breakdown — and how we'd use it.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Building an interview-prep library is a strange exercise: you spend months deciding what's worth knowing, and you never step back to look at the shape of what you've made. So we did. We counted every question we've curated, where it sits, and how hard we rated it.&lt;/p&gt;

&lt;p&gt;A note up front, because it matters: &lt;strong&gt;this is a breakdown of our collection, not a survey of real interviews.&lt;/strong&gt; We didn't scrape thousands of interview transcripts. We assembled these questions the way a good study guide gets made — from public syllabi (our SQL set, for example, follows the &lt;a href="https://roadmap.sh/sql" rel="noopener noreferrer"&gt;roadmap.sh&lt;/a&gt; outline), official language and framework docs, and the topics that recur across technical interviews. So the numbers below describe &lt;em&gt;what we chose to cover and how we tagged it&lt;/em&gt; — useful as a study map, not as a statistical claim about the industry.&lt;/p&gt;

&lt;p&gt;With that said, here's what 4,628 questions look like.&lt;/p&gt;

&lt;h2&gt;
  
  
  The shape of the collection
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;4,628 questions&lt;/strong&gt;, each with a full written answer and code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;265 topic pages&lt;/strong&gt; (e.g. "Python decorators," "SQL window functions")&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;8 stacks&lt;/strong&gt;: Python, Java, JavaScript, React, SQL, Spring Boot, FastAPI, .NET&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it breaks down by difficulty
&lt;/h2&gt;

&lt;p&gt;Every question carries a difficulty tag — our own editorial call, applied consistently across the library:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Difficulty&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;~55%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hard&lt;/td&gt;
&lt;td&gt;~23%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;~22%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The middle is where most of the library lives, and that matches how we think about prep. &lt;strong&gt;Easy questions are recall&lt;/strong&gt; — you know that &lt;code&gt;is&lt;/code&gt; compares identity and &lt;code&gt;==&lt;/code&gt; compares value, or you don't. &lt;strong&gt;Hard questions are stretch&lt;/strong&gt; — nice to nail, rarely the thing that sinks you. The medium tier is the working part of the exam: &lt;em&gt;"walk me through how the event loop schedules this,"&lt;/em&gt; &lt;em&gt;"why does this &lt;code&gt;GROUP BY&lt;/code&gt; return the wrong count."&lt;/em&gt; You can reason these out, but only if you understand the mechanism. That's our opinion on where to spend study time — offered as a study heuristic, not a law.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the questions cluster, by stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Stack&lt;/th&gt;
&lt;th&gt;Questions&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;797&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java&lt;/td&gt;
&lt;td&gt;778&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript&lt;/td&gt;
&lt;td&gt;744&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;React&lt;/td&gt;
&lt;td&gt;670&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.NET&lt;/td&gt;
&lt;td&gt;450&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spring Boot&lt;/td&gt;
&lt;td&gt;428&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL&lt;/td&gt;
&lt;td&gt;417&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FastAPI&lt;/td&gt;
&lt;td&gt;344&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two honest forces drive these numbers, and it's worth separating them:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Genuine surface area.&lt;/strong&gt; Python, Java, and JavaScript are decades-old languages with deep, well-documented sets of "gotchas," so there's simply more worth asking about.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How far along our coverage is.&lt;/strong&gt; Python and Java are our most built-out stacks; FastAPI is one of our newest. So a smaller count partly reflects a younger, narrower syllabus — not that the stack is "easy."&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We're calling that out because the alternative — inventing a tidy story about why SQL "should" have fewer questions — would be dishonest. The counts will shift as we keep building, and we'll update this post when they do.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we'd actually use this map
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Spend most of your time in the medium tier.&lt;/strong&gt; It's the bulk of the library and, in our experience, the bulk of the interview.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Go deep on one stack, not wide on five.&lt;/strong&gt; 797 Python questions isn't a weekend. Depth in your primary language beats thin coverage everywhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Treat narrow stacks as high-stakes.&lt;/strong&gt; When a topic like SQL has a small surface area, every question carries more weight — there's nowhere to hide on a join.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  It's not just a list of questions
&lt;/h2&gt;

&lt;p&gt;A pile of 4,628 questions is a reference, not a study plan. So we wrapped the collection in three things that turn it into one:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Roadmaps&lt;/strong&gt; — every stack has an ordered path from fundamentals to advanced, so you always know what to study &lt;em&gt;next&lt;/em&gt; instead of staring at a wall of topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flashcards&lt;/strong&gt; — mark any answer "known" and the concept drops into a per-stack deck you can drill for fast recall.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quizzes&lt;/strong&gt; — test yourself on a stack before the interviewer does, and see exactly where the gaps are.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Progress is tracked per device as you mark answers known, so the roadmap fills in as you go and the "continue" button always points at your next topic. Same 4,628 questions — three different ways to work through them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Browse the actual questions
&lt;/h2&gt;

&lt;p&gt;Everything's organized by stack, each linking straight to the answer with code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/python/interview-questions"&gt;Python interview questions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/java/interview-questions"&gt;Java interview questions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/javascript/interview-questions"&gt;JavaScript interview questions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/react/interview-questions"&gt;React interview questions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/sql/interview-questions"&gt;SQL interview questions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/springboot/interview-questions"&gt;Spring Boot interview questions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/fastapi/interview-questions"&gt;FastAPI interview questions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/dotnet/interview-questions"&gt;.NET interview questions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Follow a roadmap instead
&lt;/h2&gt;

&lt;p&gt;Prefer a guided path over a question list? Each roadmap orders the same questions from fundamentals to advanced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/roadmap/python"&gt;Python roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/roadmap/java"&gt;Java roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/roadmap/javascript"&gt;JavaScript roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/roadmap/react"&gt;React roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/roadmap/sql"&gt;SQL roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/roadmap/springboot"&gt;Spring Boot roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/roadmap/fastapi"&gt;FastAPI roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/roadmap/dotnet"&gt;.NET roadmap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We'll re-run this as the library grows. Curious whether the ~55% medium split holds once we're past 10,000 questions.&lt;/p&gt;

</description>
      <category>career</category>
      <category>interview</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
