Where to start in Moodle Development (for beginners)?

Every once in a while, I see people posting questions in the forum like "I need to create a Moodle plugin, how do I get started?". Then they are disappointed when they either get no replies or an unkind reply from otherwise good-hearted developers frustrated with this type of question.

In many cases, your question simply does not convey to the community what you are trying to accomplish. What is your requirement that drives your need to create a new plugin? What is your challenge (one question per post - please!)? You need to provide additional details of what you are trying to accomplish, as where you are having trouble.

I would also encourage you to post a question openly in the Developer discussion forums, not use private messages. There are many good people in the global Moodle community who might be happy to help you overcome your challenges. Don't be afraid to let them know if you are a beginner. It might make them more understanding and not make as many assumptions.

Things you need to know before asking questions in the Moodle General Developer forum:

Developers are problem solvers, not mind readers. When asking a question, you need to be very specific about what you are trying to accomplish, what exactly you need help with and what you've tried. Nobody is going to respond to you in a helpful way if you simply say "I need help creating a plugin." or "I am trying to create an SQL report and it doesn't work.". They can't help you. They don't know what it is you need help with.

Moodle developers like to help you out, not do the work for you. When asking a question, let others know what you've tried, what worked and what didn't work. If something isn't working, create a few lines of code to demonstrate what doesn't seem to be working for you and post it. Do not post your entire source code. If you aren't going to make the initial effort to find the answer and make it easier for others to help you, why would anyone want to help you? Search the Moodle forums and Google "moodle ..." and the keywords related to the answer you are trying to find before asking questions in the forums. Be sure to also search the plugins. You may find a plugin which does 80% or more of what you need - This can save you lots of work. I often find answers by looking at other people's plugins.

If someone provides you with an answer, whether or not it was helpful, thank them. They took the time and made an effort to write a message to you and try to help you. It is the least you can do in return.

Moodle is an application which has evolved over the years. Don't be afraid to try things that aren't specific to your particular version of Moodle. There are things that worked in Moodle 2.3 which still work in 3.5 or can be made to work with minimal modifications.

If a particular answer was helpful, show your appreciation. Thank the person, let them know that their suggestion worked and rate their post as Helpful (there is a dropdown field below each post) in the forums.

If you want a better answer, ask a better question.

If the answer was not helpful, take the time to let them know that you still appreciate their effort and clarify what it is you are trying to do and what problem you are trying to solve. Sometimes they may have simply misunderstood your question or problem and they would probably appreciate the clarification. Never respond to anyone who seems to get frustrated or is rude. It will just fuel their fire. Ignore them.

The more you participate, the more you will learn. Before you know it, you will start to be able to answer other people's questions, or at least point them in the right direction. Do contribute to helping others. Moodle and this community is based on years of collaboration and contribution by people who started off just like you. Get involved and be part of the future.

Here is a link to an post I wrote a while ago which will help you get started on Moodle plugin development: