Experiment
I started to run an experiment: A series of pull-requests configuring CI
Let's see if people follow it and if some people might even participate with a few issues of their own.
Open Source
I think one of the best ways to learn and practice software development is by participating in Open Source projects.
I've organized quite a few Meetups and Hackathons where the goal was to help people get started with Open Source. I also taught a course at the Weizmann Institute of Science where part of the material was learning about development of open-source projects.
I am now thinking on how to extend this and how to find organizations that will be interested to sponsor these activities. Either as a way to get people work on their own open source project or on open source projects they work on.
Or because seeing people work on open source projects will help them find new talents.
Maybe because they would like to help improve the general state of the Open source world.
In any case recently I encountered two people posting about courses about Open Source Development. This is fascinating and I think we can learn from these a lot.
Courses
DPS909 - Topics in Open Source Development
at Seneca College in Canada.
See the posts of @pdr0zd starting from his self introduction
OSD600 - Topics in Open Source Development
also at Seneca College
See the posts of @tdaw for example this one
See also anshul137
They run the Telescope project where they aggregate the blog posts of the participants in the course.
Goals
- Gain experience in contributing to existing code-base
- Fixing bugs
- Implementing new features
- Reviewing changes made by others
- Contributing ideas to a bug/feature.
- Learn how to read code written by one or more other people
- Collaborate with seasoned developers remotely in an asynchronous way (different location, different time-zone, different availability)
- Increase the written communication skills
- Be able to create well-crafted bug-reports.
- Include reference to other issues, to commits
- Describe the relevant information of the environment
- How to reproduce the issue
- Be able to create valuable commit messages
Questions
- How much of the course should work on synthetic examples (e.g. small projects developed specifically for the course to practice certain skill) and how much should be contributing to real world projects written by others? The latter is more, well, real-world, but will only cover the skills that are needed at the specific project and at the specific time. In this case the variation of the tasks can be quite big. On the other hand it immediately creates value to other projects.
Discuss
What is your experience regarding the usefulness of Open source contributions and ease of finding employment?
What other courses do you know where people learn and practice(!) how to contribute to open source projects?
Top comments (0)