I'm assuming that you've already installed and played around a bit with Plone. If not start by doing a quick cloud installation of Plone.
Fundamentals are assumed so make sure you understand themIn my experience persons trip up on things like Unix fundamentals, Networking and Protocols. So before you invest time in Plone make sure you know your basic web technology.
The Plone stack touches many pieces and the deeper you go the more you learn. The good news is that understanding these things will benefit you with other projects.
My checklist of fundamentals that you'll want to be comfortable with include:
- Linux/Unix Command line
- Basic Python
- Networking Fundamentals (TCP/IP, Application Protocols, Browsers)
Be an expert in your coreBeing able to learn new technology quickly is not an excuse for learning things superficially. For Plone the core includes understanding things like user permissions, roles, content type schemas, browser views, templates and ZCML.
My checklist of Plone fundamentals
- Page Templates
- Content Type Schemas with Dexterity
- Generic Setup Configuration with XML
- Browser Views
- User permissions
Learn these well and you won't regret it.
Be systematic about your development processMy recommended posture would be the same no matter the technology stack. I'll explain them in more detail below:
- Learn the big picture: learn about the tools available in your toolbox.
- Trust the blackbox: learn only what you need to know.
- Organically absorb the stack.
In general I've observed a mind-set in the Plone community that aims for systems that are "team scale" (not just "works for me"). I try to follow the following three rules as I develop, (not that I'm following them very well but...):
- Aim to support iterating quickly
- Aim to support deploying reliably
- Aim to make your project so well documented and predictable that a knowledgeable Plone developer could pick up from you in less than 30 minutes
Learn the big picture
Find out what is available in your toolbox. I recommend these articles:
http://plone.org/products/plone/features/ - An overview of what Plone does out of the box
http://blog.dbain.com/2013/12/plone-big-picture.html - A non-exhaustive summary of the pieces of Plone
http://developer.plone.org/getstarted/index.html - Gives a realistic picture of Plone
http://developer.plone.org/#manuals - This is really a table of contents, but gives an idea of what's possible
Trust the blackbox
You don't need to understand the plumbing of your house in order to take a shower, the same is true with Plone. While there's a lot of plumbing going on you need only focus on how to connect your hose to the system. Some personalities find this difficult as they need to understand everything before proceeding but you'll need this approach to become productive quickly. If you just want to use Plone as it was designed to be used (as a content management application and framework) then just grab some good examples and copy them.