Sympy is a Python Library for symbolic computations. It aims to be a Computer Algebra System, but wants to keep the code simple and readable. Sympy is entirely written in Python.
Now you might have come across a question Why Sympy ?
The above is the motivation for the open source developer to develop and contribute to this awesome project. At the very beginning you need to read the documentation and work as per the structure suggest.
Prior Knowledge of Python Programming
The very first requirement to understand and develop with sympy is the prior knowledge of Python Programming. If your know Python well then you will be good to start with the code and functions provided by the sympy library.
Some Basic and Advanced Mathematical Formulas and Functions how they work
You will have to encounter very often with Mathematical formulas that has been transformed into Python functions. So you should be knowing about the Mathematical formulas and how they work. In order to help you during the contribution and development with sympy project.
Open Source Development and working
You should know how the open source project works. What are the roles of the contributers, maintainers and How to proceed with the Bugs (Issues), must know how to use the power of IRC channels for quick responses and you must know the version control system like Git, Mercurial, Bazaar. Sympy project is hosted with Git so I recommend you learning Git.
Open Hatch (for simple and crisp exercises to know how the open source development proceeds)
Writing Quality Code
In open source development the source code written is fairly simple to read and understand as thousands of contributor will be modifying and testing the code to fix bugs. So after the bugs are fixed any additions and deletions from the code should be well documented using inline documentation in the file itself and also with a suitable commit message. You should keep in mind to write optimized code, as maintainers would demand optimized code when they view your fix , they also review the code for better readability and understanding.
Prepare Your Local environment or Virtual environment
You must be following the build, install and test procedure. To look at the bugs and then fix them and again examine that everything works fine after fixing the code, So you need a local environment. Generally the newbees simply do all the testing in their system wide python installation. But I recommend you should read about the virtualenv, virtualenv is a virtual environment for testing python applications. The modules installed in virtualenv affects only the virtualenv and not the whole system. So if anything goes wrong , You just need to fix changes or delete your virtualenv and your system would be free from troublesome problems during testing and never need manual fixes.
Have a look at the virtualenv documentation
IDE's or Python Editors or Ipython notebooks
It is upto you which resource you prefer to write your code and have a proper view of the output of that code. I use ipython Notebook. Ipython notebook has better view of inputs with its corresponding outputs.
Have a look at the Ipython Notebook documentation
Resources for learning, developing for and developing with sympy
Developing for the Sympy and searching for the educational tutorials and ebooks online by Googling and searching on YouTube is not a bad idea but it is not the best idea. The best idea is to go to the sympy website and read its documnetation and changes from the previous version. Sympy also provides an awesome tutorial doc for the new developers to understand sympy working.
The motivated programmers must check sympy code hosted at the Github, Have a look at this
Source code for sympy at Github : Sympy Source
and those who want to contribute please fork it and read the documentation about Git and contributing to Github, The project needs to be forked and after fixing the bug you need to Raise and Issue and talk to the maintainer about that issue and then do a pull request. I know you were not able to understand the above lines, So please read the Git documentation well and then read this again you will completely understand each and every line.
Set up Git
Create a Repository
Fork a Repository