Education/ComputerScience: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
 
Line 1: Line 1:
=Overview=
The majority of contributions to Mozilla come from people who don't work directly for Mozilla. Why do people choose to donate their time and skills to Mozilla? The commitment to keeping the web free and open motivates people. But there is also to the opportunity to learn and to build you reputation as a developer. Mozilla Firefox, for instance, is used by millions around the world. You could be one of the authors of its success. Because the Mozilla development process is open and participatory, new developers can gain access to some of the most skilled and experienced developers in the industry. Working on a large project and interacting with professionals in a meritocracy is a kind of experience that you can't get from a small classroom project.
Mozilla is a big project. There is code for the rendering engine, networking, document parsing, the JavaScript language interpreter, image and codec decoders, unit testing frameworks and more. Whatever your interest or abilities, there is almost certainly an opportunity for you to contribute.  
 
__TOC__
 
=Study areas=
Mozilla is a big project. There is code for the rendering engine, networking, document parsing, the JavaScript language interpreter, image and codec decoders, unit testing frameworks and more. Whatever your interest or abilities, there is almost certainly an opportunity for you to contribute. Knowing where to start can be confusing. A typical path for beginners to learn how to code Mozilla is to start by making extensions. Writing an extension in JavaScript, then writing an extension with binary components, and then integrating you extension code directly into the Mozilla platform are progressively more difficult tasks. But there's no reason you can't start by writing unit tests instead.  


==[[Education/ComputerScience/Platform|Mozilla Platform]]==
==[[Education/ComputerScience/Platform|Mozilla Platform]]==
Firefox, Thunderbird and many more applications are built on a common Mozilla platform. This is where you can find the rendering engine, document parsers, JavaScript interpreter and cross platform methods of interacting with the local operating system.
Firefox, Thunderbird and many more applications are built on a common Mozilla platform. This is where you can find the rendering engine, document parsers, JavaScript interpreter and cross platform methods of interacting with the local operating system.
==Mozilla Applications==
<!--
==[[Education/ComputerScience/MozillaApplications|Mozilla applications]]==
-->
Firefox is only one of many applications built on the Mozilla platform. The
[https://developer.mozilla.org/En/List_of_Mozilla-Based_Applications list of Mozilla based applications] is quite long. If you want to build you own application on the platform, consider using [https://developer.mozilla.org/en/XULRunner XULRunner].


==[[Education/ComputerScience/Extending|Extending]]==
==[[Education/ComputerScience/Extending|Extending]]==
Mozilla based software is extensible through four types of add-ons: extensions, plug-ins, themes and now Jetpack. Learn how you can change the behavior of a Mozilla application without changing the code.
Mozilla based software is extensible through four types of add-ons: extensions, plug-ins, themes and now Jetpack. Learn how you can change the behavior of a Mozilla application without changing the code.


==Embedding==
==Testing==
<!--
<!--
==[[Education/ComputerScience/Embedding|Embedding]]==
==[[Education/ComputerScience/Testing|Testing]]==
-->
-->
Parts of Mozilla code can be separated from the platform and used inside your own applications. For instance, the Gecko rendering engine. For embedding basics and instructions visit the [https://developer.mozilla.org/en/Embedding_Mozilla Embedding] page at MDC.
[https://developer.mozilla.org/en/Developing_Tests Unit testing] is essential to a project as large as Mozilla. If you hope to make a contribution to the core platform, you will need to learn to create a unit test that will prove it works and warn developers if someone else breaks it. Mozilla uses a variety of [https://developer.mozilla.org/en/Mozilla_automated_testing testing frameworks] for different types of code.


==Build and Release engineering==
==Build and Release engineering==
Line 27: Line 24:
A big part of getting a product like Firefox to market is the infrastructure for building and releasing the code. Unfortunately, there isn't much documentation at [http://developer.mozilla.org MDC] describing the process, but changing that is a goal of Mozilla Education.
A big part of getting a product like Firefox to market is the infrastructure for building and releasing the code. Unfortunately, there isn't much documentation at [http://developer.mozilla.org MDC] describing the process, but changing that is a goal of Mozilla Education.


==Testing==
==Embedding==
<!--
<!--
==[[Education/ComputerScience/Testing|Testing]]==
==[[Education/ComputerScience/Embedding|Embedding]]==
-->
-->
[https://developer.mozilla.org/en/Developing_Tests Unit testing] is essential to a project as large as Mozilla. If you hope to make a contribution to the core platform, you will need to learn to create a unit test that will prove it works and warn developers if someone else breaks it. Mozilla uses a variety of [https://developer.mozilla.org/en/Mozilla_automated_testing testing frameworks] for different types of code.
Parts of Mozilla code can be separated from the platform and used inside your own applications. For instance, the Gecko rendering engine. For embedding basics and instructions visit the [https://developer.mozilla.org/en/Embedding_Mozilla Embedding] page at MDC.
 
==[[Education/ComputerScience/Tools|Tools used by Mozilla]]==
Learn how to use the tools that Mozilla developers use. Using only a browser, it is possible to:
* browse and search source code for all Mozilla projects
* see older versions the Mozilla source code
* track bugs reports and submit patches
* see the status of the latest patches to the Mozilla source code
* share snippets of code


==Research==
==Research==
Line 63: Line 52:
* debugging
* debugging
* creating patches
* creating patches
==[[Education/ComputerScience/Tools|Tools used by Mozilla]]==
Learn how to use the tools that Mozilla developers use. Using only a browser, it is possible to:
* browse and search source code for all Mozilla projects
* see older versions the Mozilla source code
* track bugs reports and submit patches
* see the status of the latest patches to the Mozilla source code
* share snippets of code


==[[Education/ComputerScience/LanguageReference|Language reference]]==
==[[Education/ComputerScience/LanguageReference|Language reference]]==
210

edits

Navigation menu