| 1 | What are generics in C#, and what specific problems do they solve compared to writing type-specific code? C# › Generics | C# | Generics | Intermediate |
| 2 | What are generics and why use them? C# › Generics | C# | Generics | Beginner |
| 3 | What problem do generics solve compared to using 'any' for a reusable function? TypeScript › Generics | TypeScript | Generics | Beginner |
| 4 | What problem do generics solve compared to writing a method or class that accepts 'object'? C# › Generics | C# | Generics | Beginner |
| 5 | What problem do generics solve compared to using raw types (like a pre-Java-5 List without a type parameter), and how do they improve compile-time type safety? Java › Generics | Java | Generics | Beginner |
| 6 | What is covariance and contravariance in generics? C# › Generics | C# | Generics | Intermediate |
| 7 | What is a raw type in Java, and why does the compiler still permit using them (with an unchecked warning) despite generics having been available since Java 5? Java › Generics | Java | Generics | Intermediate |
| 8 | How are generics implemented for value types vs reference types in the CLR? C# › Generics | C# | Generics | Advanced |
| 9 | How do generics interact with arrays, and why does the JDK itself sometimes use an unsafe cast (like in ArrayList's internal implementation) to work around the inability to create generic arrays directly? Java › Generics | Java | Generics | Advanced |
| 10 | How does variance (covariance, contravariance, invariance) apply differently to Java arrays versus Java generics, and what practical safety trade-off does this design difference represent? Java › Generics | Java | Generics | Advanced |
| 11 | What are generics in Dart, and how does declaring a collection like List<String> let the Dart compiler catch type related mistakes before your code even runs? Flutter › Dart Collections & Generics | Flutter | Dart Collections & Generics | Beginner |
| 12 | How does exception handling interact with generics and type erasure, specifically regarding why you cannot catch a generic type parameter as an exception type (catch (T e))? Java › Exceptions | Java | Exceptions | Advanced |
| 13 | How do you declare a generic type parameter on a function, and how do you explicitly specify it when calling? TypeScript › Generics | TypeScript | Generics | Beginner |
| 14 | How do you declare a generic class with a type parameter, and how do you instantiate it with a specific type? C# › Generics | C# | Generics | Beginner |
| 15 | What are generic constraints and why are they needed? C# › Generics | C# | Generics | Intermediate |
| 16 | Why can't you use operators like + directly on an unconstrained generic T? C# › Generics | C# | Generics | Intermediate |
| 17 | How do you constrain a generic type parameter using 'extends' to require it has certain properties? TypeScript › Generics | TypeScript | Generics | Intermediate |
| 18 | How do you use a generic type parameter to constrain a second parameter to be a valid key of the first? TypeScript › Generics | TypeScript | Generics | Intermediate |
| 19 | How do you provide a default type for a generic parameter, similar to a default function parameter? TypeScript › Generics | TypeScript | Generics | Intermediate |
| 20 | How do generic type constraints ('where T : ...') restrict what types can be used, and what are the common constraint kinds? C# › Generics | C# | Generics | Intermediate |
| 21 | How does generic type inference work when calling a generic method, and when do you need to specify the type argument explicitly? C# › Generics | C# | Generics | Intermediate |
| 22 | What is covariance ('out T') and contravariance ('in T') in generic interfaces, and how does IEnumerable<out T> demonstrate covariance? C# › Generics | C# | Generics | Intermediate |
| 23 | What is type erasure, and how does it explain why generic type information is unavailable at runtime (e.g., why you can't do `if (obj instanceof List<String>)`)? Java › Generics | Java | Generics | Intermediate |
| 24 | How do you write a generic method (as opposed to a generic class), and how does the compiler infer the type parameter from the arguments passed at a call site? Java › Generics | Java | Generics | Intermediate |
| 25 | What is an unbounded wildcard (List<?>), and when is it more appropriate to use than a bounded generic method with a type parameter <T>? Java › Generics | Java | Generics | Intermediate |
| 26 | How would you implement a generic Stack<T> class from scratch, demonstrating how a self-contained generic data structure is typically structured? Java › Generics | Java | Generics | Intermediate |
| 27 | How would you use a Class<T> token parameter to work around type erasure when a generic method genuinely needs runtime access to the actual type argument, such as for deserialization or reflection-based instantiation? Java › Generics | Java | Generics | Intermediate |
| 28 | How would you write a generic interface (like a custom Repository<T, ID> pattern common in data-access layers) and implement it for a specific entity type? Java › Generics | Java | Generics | Intermediate |
| 29 | What problem do generic math / static abstract interface members solve? C# › Generics | C# | Generics | Advanced |
| 30 | How does generic type inference work across multiple arguments, and what happens when they conflict? TypeScript › Generics | TypeScript | Generics | Advanced |
| 31 | How do you write a generic class, and how do its type parameters interact with its constructor and methods? TypeScript › Generics | TypeScript | Generics | Advanced |
| 32 | How would you write a generic 'pick' utility function that mimics the built-in Pick<T, K> utility type, but as a runtime function with matching compile-time types? TypeScript › Generics | TypeScript | Generics | Advanced |
| 33 | What does 'variance' mean for generic types, and why does TypeScript's structural typing make some generic assignments unsound by default? TypeScript › Generics | TypeScript | Generics | Advanced |
| 34 | How would you implement a generic type-safe EventEmitter where each event name maps to its own specific payload type? TypeScript › Generics | TypeScript | Generics | Advanced |
| 35 | How would you implement a generic method with MULTIPLE type parameters and constraints that reference EACH OTHER, like a generic mapping function? C# › Generics | C# | Generics | Advanced |
| 36 | How do generic type parameters interact with static members, and why does each closed generic type get its OWN independent set of static field values? C# › Generics | C# | Generics | Advanced |
| 37 | How would you implement a generic, reusable object pool using generic constraints to ensure poolable objects can be properly reset? C# › Generics | C# | Generics | Advanced |
| 38 | How do generic attributes (introduced in C# 11) work, and what limitation did they finally remove compared to older attribute usage patterns? C# › Generics | C# | Generics | Advanced |
| 39 | How would you implement generic operator constraints using .NET's generic math interfaces (like INumber<T>) to write a single Sum<T>() method working across int, double, and decimal? C# › Generics | C# | Generics | Advanced |
| 40 | How do bounded wildcards (? extends T and ? super T) work, and what does the PECS (Producer Extends, Consumer Super) mnemonic mean for choosing between them? Java › Generics | Java | Generics | Advanced |
| 41 | How would you implement a generic class with multiple type parameters and bounded type parameters (like <T extends Comparable<T>>), and what does this specific bound enable? Java › Generics | Java | Generics | Advanced |
| 42 | How does generic method overload resolution interact with type erasure to sometimes produce a compile error for seemingly valid overloads (like two methods differing only by their generic type parameter)? Java › Generics | Java | Generics | Advanced |
| 43 | How would you implement a generic builder pattern with a self-referential generic type parameter (the 'curiously recurring generic pattern', <T extends Builder<T>>) to support fluent method chaining that correctly returns the actual subclass type in an inheritance hierarchy? Java › Generics | Java | Generics | Advanced |
| 44 | How would you implement a generic pair/tuple utility method that returns different concrete types depending on the number of elements, and how does target-type inference help the compiler choose the correct generic instantiation from context alone? Java › Generics | Java | Generics | Advanced |
| 45 | What are the three main built in collection types in Dart, List, Set, and Map, and what makes each one uniquely suited for a different kind of data storage need? Flutter › Dart Collections & Generics | Flutter | Dart Collections & Generics | Beginner |
| 46 | How do commonly used higher order collection methods, such as map, where, and reduce, let you transform and filter Dart collections in a clean, declarative style? Flutter › Dart Collections & Generics | Flutter | Dart Collections & Generics | Intermediate |
| 47 | How do you create a custom generic class in Dart, and why would a generic class be preferable to writing several nearly identical, separate classes each hardcoded for a different specific type? Flutter › Dart Collections & Generics | Flutter | Dart Collections & Generics | Intermediate |
| 48 | What are unmodifiable and immutable collections in Dart, and why might you deliberately choose to use one instead of a regular mutable collection in certain parts of your code? Flutter › Dart Collections & Generics | Flutter | Dart Collections & Generics | Intermediate |
| 49 | How do bounded type parameters, using the extends keyword within a generic class definition, let you constrain a generic type to only accept types that satisfy a specific requirement? Flutter › Dart Collections & Generics | Flutter | Dart Collections & Generics | Advanced |
| 50 | What are the performance and memory tradeoffs between using a List, a LinkedHashMap, and a HashSet in Dart when working with a genuinely very large collection of data? Flutter › Dart Collections & Generics | Flutter | Dart Collections & Generics | Advanced |
| 51 | What is the basic syntax of a conditional type, and how does it resemble a ternary expression? TypeScript › Conditional Types | TypeScript | Conditional Types | Beginner |
| 52 | How do you write a type annotation for a function value, like a callback parameter? TypeScript › Function Types, Overloads & Optional/Default Parameters | TypeScript | Function Types, Overloads & Optional/Default Parameters | Beginner |
| 53 | How do you type an array of a specific element type, and what are the two equivalent syntaxes? TypeScript › Primitive Types, Arrays & Tuples | TypeScript | Primitive Types, Arrays & Tuples | Beginner |
| 54 | What is the difference between Where() and Select() in a LINQ query? C# › LINQ | C# | LINQ | Beginner |
| 55 | What is the Java Collections Framework, and what are the core interfaces (List, Set, Map, Queue) at its foundation? Java › Collections Framework | Java | Collections Framework | Beginner |
| 56 | What is the difference between the Iterable and Iterator interfaces, and how does the enhanced for-each loop rely on them? Java › Collections Framework | Java | Collections Framework | Beginner |
| 57 | What is a functional interface, and what are the four core functional interfaces in java.util.function (Function, Predicate, Consumer, Supplier)? Java › Functional Interfaces & Method References | Java | Functional Interfaces & Method References | Beginner |
| 58 | What are the basic variable declaration keywords in Dart, specifically var, final, and const, and how do they differ from each other? Flutter › Dart Language Basics & Syntax | Flutter | Dart Language Basics & Syntax | Beginner |
| 59 | What is null safety in Dart, and how does it help prevent a common category of runtime error known as a null reference exception? Flutter › Dart Null Safety | Flutter | Dart Null Safety | Beginner |
| 60 | What is a Hive box, and how does it function as the basic fundamental storage unit specifically used for actually storing and retrieving your own particular data? Flutter › Hive & NoSQL Local Storage | Flutter | Hive & NoSQL Local Storage | Beginner |
| 61 | What is JSON serialization and deserialization, and how do Dart's own built in jsonEncode and jsonDecode functions let you convert genuinely freely between a Dart object and its own corresponding JSON text representation? Flutter › JSON Serialization & Deserialization | Flutter | JSON Serialization & Deserialization | Beginner |
| 62 | How do labeled tuple elements improve readability and editor tooling compared to unlabeled tuples? TypeScript › Primitive Types, Arrays & Tuples | TypeScript | Primitive Types, Arrays & Tuples | Intermediate |
| 63 | When would you choose a HashSet<T> over a List<T>, and what guarantee does it provide? C# › Collections | C# | Collections | Intermediate |
| 64 | How do you write a generic extension method that works with any collection type, like a custom 'IsEmpty()' check? C# › Extension Methods | C# | Extension Methods | Intermediate |
| 65 | What is boxing and unboxing, and why does it have a real performance cost? C# › Memory & Garbage Collection | C# | Memory & Garbage Collection | Intermediate |
| 66 | How do multidimensional arrays work in Java, and how do they differ from truly rectangular arrays in languages like C? Java › Arrays & Multidimensional Arrays | Java | Arrays & Multidimensional Arrays | Intermediate |
| 67 | What utility methods does java.util.Arrays provide for common array operations like sorting, searching, filling, and comparing? Java › Arrays & Multidimensional Arrays | Java | Arrays & Multidimensional Arrays | Intermediate |
| 68 | How do you convert between an array and a List (ArrayList) in both directions, and what pitfalls exist with Arrays.asList()? Java › Arrays & Multidimensional Arrays | Java | Arrays & Multidimensional Arrays | Intermediate |
| 69 | How do you correctly iterate a 2D array using both traditional indexed for-loops and the enhanced for-each loop, and when is each approach preferable? Java › Arrays & Multidimensional Arrays | Java | Arrays & Multidimensional Arrays | Intermediate |
| 70 | What is array covariance's relationship to generic arrays, and why can't you directly create a generic array like new T[10] or new List<String>[10]? Java › Arrays & Multidimensional Arrays | Java | Arrays & Multidimensional Arrays | Intermediate |
| 71 | How does PriorityQueue work internally (as a binary heap), and what ordering does it use by default versus with a custom Comparator? Java › Collections Framework | Java | Collections Framework | Intermediate |
| 72 | What is the relationship between equals() and the == operator when comparing primitive types versus reference types, and how does this affect comparing boxed wrapper types like Integer? Java › equals(), hashCode() & toString() Contracts | Java | equals(), hashCode() & toString() Contracts | Intermediate |
| 73 | How does Comparable's compareTo() method relate to equals(), and what does it mean for compareTo() to be 'consistent with equals'? Java › equals(), hashCode() & toString() Contracts | Java | equals(), hashCode() & toString() Contracts | Intermediate |
| 74 | How do the default methods andThen() and compose() on Function work, and what's the difference between them for chaining transformations? Java › Functional Interfaces & Method References | Java | Functional Interfaces & Method References | Intermediate |
| 75 | What is the difference between UnaryOperator<T> and Function<T,T>, and why does UnaryOperator exist as a separate, more specific interface? Java › Functional Interfaces & Method References | Java | Functional Interfaces & Method References | Intermediate |
| 76 | Can a local class or anonymous class be generic, and how does its own type parameter interact with any generic type parameters already declared on its enclosing class or method? Java › Inner Classes & Anonymous Classes | Java | Inner Classes & Anonymous Classes | Intermediate |
| 77 | What are named parameters and positional parameters in Dart functions, and how does using curly braces to declare parameters as named improve the readability of a function call with many arguments? Flutter › Dart Language Basics & Syntax | Flutter | Dart Language Basics & Syntax | Intermediate |
| 78 | What are extension methods in Dart, and how do they let you add new useful functionality directly onto an existing class, including classes you did not originally write yourself, such as Dart's own built in String class? Flutter › Dart Language Basics & Syntax | Flutter | Dart Language Basics & Syntax | Intermediate |
| 79 | What do the null aware operators, specifically the null coalescing operator and the null aware access operator, actually do, and how do they let you write more concise code when working with nullable values? Flutter › Dart Null Safety | Flutter | Dart Null Safety | Intermediate |
| 80 | How does Dart's late keyword let you declare a non nullable variable that will genuinely be initialized before it is ever actually first used, even though it cannot be given an initial value immediately at the exact point of its declaration? Flutter › Dart Null Safety | Flutter | Dart Null Safety | Intermediate |
| 81 | How do provider dependencies and provider composition work in Riverpod, letting one provider genuinely and cleanly depend on the current value of a completely separate other provider? Flutter › Flutter Riverpod Code Generation & Providers | Flutter | Flutter Riverpod Code Generation & Providers | Intermediate |
| 82 | How does properly using TextInputFormatter genuinely help restrict or automatically format exactly what a user can actually type into a specific given text field, such as automatically formatting a phone number or restricting input to only numeric digits? Flutter › Forms & Input Validation in Flutter | Flutter | Forms & Input Validation in Flutter | Intermediate |
| 83 | How do you properly store a genuinely fully custom Dart object, rather than simply a basic primitive type, within Hive using a generated TypeAdapter? Flutter › Hive & NoSQL Local Storage | Flutter | Hive & NoSQL Local Storage | Intermediate |
| 84 | How do you properly handle deserializing a genuinely nested JSON structure, such as an order object that itself contains an embedded nested list of individual line item objects, into a properly correctly structured set of nested Dart model classes? Flutter › JSON Serialization & Deserialization | Flutter | JSON Serialization & Deserialization | Intermediate |
| 85 | How do you actually properly pass genuinely complex data types, such as a Map or a List, between Dart and native code through a platform channel, and what specific limitations genuinely exist regarding exactly what data can actually genuinely be sent? Flutter › Platform Channels (Native Android & iOS Integration) | Flutter | Platform Channels (Native Android & iOS Integration) | Intermediate |
| 86 | How does StateNotifierProvider let you properly manage genuinely more complex state that requires several genuinely separate distinct methods for updating it, compared to the considerably simpler StateProvider? Flutter › State Management with Riverpod | Flutter | State Management with Riverpod | Intermediate |
| 87 | How does the 'protected constructor' pattern enforce a specific object-creation approach, like the Factory pattern? TypeScript › Classes: Access Modifiers, Abstract Classes & Implements | TypeScript | Classes: Access Modifiers, Abstract Classes & Implements | Advanced |
| 88 | How would you write a conditional type that recursively flattens a nested array type of arbitrary depth? TypeScript › Conditional Types | TypeScript | Conditional Types | Advanced |
| 89 | How do parameter decorators work, and what is a common real-world use for them? TypeScript › Decorators | TypeScript | Decorators | Advanced |
| 90 | How do you write a generic Result<T, E> discriminated union type for functional-style error handling, and why is it preferred over throwing exceptions in some codebases? TypeScript › Discriminated Unions & Exhaustiveness Checking | TypeScript | Discriminated Unions & Exhaustiveness Checking | Advanced |
| 91 | How would you type a higher-order function that accepts a function and returns a new function with an additional, injected parameter removed from its signature? TypeScript › Function Types, Overloads & Optional/Default Parameters | TypeScript | Function Types, Overloads & Optional/Default Parameters | Advanced |
| 92 | How would you implement a type-safe 'groupBy' function whose return type is a Record keyed by the actual grouping values encountered? TypeScript › Index Signatures & Record Types | TypeScript | Index Signatures & Record Types | Advanced |
| 93 | How would you write a generic type that extracts the length of a tuple type at compile time? TypeScript › Primitive Types, Arrays & Tuples | TypeScript | Primitive Types, Arrays & Tuples | Advanced |
| 94 | How do variadic tuple types (using generic rest elements) let you build type-safe function composition or concat utilities? TypeScript › Primitive Types, Arrays & Tuples | TypeScript | Primitive Types, Arrays & Tuples | Advanced |
| 95 | How do generic type parameters complicate structural comparisons, particularly regarding 'bivariant' method comparison? TypeScript › Structural Typing & Duck Typing | TypeScript | Structural Typing & Duck Typing | Advanced |
| 96 | How would you write a simple reflection-based object mapper that copies matching property values from one object to another of a different type? C# › Attributes & Reflection | C# | Attributes & Reflection | Advanced |
| 97 | Why is reflection generally slower than direct code, and what techniques (like caching or compiled expressions) mitigate this cost? C# › Attributes & Reflection | C# | Attributes & Reflection | Advanced |
| 98 | How would you choose between List<T>, LinkedList<T>, and ImmutableList<T> based on their different Big-O characteristics for common operations? C# › Collections | C# | Collections | Advanced |
| 99 | How do delegate covariance and contravariance work with method group conversions in C#? C# › Delegates, Events & Lambdas | C# | Delegates, Events & Lambdas | Advanced |
| 100 | How do enums interact with generic constraints, and why has it historically been awkward to write generic, reusable flag-manipulation code? C# › Enums & Flags | C# | Enums & Flags | Advanced |
| 101 | How do you correctly implement IComparable<T> alongside IEquatable<T>, and what consistency rule must they both satisfy together? C# › Equality: Equals, GetHashCode & IEquatable | C# | Equality: Equals, GetHashCode & IEquatable | Advanced |
| 102 | How would you write generic extension methods leveraging C# 11's generic math interfaces (like INumber<T>) to build a single reusable numeric utility working across int, double, decimal, and other numeric types? C# › Extension Methods | C# | Extension Methods | Advanced |
| 103 | How do target-typed 'new' expressions work, and what ambiguity do they resolve compared to always specifying the type twice? C# › Fundamentals | C# | Fundamentals | Advanced |
| 104 | How do static abstract interface members (C# 11+) enable generic math and other 'static polymorphism' patterns? C# › Interfaces & Abstract Classes | C# | Interfaces & Abstract Classes | Advanced |
| 105 | How do type annotations (introduced in Java 8, JSR 308) differ from traditional declaration annotations, and what new locations can they target? Java › Annotations | Java | Annotations | Advanced |
| 106 | How does Java implement covariant array typing, and why is this considered a design flaw that can lead to runtime ArrayStoreException? Java › Arrays & Multidimensional Arrays | Java | Arrays & Multidimensional Arrays | Advanced |
| 107 | How would you implement a custom, resizable dynamic array (similar to ArrayList's internal mechanism) from scratch using a raw Java array, including the amortized doubling growth strategy? Java › Arrays & Multidimensional Arrays | Java | Arrays & Multidimensional Arrays | Advanced |
| 108 | How does TreeMap/TreeSet's red-black tree implementation guarantee O(log n) operations, and what role does the Comparable/Comparator interface play in maintaining sorted order? Java › Collections Framework | Java | Collections Framework | Advanced |
| 109 | How would you implement a custom functional interface with generic type parameters, and what considerations apply when designing one instead of reusing a built-in java.util.function interface? Java › Functional Interfaces & Method References | Java | Functional Interfaces & Method References | Advanced |
| 110 | How does the var keyword (local variable type inference, introduced in Java 10) work, and what specific restrictions apply to where it can and cannot be used, given Java remains a statically-typed language? Java › Java Fundamentals: Syntax, Data Types & Operators | Java | Java Fundamentals: Syntax, Data Types & Operators | Advanced |
| 111 | How does pattern matching, introduced through Dart's more modern switch expressions and destructuring, let you write more concise and expressive code when handling different possible shapes of data? Flutter › Dart Language Basics & Syntax | Flutter | Dart Language Basics & Syntax | Advanced |
| 112 | What are Dart records, and how do they let you group together several distinct values of potentially different types without needing to first define an entirely separate dedicated class? Flutter › Dart Language Basics & Syntax | Flutter | Dart Language Basics & Syntax | Advanced |
| 113 | How do you properly write parameterized tests that run the exact same test logic against several genuinely different sets of input data, avoiding needing to duplicate that exact same test method several genuinely separate times? Flutter › Unit Testing in Flutter | Flutter | Unit Testing in Flutter | Advanced |