Start here. This is the direct spoken answer to practice first.
Why this question matters
Parameter sniffing is a practical SQL Server topic because it can turn a normally fast query into an intermittent production incident.
Parameter sniffing happens when SQL Server compiles a plan using the parameter values from one execution and then reuses that cached plan for later executions. That is often good, but it can hurt when data is skewed. A plan compiled for a tiny customer may be poor for a huge customer, or the reverse. I would suspect it when the same query is fast for some parameter values and slow for others.