If you are looking forward to learning an E-commerce Content Manager and considering picking up Magento2.
Even before I start how you can start with your learning process. I would like you to answer a couple of questions:
- Are you learning it so that you can build an ecomm site for yourself, or your friend?
- Are you working or are going to work for a firm that builds solutions based on Magento2?
If you answer yes to question #1 then I would suggest you would be better off starting with other tools like WooCommerce or OpenCart(there are hundreds I just mention these two as I have personally used them) or even something like a Shopify which would also reduce some hassles related to deployment.
If you answered yes to #2 then I think it makes sense.
Why I say the above, is because Magento2 is huge and the learning curve is steep. It would be difficult to grasp its many concepts easily, I think the image above summarized it pretty well.
So am I pushing you off? So this might be opinionated but yes in a way 🙂 .
But if you still want to go ahead I am sharing some ways to learn and start building your understanding.
1. Start off with Primer tutorials
“Hello World” code is a programmer’s friend, start off with some very basic tutorials and courses if you find some. They will start giving you an idea about what modules are, what is the structure of the application, how core magento code can be overridden and many other Magento concepts.
I started of with a course on Udemy and then looked at this wonderful tutorial
2. Best way to learn is by looking at other’s code
If your organization already is building Magento2 websites you would be at a huge advantage as you would get a feel of how an actual end product would look like and what all goes into building it.
But if you don’t have that, you still can access a vast majority of open source code lying there for you to build your understanding. One very good repository that I used while learning is https://github.com/nans/Magestudy.
It covers a lot of use cases that you might face and once you understand these, you can definitely extend them to build other solutions.
I pasted those extension directly to see how they worked, and then typed down the code myself to make sure I knew what all was needed to achieve the final result.
3. The Magento Docs
The reason I mentioned Magento Docs at #3 rather than at #1 is that, I felt it first hand, that Magento has different aspects to it, like building something for the frontend, backend or through a theme. You might not be able to move through the documentation in a top to bottom fashion and some concepts would be intertwined. You would feel like moving ahead but making little progress only.
If you have tried out some code and tinkered around with it, then the docs would actually start to make more sense and would clarify some of the concepts.
Also one thing I noticed with this documentation is that treat every line with very careful attention. The documentation is very compact and doesn’t use too many code samples or even words to explain concepts. So don’t rush it, ease through it.
4. Online Video resources
I found a lot of content on the internet(Youtube and Other) but I didn’t like the disconnected approach there i.e having unrelated topics discussed.
But I asked a Magento Veteran friend and he suggested Mage2.tv, the content is very well organized and explained very nicely.
You build upon the knowledge as you go through the lessons. The site has a free trial, so if you want to save some bucks and are determined enough, you can try to complete all the videos within the trial period itself.
5. Tinker around using n98 magerun
It’s not a typo but n93 magerun is a CLI tool that can help you tinker around with your Magento code from the command line.
People who work with Node or Laravel might relate that how convenient it is to have the ability to test a piece of your code quickly from the terminal and not to have those print or console statements sprayed around in your code.
6. Learn some KnockoutJS
You would need to familiarize yourself with some Knockout JS concepts like its declarative bindings and also understand how UI Components work.
7. Try working on some real requirements
Even after you read through the code samples and the documentation true power will only come when you actually implement something.
For this I specifically started looking at Magento2 requirements that people had posted over on the internet. I went to freelancing sites and even though I didn’t apply for the jobs, I just took what was their requirement and tried to implement solutions for them(did a couple). This is a great way to learn(or possibly actually do a freelancing task that gets you paid) if you have some time at your disposal.
These were all the thoughts that I had for now, even though I should have written this much sooner when I was going through it but it’s always better late than never!.