Open Source Software Development, Linux and Git
Offered By: Linux Foundation via edX
Course Description
Overview
The “Open Source Software Development, Linux and Git” Professional Certificate Program is designed for developers with experience working on any operating system who want to understand the basics of open source software development. The program surveys how open source software works, including advantages of using it, methods of working in OSS communities, governance models and licensing choices. It delves into Linux systems and Linux tools for developers, including installation, desktop environments, text editors, important commands and utilities, command shells and scripts, filesystems and compiling software. It also provides a thorough introduction to Git, the source control system that arose out of the Linux kernel community, that enables widely distributed development to operate efficiently.
This program will prepare learners to work comfortably and productively in open source development communities and Linux environments. It shows learners have mastered important Linux methods and requisite tools, can use Git to create new repositories or clone existing ones, commit new changes, review revision histories, examine differences with older versions, work with different branches, merge repositories, and work with a distributed development team.
Syllabus
Course 1: Open Source Software Development: Linux for Developers
Start your open source software (OSS) adventure today by learning the key concepts of developing open source software and how to work productively in a Linux environment.
Course 2: Linux Tools for Software Development
Learn the tools you need to confidently work in Linux development environments and beyond.
Course 3: Git for Distributed Software Development
Get a thorough introduction to Git, the source control system that arose out of the Linux kernel community, that enables widely distributed software development to operate efficiently.
Courses
-
Open source software (OSS) has become dominant in the technology space. Since its launch in 1991, Linux has grown to power virtually all the world’s supercomputers, most mobile devices, financial exchanges, space stations and rovers, and serves as the backbone of the cloud and the internet itself. Companies, organizations, governments and individuals around the world rely on Linux and open source technologies to conduct business and live their lives every single day. At the same time, the demand for Linux and open source talent is as strong as ever, as revealed by the 2021 Open Source Jobs report.
This course will guide developers to understanding the ‘rules of the road’ of creating open source software, either as a newbie or as someone with experience primarily in creating and working with proprietary code.
The first part of this course covers the fundamentals of open source software development: the who (successful projects and communities), what (definition), why (benefits), where (Git), and how (licensing, compliance, collaboration tips, managing diversity, and continuous development & integration).
The second part of this course dives into the world of Linux: what Linux is, its history, how to separate the kernel from the operating system, and making contributions to it. It covers the graphical system interface, as well as working at the command line, and continues to discuss filesystems, major system components, user accounts, and more, to help you get fully oriented to working on a Linux system.
This course will provide you with a strong foundation for working comfortably and productively in open source development communities. By the end of this course, you will have a better understanding of the Linux environment, as well as the methods and tools required to successfully use the Linux environment.
-
As the Linux kernel has thousands of developers spread worldwide, working on many different time zones and on various complex projects, it became imperative to coordinate and keep track of all that work in a rational way. Git was designed for that purpose, and it has since grown to be used by literally millions of other development projects; it is the underpinning of most open source software work that is being done today.
This course is designed for computer users who have limited or no experience working in a collaborative development environment; and/or for those who already have done some work on Linux and other open source projects and are looking to gain a good grasp of how to use Git.
In this course, you will learn what Git is and how to install it. You will see how to initialize a repository, make changes in it, make it available to others, and acquire and use the changes made by other individuals. The course will teach you how to find errors in your and others' work, and how to go back to a working copy to quickly identify the change that produced the error. You will also become familiar with some essential Git procedures, such as cloning, branching, making commits, getting diffs, doing merges, and rebasing. The course will touch on complicated workflows so you understand how to approach them when problems arise.
The purpose of this course is to get you up and running so you will be able to contribute and use Git in a relatively short amount of time. Upon course completion you should be able to understand what tools are needed to successfully handle many complex issues and workflows that arise during the collaborative development process.
-
If you are a developer with experience working on any operating system and want to understand the basics of open source development, this course is for you. Experience with the command line is not necessary, but would be helpful.
The course begins by introducing the numerous essential command line tools that are used daily in software development. It then focuses on bash scripting, explaining 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. This course also covers building packages out of software in Linux, and more.
This course helps you familiarize yourself with essential command line tools, so you can work comfortably and productively in Linux environments, and demonstrates that you have mastered important Linux methods and requisite tools.
Taught by
Jerry Cooperstein
Tags
Related Courses
1C:Enterprise Junior Developer CourseMoscow Institute of Physics and Technology via Coursera Agile Development
University of Virginia via Coursera Testing with Agile
University of Virginia via Coursera PM4R Agile: mentalidad ágil en proyectos de desarrollo
Inter-American Development Bank via edX Agile Planning for Software Products
University of Alberta via Coursera