The Open Source Software Development, Linux and Git Specialization will give you a strong foundation for working comfortably and productively in open source development communities. By completing the specialization, you’ll have a better understanding of the Linux environment, as well as methods and tools required to successfully use it, and you’ll know how to use git, the distributed version control system.
Open Source Software Development Methods
In this course, we will define what open source software is, we will go over the history of open source software and what benefits it has provided to the world’s technology infrastructure over the decades. The course aims to teach you how to work in open source projects productively and gain a lot of benefits from it, and really understand what the advantages are. You will learn about collaboration best practices, and how to encourage diversity in open source projects. We will discuss the different licensing models that are available, as this will help you decide what the best license is for your project. We will talk about methods that are commonly used, such as Continuous Integration, and use of GitHub and other hosting providers as a central meeting place for open source projects, and we will provide some examples of successful open source projects.
Linux for Developers
In course 1 we talked about open source software and the motivation and methods of using it. In course 2, we will introduce you to Linux systems, and help you feel comfortable working at the command line:What Linux is
How to separate the kernel from the entire operating system
Making contributions to the kernel
Graphical system, and how it works
Working at the command line
Filesystem layout, partitions
You will learn what it’s like to work on Linux system, and get a good understanding of the essential skills you need when you work on a daily basis with Linux systems.
Linux Tools for Developers
Course 3 is a continuation of the previous course, and will focus on teaching you how to work with tools you need to do your everyday work. The course begins by introducing you to numerous essential command line tools that are used daily. Then, it focuses on bash scripting - you will learn how to construct scripts and how to do very complicated tasks in an automated way. The course looks at files and filesystems and focuses on compiling programs in Linux, using gcc and other compilers, and using libraries of different types. It also takes a look at how Java works in Linux, and explains why there is no reason to worry about having easy-to-use Java programs in Linux. Course 3 ends by covering building packages out of software in Linux.
Using Git for Distributed Development
Course 4 focuses on using git for open source software distributed development. Git is a revision control system which arose out of the Linux kernel development community. Git was designed to help developers spread across the globe working on complicated projects coordinate their work in a rational way and keep track of everything they were doing. Overtime, Git has grown to be used by millions of projects today. This course gives you the opportunity to learn how to use git efficiently and make contributions in a relatively short amount of time. It will cover:How to install git
How to initialize a repository
How to make changes in a repository
How to make changes in repositories available to others
How to acquire changes made by other individuals
How to find errors in your work and go back to earlier states of yoru projects
How to make commits, diffs, merges, rebases.
The course will help you get the skills to have a good understanding on how to use git. You will have a good knowledge about git workflows, identifying problems in your workflows, and finding solutions to solve these problems.
Experience as a developer on any operating system.
Experience in working at the command line is not necessary, but would be helpful.