Most of the Linux kernel is written in the C programming language, with a little bit of assembly and other languages sprinkled in. If you’re interested in writing code for the Linux kernel itself, which will explain some of the concepts and processes you’ll want to be familiar with.
But the Linux community is much more than the kernel, and needs contributions from lots of other people besides programmers. Every distribution contains hundreds or thousands of programs that can be distributed along with it, and each of these programs, as well as the distribution itself, need a variety of people and skillsets to make them successful, including:
- Testers to make sure everything works on different configurations of hardware and software, and to report the bugs when it does not.
- Designers to create user interfaces and graphics distributed with various programs.
- Writers who can create documentation, howtos, and other important text distributed with software.
- Translators to take programs and documentation from their native languages and make them accessible to people around the world.
- Packagers to take software programs and put all the parts together to make sure they run flawlessly in different distributions.
- Evangelists to spread the word about Linux and open source in general.
- And of course developers to write the software itself.