I tried many ways to learn the moodle code. Still I am facing some difficult to understand the architecture.
1. Any moodle programming book
2. Any blog or website have clear guideline
Please help me to go my long way in moodle..
There are no up to date books detailed books on Moodle development, though Tim Hunts chapter on the architecture is highly recommend. The best tool in my view is an IDE such as Netbeans or Eclipse that shows you the ancestors methods of classes. Whenever I try to do something I first find as much existing code that does something similar.
Thanks Marcus Green,
I understood their is no upto date books available. But I need some guide line for kick off the code.
-- Where I have to start code
-- How internal process are going in to the code
-- My needs Like Tips and Trick part of moodle
Please help me to go to next level
I suspect my ability to use a search engine is no better than yours .
For the database structure
It is useful to know you are new to this, and it would be additionally useful to know if you have a background in programming. It would be hard to make the jump from non Programmer to Moodle programmer but much easier if you had a background in any other type of programming.
My comment on searching was meant literally, If I were to search for resources I would just be doing second rate job of the searches that you would do (as I don't know what you do and do not know).
The link I sent in my post represents what I believe to be the most comprehensive and up to date single set of diagrams that illustrate the structure of the Moodle database. I have spent a great deal of time over many years creating it and I hope it is useful to people like yourself who are contemplating Moodle development. I intend to create a new version for Moodle 3.0 and am interested in any feedback.
To go back to my original reply, there are few Moodle developer tutorials and one of the best tools for a new developer is an IDE such as Netbeans, have you tried Netbeans or something similar?
I want new Moodle developers to feel welcome and any additional information about your background and intentions will help us to help you.
There is a commercial course for Moodle developers available from this link. The people behind it are experts but I have not done the course.
http://www.moodlebites.com/course/index.php?categoryid=26
Hi Marcus Green,
I am on the way you show to me. Once I have any queries and I will get back to you.
Thank for your valuable help. Thank you so Much
I've done that MoodleBites for Developers course on moodlebites.com and thoroughly enjoyed it. A few rough edges, but very good - and quite intensive. You won't sleep much for eight weeks!
But you need a background in PHP - don't try it if you don't already know PHP. You will struggle.
Alternatively, you could just dive into https://docs.moodle.org/dev/Main_Page...
Justin Hunt has started to be one of the teachers on the Moodlebytes courser. He is a Moodle development deity.
Yes, he's the main presenter of the MoodleBites for Developers course.
Thanks for that feedback Luis.
Perhaps of interest for Bala, and others who are very new to development, we have created an additional course - a more 'entry level' Moodle development course - again with the amazing experience and facilitation with Justin Hunt.
It should reduce some of the "very good - and quite intensive. You won't sleep much for eight weeks!" experiences for those completely new
The outline for 'Introduction to Moodle Development' is here: http://www.moodlebites.com/mod/page/view.php?id=24546
In fact we are still taking input on the content, so speak up and let us know !
Stu
At the February 2016 Moodle Developer meeting Martin Dougiamas said that there are plans at Moodle head office to update the very old Introduction to Moodle programming course on dev.moodle.org (see the meeting video recording at about 10:40).
That's great news!
Announcement of plans to update programming course (10m35s->).
Is there any open discussion on what the updated course will look like?
Hi David Mudrák,
Thanks for you help
Now I go through the link, once I will come back the any difficulties in that ...
You can also browse through the previous posts of people who seem to know what they are doing (e.g. Tim Hunt) to how things are done.
As Tim says, learning by doing is an excellent idea, and it is good to start with something quite simple, even if it is not on your list of priorities.
(Not a useful suggestion but) every time this thread pops up in my inbox I can't help but think of this:
https://devhumor.com/media/easy-way-to-learn-programming-in-single-night
(Another not a useful solution) but:
-Derek
1.teach with Moodle for a week.
Everyone who develops Moodle code for a living should have to do that for a week a year
Hi Richard Oelmann,
I am discrepancy what you post.
One of the website suggested me gothrough the moodle forum they must help regards this ..
That's only hope and reason I posed this topic. Many good peoples( souls) helping me and guiding through here...
Apologies for any offence caused - it was posted as a humorous link and not as a meaningful comment on your request which had already had many useful replies. That is why it had an opening statement that it was not intended as a useful reply. I realise language differences often mean that such humour may be misinterpreted and again I apologise for any unintentional offence caused.
Richard
I was reminded of the time I took a 14 hour flight with only Peter Nortons Assembly programming book for entertainment. I had hoped the lack of alternatives would mean I learned how to ASM. I didn't;
Bala, if you are upset by that comment you will spend a great deal of time being upset, there are far harsher discussion forums than the ones on this site.
How are your investigations going, have you written/updated some code yet, what are the best resources you have found?
Hi Marcus Green,
Thanks for your support..
I am on the way code development. I am not taking it has serious because many people's had experienced at the time of learning and new platforms.
I will take it positively..
Hi Richard Oelmann,
Ok, ok no issue, Just be cool... We will go further in the moodle .
Hi
Yes, I am already acclimatize.
Thank you
Hi Tim Hunt,
Yes I will try
Thanks for your guidance.
You are right that the resources for new Moodle developers are not great. The best three resources are the Moodle developer documentation, these forums, and reading other people's code.
I have been teaching the MoodleBites developers course (as mentioned elsewhere in this thread) Having to teach this stuff really made it clear to me how much there is to know about Moodle. We are going to be refining that course and maybe bring out some less heavy duty ones.
My advice though is just to get started with something small, and post a lot of questions here on the forums. You won't understand everything you are doing, but you shouldn't worry too much about that. Its a lot like like that when you learn a language like Japanese or Russian too. You can't wait till you know everything completely, before you use it.
Having contributed to many open source projects in the past, I can initially say that all large projects take time to get your head around, no matter how well documented and how much help you have. It's the same as starting a new job and just expecting to know everything about the workplace that you need to know.
My experience has been that looking into and resolving bugs is always the best way to get started. It allows you to have a real world problem to solve, it ensures you have lots of capability to read what's going on and you only need to make small adjustments to the code to get the desired result. If you attempt to build new functionality up-front, you can get hit with the problem of not knowing the API at all. This can easily lead to re-implementing existing API's or not using them at all and trying to everything yourself. Both result in bad outcomes in Moodle. I've spent some time supporting situations where that has happened.
If you want to be able to learn development, it is critical you have a good IDE with auto-completion filled and function descriptions working so you can quickly and easily find functions you need. Learning the naming conventions help with finding function and class names. Debugging setup in your IDE is critical for 2 reasons. 1, you can see what's happening for the bug you are investigating and 2 you can see what all the variables are at different points in the code and what they are doing. Having been programming on Moodle for at least 5 years I still discover new information about parts of the code by seeing what objects are in the debugger in a certain function.
Aside from actual coding, conducting Peer review of items in the tracker in the 'waiting for peer review' status will allow you to understand what others say about that code as it's reviewed by them and for you to provide feedback to others for things that you know about. It allows you to see real world code that will go into Moodle, it will let you get skills at using the workflow and tools for bug tracking that Moodle use, including git merges. You will get experience conducting testing of issues which you will need lots of if you are developing your own code.
Even though there are comments indicating that there isn't great documentation, there is https://docs.moodle.org/30/en/Development:Developer_documentation as a reasonable start. I have contributed code to projects that make the amount of documentation for Moodle one look like it's the best project in the world. It's certainly not perfect, but the best way to improve it is to engage with it.
In terms of helping improvements for newcomers, you are in a golden position at this time to be able to do that. Many of those here have been doing this a long time and it's so second nature now that it's difficult to impossible to work out what the stumbling blocks of a newcomer will be as the answers are just in our brain now. So improving documentation for newcomers as you learn will provide a significant advantage to yourself and to others.
Just to add to Justin's post, and avoiding cross-posting, I've just added to this discussion here: https://moodle.org/mod/forum/discuss.php?d=324112#p1302564
There is an up-to-date "MoodleBites for Developers" online course, and it's a great way into the world of Moodle development ! The content won't suit everyone of course (no single offering every could) but this is always current, incredibly maintained and facilitated by Justin, and with his knowledge and experience provides a real 'inside track' for people wanting to get unskilled in understanding Moodle code, contributing plugins, etc. etc.
"wanting to get unskilled"?
I really enjoyed MoodleBites for Developers (I want more though! ). I'm looking forward to what the next version will look like.