A Beginner's Guide to Open Source Software Development (Linux Foundation)

Offered by Linux Foundation,
A Beginner's Guide to Open Source Software Development (Linux Foundation)

Learn the key concepts in developing open source software. This course introduces developers to the key concepts in developing open source software. It covers the who (successful projects and communities), what (definition), why (benefits), where (Git) and how (licensing, compliance, collaboration tips, managing diversity and continuous development & integration).

This course is addressed to software developers seeking to understand the ‘rules of the road’ of creating open source software, either as a newbie or as someone with experience primarily in creating proprietary code.

What you’ll learn:

  • Familiarize yourself with the key concepts involved in developing Open Source Software (OSS)
  • Understand how OSS evolved into today’s domination position
  • Explain the benefits of using OSS as compared with using Proprietary products
  • Familiarize yourself with open source projects that form the foundations of today’s word-wide technology infrastructure
  • Work with projects that can help you get a solid footing in OSS methods and communities, such as the TODO Group and OpenChain Project.
  • Behave properly while engaging in OSS projects, to develop the best code and build on the strengths of other contributors.
  • Understand OSS licensing issues, such as types (restrictive vs permissive) and explain how to choose the right one.
  • Make use of projects such as FOSSology and SPDX to foster compliance.
  • Know best practices for long term sustainability of projects, including how to respect and encourage diversity.
  • Know about GitHub and other hosting providers and advanced interfaces, such as Gerrit.

Course Syllabus:

  • Chapter 1. Course Introduction
  • Chapter 2. Open Source Software (OSS)
  • Chapter 3. Why Use Open Source Software?
  • Chapter 4. Examples of Successful OSS Projects
  • Chapter 5. Developing an OSS Strategy
  • Chapter 6. The TODO Group
  • Chapter 7. The OpenChain Project
  • Chapter 8. How to Work in OSS Projects
  • Chapter 9. Continuous Integration
  • Chapter 10. OSS Licensing and Legal Issues
  • Chapter 11. Compliance Projects: FOSSology, SPDX, CHAOSS
  • Chapter 12. Leadership vs Control and Why Projects Fail
  • Chapter 13. Respecting and Encouraging Diversity in OSS
  • Chapter 14. GitHub and Other Hosting Providers
  • Chapter 15. Advanced Git Interfaces: Gerrit
Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Getting Started with Go (Coursera) Coursera
University of California, Irvine

Getting Started with Go (Coursera)

Learn the basics of Go, an open source programming language originally developed by a team at Google and enhanced by many contributors from the open source community. This course is designed for individuals with previous programming experience using such languages as C, Python, or Java, and covers the fundamental elements of Go.

Jun 8th 2026
4 Weeks
A Beginner's Guide to Linux Kernel Development (Linux Foundation) The Linux Foundation
Linux Foundation

A Beginner's Guide to Linux Kernel Development (Linux Foundation)

Learn the key concepts in developing open source software. This free course introduces developers to the Linux kernel development process and teaches the explicit and implicit “rules of the road”. It covers configuring a development system, git basics, writing kernel patches, testing patches, writing commit logs, sending patches, and working on feedback from the kernel community.

Self Paced
Self-Paced
Engineering Maintainable Android Apps (Coursera) Coursera
Vanderbilt University

Engineering Maintainable Android Apps (Coursera)

Engineering Maintainable Android Apps, which is a 4 week MOOC that shows by example various methods for engineering maintainable Android apps, including test-driven development methods and how to develop/run unit tests using JUnit and Robotium (or equivalent automated testing frameworks for Android), as well as how to successfully apply common Java/Android software patterns to improve the extensibility and clarity of Android apps.

Jun 8th 2026
4 Weeks
Introduction to Linux (Linux Foundation) The Linux Foundation
Linux Foundation

Introduction to Linux (Linux Foundation)

Never learned Linux? Want a refresh? Take this course to learn the basics of this popular open source operating system. Develop a good working knowledge of Linux using both the graphical interface and command line, covering the major Linux distribution families. Linux powers 94% of the world’s supercomputers, most of the servers powering the Internet, the majority of financial trades worldwide and a billion Android devices. In short, Linux is everywhere. It appears in many different architectures, from mainframes to server to desktop to mobile and on a staggeringly wide variety of hardware.

Self Paced
Self-Paced
Introduction to Open Source Application Development (Coursera) Coursera
Illinois Tech

Introduction to Open Source Application Development (Coursera)

This course introduces basic concepts of systems programming using a modern open source language. You will learn to apply basic programming concepts toward solving problems, writing pseudocode, working with and effectively using basic data types, abstract data types, control structures, code modularization and arrays. You will learn to detect errors, work with variables and loops, and discover how functions, methods, and operators work with different data types. You will also be introduced to the object paradigm including classes, inheritance, and polymorphism.

Jun 8th 2026
5-12 Weeks
Desarrollo de aplicaciones avanzadas con Android (Coursera) Coursera
Universidad Nacional Autónoma de México

Desarrollo de aplicaciones avanzadas con Android (Coursera)

En este curso se retoman los temas vistos en cursos anteriores. Se complementan con aspectos prácticos como la forma de implementar mapas en tus proyectos con el API de Google Maps. También, muestra cómo aprovechar el multitask de Android y hacer animaciones en 2D para llevar tus aplicaciones a más dispositivos como weareables, televisiones y autos.

Jun 8th 2026
5-12 Weeks
Fundamentos de Android (Coursera) Coursera
Universidad Nacional Autónoma de México

Fundamentos de Android (Coursera)

Por medio de ejercicios prácticos, serás capaz de manipular las herramientas que Android te ofrece para desarrollar aplicaciones móviles. En este curso, instalarás el entorno de desarrollo Android Studio y manipularás sus más sofisticadas particularidades. Por ejemplo, la composición de archivos de un proyecto Android y los patrones más comunes para el desarrollo de tus aplicaciones.

Jun 8th 2026
5-12 Weeks
Concurrency in Go (Coursera) Coursera
University of California, Irvine

Concurrency in Go (Coursera)

Learn how to implement concurrent programming in Go. Explore the roles of channels and goroutines in implementing concurrency. Topics include writing goroutines and implementing channels for communications between goroutines. Course activities will allow you to exercise Go’s capabilities for concurrent programming by developing several example programs.

Jun 8th 2026
4 Weeks
Introduction to Web Development with HTML, CSS, JavaScript (Coursera) Coursera
IBM

Introduction to Web Development with HTML, CSS, JavaScript (Coursera)

Want to take the first steps to become a Cloud Application Developer? This course will lead you through the languages and tools you will need to develop your own Cloud Apps. Beginning with an explanation of how internet servers and clients work together to deliver applications to users, this course then takes you through the context for application development in the Cloud, introducing front-end, back-end, and full-stack development.

Jun 1st 2026
5-12 Weeks
CI/CD for Software Developers (Coursera) Coursera
Codio

CI/CD for Software Developers (Coursera)

This course is designed as an intermediate introduction to CI/CD. You will learn about the basics of automating processes and version control. This course uses GitHub, and you will need to have an account with them. Information is provided how to do this. Learners also use CI/CD to build, test, and check the quality of their code. The course ends with deployment, secrets, and a capstone.

Jun 8th 2026
3 Weeks
Full Stack Software Developer Assessment (Coursera) Coursera
IBM

Full Stack Software Developer Assessment (Coursera)

This is the final course in the Full Stack Professional Certificate. It will test your knowledge and the skills you’ve acquired so far. This course contains the graded final examination covering content from nine of the eleven courses in the certificate. You will be assessed on topics such as core cloud computing concepts; languages such as HTML, CSS, JavaScript, and Python; frameworks such as Node.js and React; and backend technologies such as Docker, Kubernetes, OpenShift, SQL, Django, and Serverless.

Jun 1st 2026
1 Week
Developing Android Apps with App Inventor (Coursera) Coursera
The Hong Kong University of Science and Technology - HKUST

Developing Android Apps with App Inventor (Coursera)

The course will give students hands-on experience in developing interesting Android applications. No previous experience in programming is needed, and the course is suitable for students with any level of computing experience. MIT App Inventor will be used in the course. It is a blocks-based programming tool that allows everyone, even novices, to start programming and build fully functional apps for Android devices. Students are encouraged to use their own Android devices for hands-on testing and exploitation.

Jun 1st 2026
5-12 Weeks