The core is very flexible and its real power is the ability to adapt it to your needs without touching the core directly. Instead, every class and method can be overwritten and used by changing the configuration.
So don't modify the core as long as you don't think the feature you need should be part of the next core release. Instead, create a new Aimeos extension for your project and add the modified parts as well as the configuration for using the new code to your extension. This also allows you to update Aimeos without problems.
To add features to the core itself, you should know a little bit about Git and GitHub as both are used for managing the source code. The article about the Git workflow is a good starting point for this.
For versions up to and including 2016.10: