Start here. This is the direct spoken answer to practice first.
Why this matters
IQueryable preserves a query for database translation, while IEnumerable continues work in application memory. The boundary affects generated SQL, transferred rows, memory use, and where filtering actually happens.
IEnumerable represents a sequence that can be enumerated in memory. IQueryable represents a query that a provider, such as EF Core, can translate into another form like SQL. If I apply filters while the data is still IQueryable, EF Core can usually translate them into SQL. If I materialize first and then filter as IEnumerable, the filtering happens in memory.