Start here. This is the direct spoken answer to practice first.
Overview
DRF's view abstractions are a menu of reuse options, not a maturity ladder.
APIView gives direct control over HTTP methods while still providing DRF requests, responses, policy checks, and exception handling. Generic views combine GenericAPIView with common actions, and mixins let a class select reusable CRUD behavior. ViewSets group related resource actions and work well with routers. I choose the smallest abstraction that matches the endpoint without hiding important behavior.