The answer is always "it depends".
If you care about paid support and having the most features, Magento is probably for you, but you compromise in extensibility, since the learning curve for development is steep. Magento also has the reputation of being slow.
On the other side, if you can compromise on features in order to gain development speed, OpenCart is the best choice, the project was refactored recently, so most of the codebase is clean and consistent.
Finally, if you prefer a middle ground (ie. a not-so-steep learning curve for development, a bigger set of features than OpenCart and better performance than Magento), PrestaShop is what you should explore.
At the end of the day, you can't just "learn an e-commerce framework", you should pick the tool which helps you better with your particular needs.