On Tue, 2005-25-01 at 11:09 -0600, Ignacio Galmarino wrote: > i want to learn to develop gnome aplications ..... how to begin ???? > > what docs i need to read ?? > what apps i need to to use ??? > > which is the best way to begin ??? > > Thanks > Ignacio Do you mean programmer of GNOME based applications, or a developer of GNOME itself? There's a lot of overlap between the two, so lets give it a shot: 1. Decide what you want to do. If you want to write a new GNOME app, you need a pencil and paper, and you need to start designing your cool new application on paper (this will take a while). Otherwise you need to decide which GNOME module your most interested in, and study up on how it works generally: read the website, join the relevant mailing list(s), and stop by in IRC. 2. Now that you know basically what libraries/tools you need to start programming, you need to now *learn* how they work. Go to http://www.imendio.com/projects/devhelp/ and download devhelp. It is a program that displays the library API documentation that is auto generated from the source code. This is your friend at all times while programming GNOME. Also, visit both developer.gnome.org and live.gnome.org and begin looking for documentation on the modules/libraries you are interested in. http://developer.gnome.org/doc/tutorials/ is a good place to start. Also, do not forget that a number of GNOME's technologies are from FreeDesktop.org, so be sure to got there to look for your documentation. Lastly there is always google.com. The most detailed but hardest to understand form of documentation is the source code itself. Grab a copy of the latest version -- but unless your a supreme coder, you won't get far by trying to read the whole thing at once. Use it as a reference when you're trying to understand small portions of the code-base. 3. The best way to learn how to program anything is to write very simple example programs. As you learn more, graduate to increasingly more complex code until you have a basic application working. If the module you're learning has a tutorial, open up a text editor and terminal, and start typing in and compiling the code as you're reading. Interactivity is best. If the module you're learning does *not* have a tutorial then WRITE ONE as you learn it by yourself (and use yourself as the target audience). Even if you never show it to others, it will be invaluable to giving you a deeper understanding about the code. Learning a module without a tutorial is tough because you only have the API documentation and source code to work with: If the module is a library, start by browsing the API documentation to get an idea of how it works, then start writing simple trial and error programs that use the API. If you run into a road-block and cannot get past it yourself, you can turn to the mailing-list(s) and IRC to get help from fellow programmers. However, remember that the core developers/maintainers are busy people too, and you should only ask their help as a last resort. If the module is a application, then the "API" is in the header files (.h) in the source code, and may not be well documented. You will have to begin the task of learning from the source. Once again, small trial and error changes to the source code is best. Learning a code base is a never-ending task, so you need not task yourself with learning the whole thing at once! Break it up into pieces and come up for air once and a while. 4. Now you should have a very basic understanding of the module. If you goal is to write your own application, skip to the next step. If you goal is to help with GNOME, you need to start asking around how you can help out. Remember to START SMALL, with bite-sized pieces, then work your way up to bigger things. Check out #gnome-love on IRC or read the GNOME-love section on live.gnome.or for advice with this, or ask your module's maintainer directly. Begin answering questions that you can handle on the mailing list, and generally participating in the community discussions. Head over to bugzilla.gnome.org, make an account for yourself, and start looking at the bugs for your module. Some bugs can be easily marked as duplicate, or otherwise can be updated with more correct details. If you're confident, you can try proposing a solution or even writing a patch. 5. Learn how to use the open source development tools. There are a lot of them, specialized on the kind of job they were meant to do, so find out exactly what you need to know. The most important are CVS, which is the source code repository where all the latest copies of GNOME modules are kept, and 'diff', which is a program to generate patches based on the differences between the new code you've written, and the original code from CVS. Check out developer.gnome.org, live.gnome.org, or google.com to learn how to use them. 6. Have fun. If you don't enjoy what you do, then you'll never stay at it. Cheers, Ryan _______________________________________________ gnome-list mailing list gnome-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gnome-list