BeginnersCorner

The MediaGoblin project is welcoming of new contributors, even those who are new to programming. The following resources can help you learn enough to start hacking on MediaGoblin.

Learning Python
GNU MediaGoblin is written using a programming language called Python.

There are two different incompatible iterations of Python which I'll refer to as Python 2 and Python 3. GNU MediaGoblin is written in Python 2 and requires Python 2.6 or 2.7. At some point, we might switch to Python 3, but that's a future thing.

You can learn how to code in Python 2 from several excellent books that are freely available on the Internet:


 * Learn Python the Hard Way
 * Dive Into Python (that's a mirror, the original site is not available; it is also packaged in Debian)
 * Python for Software Design
 * A Byte of Python

These are all excellent texts.

You Can Help

If you know of other good quality Python tutorials and Python tutorial videos, let us know!

Learning Libraries GNU MediaGoblin uses
GNU MediaGoblin uses a variety of libraries in order to do what it does. These libraries are listed in the :ref:`codebase-chapter` along with links to the project Web sites and documentation for the libraries.

There are a variety of Python-related conferences every year that have sessions covering many aspects of these libraries. You can find them at pyvideo.org -- This is a shameless plug; Will Kahn-Greene runs pyvideo.org

If you have questions or need help, let us know!

Learning git
git is an interesting and very powerful tool. Like all powerful tools, it has a learning curve.

If you're new to git, we highly recommend the following resources for getting the hang of it:


 * Intro to Git --- a GitHub intro to git
 * Pro Git --- fantastic book
 * Git casts --- screencast covering git usage
 * Git Reference --- Git reference that makes it easier to get the hang of git if you're coming from other version control systems
 * Git workflow --- How to go about submitting patches via git.

There's also a git mission at OpenHatch.

Learning other utilities
The OpenHatch site has a series of training missions which are designed to help you learn how to use these tools.

If you're new to tar, diff, patch and git, we highly recommend you sign up with OpenHatch and do the missions.