You don't need to leap into modifying Zope's source code right away. In fact, Zope can be extended on many levels, and you may not need to even write any code to modify Zope to meet your needs. Here's some of the ways you can develop with Zope:
You can script Zope using Document Template Markup Language (DTML) in DTML Document and DTML Method objects. This gives you limited access to Zope internal in an easy to use form.
You can write Python methods and import them into Zope using External Method objects. This allows you to add complex Python code to your Zope objects.
You can use Z Classes to create new types of Zope objects through the web. By creating your own types of Zope objects you can tailor Zope to your needs.
You can write new types of Zope objects in Python. This option provides the same benefits as Z Classes but in pure Python. You may wish to combine this method with Z Classes.
You can use Zope source packages in your own Python programs. This allows you to publish objects without the Zope mangement framework, or you may wish to use other Zope components to provide object persistence, or text generation capabilities to your Python programs.
You can script remote Zope installations with the ZPublisher.Client package. This allows you to connect to remote Zope objects as though they were local objects.
You modify the Zope sources to make Zope itself function differerently. If you don't like how Zope does something, you can change it.
You can extend the Zope sources to add new functionality to Zope. You can extend Zope's reach by building new Zope packages which you may choose to share with the Zope community.
Your choices are many, and in fact you will probably find yourself combining several of these approaches.
This Guide will cover these development options in different chapters. While it is not essential to read all the chapters of this guide in order, the material is arranged so that reading earlier chapter should help you with understanding later chapters.