Contribution FAQ

Frequently asked questions from new contributors.

What skills are needed to contribute?

There are ways to contribute no matter what your skills, but these are the skills most needed to contribute at a high level.

  • Programming language knowledge. Knowledge of C is most useful due to its use in projects like the Linux kernel. Knowledge of Python, JavaScript, Java, shell scripting and other programming languages can also be rather useful.
  • Version control knowledge. Knowledge of git is critical for contributing at almost any level. Even our documentation is maintained through git. See tutorials at https://lab.github.com.
  • Linux kernel knowledge. While far from the only open source operating system utilized on Beagles, it is the most popular. Getting familiar with both kernels and distributions, including the ABI and Linux Standard Base, can be very valuable. See tutorials at A Beginner’s Guide to Linux Kernel Development (LFD103) - Linux Foundation - Training.
  • Embedded bus literacy. Knowledge of I2C, SPI, UART, GPIO, USB, and other low-speed and even high-speed digital interfaces are very valuable. Knowledge some basic analog circuits utilizing PWM and ADC are also very useful. See tutorials at https://e-ale.org and other tutorials on Sparkfun and Adafruit learning sites.

What are some first projects to which I can contribute?

Check out Issues · beagleboard/Latest-Images · GitHub

What is Google Summer of Code and how do I get started?

See BeagleBoard.org - gsoc.

How do I demonstrate my skills?

This is something to be determined.