Before we dive into the gritty details of working with Magento, let’s set some expectations for what skills you need. You’ll need more skills to work with Magento than with most other eCommerce packages, and you’ll often find yourself digging in unfamiliar parts of the system, so I’ve created a list of the skills you’ll need to get by. The list is split between developers and designers to help you focus your attention, but try to brush up on all the skills listed.
Designing and implementing themes will stretch your technical skills as you switch between code and HTML to build the blocks of content for a Magento page. You should already have most of these skills in your toolbelt, but you may need to brush up on basic programming to keep things moving.
No big surprise here, the lingua franca of Magento themes is XHTML, contained within a series of templating files called PHTML files (PHTML stands for PHP & HTML). This is where you’ll spend most of your time while implementing a theme, so be well versed in W3C compliant code.
The natural pair to XHTML is CSS, which you’ll need to know equally to implement a theme. If you’re creating a brand new theme, expect to edit hundreds or thousands of lines of CSS to get everything just right.
Don’t panic! You only need a little PHP to get by. PHTML files are littered with basic PHP to accomplish tasks such as iterating through sets of products, and if you don’t want to spend your time hunting for missing semicolons, you need to be passably familiar with the code. Brush up on basic control structures and objects in PHP, and you’ll be fine.
Magento uses XML layout files to figure out which template files to render, and it won’t be long before you want to change them. The good news is that – if you know XHTML – this should be a freebie. Understand the structure of an XML document and how to add attributes and tags.
Developing in Magento can be complicated. Actually, that’s an understatement. Developing in Magento can be wildly, frustratingly complicated. Every page load makes use of a surprising array of technologies, so get ready to stretch your programming skills.
This is by far the most important skill you’ll need as a developer. Magento uses object oriented PHP, and you’ll need to have a deep understanding of concepts such as inheritance and scope. Also, make sure to understand PHP’s “magic methods” and “autoloader.”
MVC stands for “Model-View-Controller,” and is a well-defined method for laying out large programs. Magento uses MVC heavily to keep display code out of the core of the program, and you should understand how that separation works. Any experience with Zend Framework is a definite plus here.
You won’t need to spend too much time on MySQL for normal development, but it’s almost guaranteed that you’ll spend at least a little time spelunking in the database. Understand basic SQL statements, and if you really want to be an expert, how EAV models work.
As a developer, you’ll need XML more than a designer will. In addition to needing to edit layouts to change how pages are displayed, you’ll use XML to configure Magento and tell it how to interact with your code. Have a good understanding of how to write XML and you’ll be on solid ground.
XHTML / CSS
I lump these together here because they aren’t as critical for developers. You’ll need to edit PHTML files to reflect your code changes, so have a basic grounding in XHTML and CSS.