Learn how to develop open-source software. This course focuses on open source software, an introduction to Linux systems and the use of Git, the revision control system.
Open-source software has become the dominant model for how the world’s technology infrastructure operates, from the smallest microprocessor to the largest supercomputers. Use of Open Source Software leads to better and faster development. The widespread collaboration puts more eyeballs on your code and has transformed the way people and corporations think and how things get done today.
In the first part of this course, we will survey how open source software works, including the advantages of using it, methods of working in OSS communities, governance models and licensing choices.
In the second part of this course, we consider Linux systems and cover a wide set of topics, including installation, desktop environments, text editors, important commands and utilities, command shells and scripts, file systems and compiling software.
In the third part, we give 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.
In just a few years, Git has risen to become the dominant system on the planet for collaborative development, with literally millions of projects using it.
This course will take between 50 and 60 hours to complete and contains 43 hands-on lab exercises that will allow you to practice your skills, as well as a similar number of knowledge check quizzes, and more than 20 videos showing you how to accomplish important tasks.
In this course you will:
- Obtain a strong foundation for working comfortably and productively in open source development communities
- Learn to work comfortably and productively in a Linux environment
- Master important Linux methods and requisite tools
- Learn to use Git to create new repositories or clone existing ones
- Learn to use Git to commit new changes, review revision histories, and examine differences with older versions
- Learn to use Git to work with different branches, merge repositories, and work with a distributed development team.
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. How to Work in OSS Projects
Chapter 6. Continuous Integration
Chapter 7. OSS Licensing and Legal Issues
Chapter 8. Leadership vs Control and Why Projects Fail
Chapter 9. Respecting and Encouraging Diversity in OSS
Chapter 10. GitHub and Other Hosting Providers
Chapter 11. Linux and the Operating System
Chapter 12. Graphical Environments and Interfaces
Chapter 13. Getting Help
Chapter 14. Text Editors
Chapter 15. Shells, bash, and the Command Line
Chapter 16. Filesystem Layout, Partitions, Paths and Links
Chapter 17. System Initialization
Chapter 18. Memory
Chapter 19. Networking
Chapter 20. Command Details
Chapter 21. System Administration
Chapter 22. Users and Groups
Chapter 23. Linux Filesystems
Chapter 24. Essential Command Line Tools
Chapter 25. Bash Scripting
Chapter 26. Files and Filesystems
Chapter 27. Compiling, Linking, and Libraries
Chapter 28. Java Installation and Environment
Chapter 29. Building RPM and Debian Packages
Chapter 30. Introduction to Git
Chapter 31. Git Installation
Chapter 32. Git and Revision Control Systems
Chapter 33. Using Git: An Example
Chapter 34. Git Concepts and Architecture
Chapter 35. Managing Files and the Index
Chapter 36. Commits
Chapter 37. Branches
Chapter 38. Diffs
Chapter 39. Merges
Chapter 40. Managing Local and Remote Repositories
Chapter 41. Using Patches
Chapter 42. Advanced Git Interfaces: Gerrit
- Experience as a developer on any operating system
- Experience in working at the command line is not necessary but would be helpful
- A Linux system is necessary, either a physical or a virtual machine, and any modern distribution will work. Please note that installation instructions are provided in the course material if needed.