Okay, TYPO3 community has beautifully organized documentation so far. But, let me help you to better go! I assume, you have pretty good experience with PHP and MVC framework ;)
From the scratch, Extbase reference documentation explains structure of the extension with a simple words. see here. Initially, how you can register frontend plugin and configure plugin manually.
1. Blog example
You will find detailed explained example of blog extension. It has basic required feature for blog. It's good to get started!
URL: https://docs.typo3.org/m/typo3/book-extbasefluid/master/en-us/3-BlogExample/Index.html
It has explained extension functionality and Domain of the extension. Also, you will find directory structure for the TYPO3 extension which is pretty same for all extensions.
Key point for Extension
You can read our nicely concluded blog at Official site.
2. Example extension: store inventory
Same as Blog example, You have another example extension available at official documentation. Check it out here
Nice thing is, Both demo extensions have code explained! How Domain modeling works, How Repository works, etc... That is super osm, isn't it?
3. Create with Ext:extension_builder
Also, you can go with extension called extension_builder that will provide all the required setup for the extension.
You can download from...
And, it has its own documentation for guideline. Check it out here and official community documentation here.
4. Extbase API documentation
This is the most useful part of the Extbase developer. I love it the most! As you have a question where you facing an issue with finding the Utility function which is provided by the TYPO3 core. You will find this easily and also you will have detailed information about use of functions and classes. Cool No?
Here you go!
For example
\TYPO3\CMS\Core\Utility\GeneralUtility, go to the document and search your class or method and select it.

Now, you will see each and every piece of information about class, member function, attributes, etc.

5. Other
extension_builder gives you a robust extension that gives you all the basic functionality like create, update, delete records, and listing and detail view for the same.
Advanced Repository and functions.
If you need a complex result set or you will need a filter from the database record then you can create a custom repository function to interact with a database. Here is nice documentation that describes powerful functions for a repository and also how you can add your own repository as well as repository functions using Individual Database Queries!
see,
Dive into documentation is the only key! I tried to collect quickly started documentation for you, hope this will help.
TYPO3 community welcome to edit this post ;)