I recently started developing on magento2 and I'm finding a habitual problem always.
When I start creating new extension or something, it's normal I will need M2 objects on my controller's constructor, like:
\Magento\Framework\View\Result\PageFactory
\Magento\Framework\App\Action\Context
...
and a lot more, like "session", "product", "customer" etc, etc.
The problem is how I find all the namespace and how it works, variables and methods, etc? I searched on http://devdocs.magento.com/ and seems they don't provide information about M2 objects or I didn't find it. They just explain how to do this DI and use their objects...
I feel like I'm blind, my only tool is google and always I ended up coming to stack overflow or similar with a guy asking like: How to use session on magento2 (for example)... and then magically someone says to use this:
\Magento\Framework\Session\SessionManagerInterface
$this->sessionManager->setVar('whatever');
ahm... okay this is how I learned to use sessions on Magento... but I'm still so blind... what else can do this object? when I google SessionManager
nothing real appears... I only see questions...
So... how you do M2 developers? I only see an alternative navigating through Magento2 core folder for discovering new useful objects or learning about known objects... but it can be a nightmare...
Really, there's not a document with ALL M2 objects, what is their purpose, methods, variables, etc...