On 3/13/2009 3:12 PM, Bruno Matos wrote:
> By the way, is there any tutor program to start programming for mozilla?
> .. It would be great to have someone that introduces the basic things.
I'm someone who has gone in a period of two years from knowing nothing
to being a serious back end contributor, so let me comment on how I see
this happening from my own experience. Everything I say needs to be
prefaced with "from my own experience" or "as far as I know" so please
just insert that randomly in everything that I write.
There is no school of Mozilla, or formal methods of apprenticeship. So
you need to be a self-starter to get involved. There are serious
attempts at documentation from the Mozilla project, but it is not and
cannot be exactly what you need. I found the book "Rapid Application
Development with Mozilla" to be the most valuable resource, though it is
a bit out of date. If you are serious about getting started, I would
suggest to start 1) build the Mozilla project of your choice from
scratch, and 2) learn the material in that book. The challenge then will
be figuring out what has changed (less RDF, more javascript for example).
There is definitely a Mozilla way of doing things, even multiple
"Mozilla" ways (I find that the old timers have a different style than
the newer staff). It takes awhile to learn the culture, both the social
kind and the technical kind. The Mozilla platform also has its quirks
that it takes awhile to get used to.
But ultimately you just need to pick an area that interests you, and
start trying to do things. I started with junk mail processing, largely
because Scott MacGregor mentioned somewhere that he would love for some
developers to be more actively involved in that area. From there I
expanded my knowledge, drifting into new areas (though all have a mail
filtering theme still.) I also find myself noticing particular areas
that I need to learn in the platform, and then doing projects so I will
learn them. (strings, xbl, testing, crashes, filtering, database were
all once mysterious in the Mozilla platform for me and now fairly well
understood.)
IRC is clearly where the community interacts, so hanging out on the
maildev IRC group is where you will really learn who people are, and
what is currently important.
My recommendation to you as a way to select projects in the mailnews
area would be to look over the wanted-thunderbird3+ bugs on bugzilla, as
they are projects that are likely to be uncontroversial, yet not so
critical that you will be under undue pressure. Few of those will
actually be completed in TB3 for lack of developers. Find some that
interest you and match your skill level, and just get started. (With the
changes in the Calendar project, they are probably more critically in
need of help at the moment, so if that area interests you I would be
looking there as well.)
Please be prepared to put up with a number of frustrations, including:
1) The code rarely has overviews of what it does or why.
2) Progress is usually review limited, and figuring out who does what
review is not trivial. You need to develop a reputation with some of the
reviewers, and have a lot of patience.
3) It is very difficult to get serious discussions of technical
proposals without submitting a specific patch for review.
A corollary of 2) and 3) is that it is easy to start to believe that the
community and management really do not want or need your contribution.
That is however decidedly not true, at least from an intellectual
perspective. But everyone has an impossible backlog of things that they
need or want to accomplish, so the available bandwidth for reaching out
is pretty limited. And there just doesn't seem to be anybody on the
staff who really has the skill and the mission to make developers feel
welcome. But it is just an organizational weakness, at the practical
level the project is very open to participation - which has not always
been true in the past in Mozilla projects as I understand the history.
There is also the issue that many, many more people say that they want
to be involved than actually get involved, so it is easy to neglect an
offer to help. Do a few things to show that you are serious, and that
you have some skills. Don't be a whiner. Then you can find a home here
if you want.
rkent