# Studying source code

**URL:** <https://forum.ansible.com/t/studying-source-code/13739>\
**Category:** Ansible Developer\
**Created:** [October 22, 2013, 8:35am UTC](https://forum.ansible.com/t/studying-source-code/13739 "2013-10-22T08:35:03Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Janez\_Nemanic](https://avatars.discourse-cdn.com/v4/letter/j/76d3ee/32.png) [@Janez\_Nemanic](https://forum.ansible.com/u/Janez_Nemanic)\
**Post date:** [October 22, 2013, 8:35am UTC](https://forum.ansible.com/t/studying-source-code/13739/1 "2013-10-22T08:35:03Z")

</div>

Hi,  
I would like to study Ansible’s source code because I would like to contribute to the project. Because of my lack of experiences I would need some advice from experienced contributors. Could you please advise me what is the best way to start studying code? With which file or directory should I start and how should I then explore from that point into depth?  
I would really appreciate if you could give some advice.

---

<div class="post-metadata">

**Author:** ![Serge\_van\_Ginderacht](https://avatars.discourse-cdn.com/v4/letter/s/b782af/32.png) [@Serge\_van\_Ginderacht](https://forum.ansible.com/u/Serge_van_Ginderacht)\
**Post date:** [October 22, 2013, 8:44am UTC](https://forum.ansible.com/t/studying-source-code/13739/2 "2013-10-22T08:44:09Z")

</div>

​I think a good entry point would be to look at the bin/ansible source,  
then gradually try to understand the underlying ansible classes that are  
used from there.​

---

<div class="post-metadata">

**Author:** ![James\_Cammarata1](https://avatars.discourse-cdn.com/v4/letter/j/d26b3c/32.png) [@James\_Cammarata1](https://forum.ansible.com/u/James_Cammarata1)\
**Post date:** [October 22, 2013, 1:23pm UTC](https://forum.ansible.com/t/studying-source-code/13739/3 "2013-10-22T13:23:54Z")

</div>

I think the modules code (library/\*) are generally pretty easy to understand, and they also use the code in lib/ansible/module\_common.py too.

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan2](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@Michael\_DeHaan2](https://forum.ansible.com/u/Michael_DeHaan2)\
**Post date:** [October 22, 2013, 2:35pm UTC](https://forum.ansible.com/t/studying-source-code/13739/4 "2013-10-22T14:35:44Z")

</div>

Looks like I replied to the wrong email previously, be sure to check out

[http://ansibleworks.com/docs/developing\_modules.html](http://ansibleworks.com/docs/developing_modules.html)

I also recommend just diving in and getting your feet wet.

Tracing to modules through bin/ansible-playbook or bin/ansible can be done but if you are just interested in modules it’s a bit of a hop 🙂
