Chris, if your goal is to get a job, it may help to think about what an employer wants to see when to make you an offer for a good first job.
Don’t let this distract you from the joy of learning, or from learning material that is not directly relevant, but it may provide a motivator. In the end, you’ll be providing value to someone, so you may as well start thinking of it now.
Why not choose an open-source project that is well-known, and which has been historically open to accepting patches. Then find some bug that you can fix. There are tools to help you find all this. Then submit a patch, and you can honestly say that you contributed to the famous project.
I’m not very familiar with contributing to open source but Linux is written in C and from what I’ve heard the standards are pretty high. Probably you’d rather be looking at a smaller open-source Python project. But really, shev’s post seems like the most practical advice.
Pick one that looks interesting to you (ideally one you’re already a user of, but it doesn’t need to be) and download the source code. Most should have a README file that explains how to actually run the code (which sometimes involves installing dependencies, editing some config files, etc.). If the README is any good, it should have line-by-line instructions of what to type into the command line. If you can’t get it working, either ask for help or try a different project.
Once you’ve got the code running, take a look at the source code. It will be impossible to understand everything immediately, but try to get a very basic idea of how it works. Try editing what’s displayed somewhere or adding “print” statements to make sure you have some idea of what’s going on.
Then, take a look at the “issues” page of the github project. This will have lots of reported bugs and feature requests. Pick one of the bugs, and make sure that you can replicate it (i.e. make the bug happen for you—this doesn’t involve writing or editing any code, just running the program). If you can, try to track it down and fix it (this means editing code).
Once you fix a bug, make a github account and learn the basics of git and how to submit pull requests (github has pretty good tutorials). If you can’t figure this part out (it’s a little tricky at first), ask for help on stackoverflow, the project’s IRC channel, LW, or from someone you know). Some would suggest you learn git before downloading the project or fixing the bug, but I think it’s better for you to start working on the projects asap rather than trying to learn git immediately.
RIght, like maia said. There are plenty of well-known projects in every language. Here’s one tool to help find a project and there are other tools as well.
Why not choose an open-source project that is well-known, and which has been historically open to accepting patches.
How do you know as someone who never participated in an open source project whether a particular open source project is historically open to accepting patches?
It seems to me that part of the purpose of the post is to ask what this might be.
Until I get the chance to write an essay on what employers want to see, I’d say:
Coding well is essential, but employers want to figure out who has a professional attitude towards the job. Contributing to OS shows that you are willing to take on aspects of software development beyond coding up an application: Testing (for bugs, performance, etc.), bug-tracking, documentation, and more.
Chris, if your goal is to get a job, it may help to think about what an employer wants to see when to make you an offer for a good first job.
Don’t let this distract you from the joy of learning, or from learning material that is not directly relevant, but it may provide a motivator. In the end, you’ll be providing value to someone, so you may as well start thinking of it now.
Why not choose an open-source project that is well-known, and which has been historically open to accepting patches. Then find some bug that you can fix. There are tools to help you find all this. Then submit a patch, and you can honestly say that you contributed to the famous project.
You’re talking about Linux, right? This is a serious question; cryptic doesn’t work well with newbies.
Not necessarily. There exists more than one famous open source project.
I’m not very familiar with contributing to open source but Linux is written in C and from what I’ve heard the standards are pretty high. Probably you’d rather be looking at a smaller open-source Python project. But really, shev’s post seems like the most practical advice.
I believe JoshuaFox wasn’t talking about any specific project, just suggesting that you find one.
If you want to contribute to an open source project, I recommend you look at the most-watched python projects on github.
Pick one that looks interesting to you (ideally one you’re already a user of, but it doesn’t need to be) and download the source code. Most should have a README file that explains how to actually run the code (which sometimes involves installing dependencies, editing some config files, etc.). If the README is any good, it should have line-by-line instructions of what to type into the command line. If you can’t get it working, either ask for help or try a different project.
Once you’ve got the code running, take a look at the source code. It will be impossible to understand everything immediately, but try to get a very basic idea of how it works. Try editing what’s displayed somewhere or adding “print” statements to make sure you have some idea of what’s going on.
Then, take a look at the “issues” page of the github project. This will have lots of reported bugs and feature requests. Pick one of the bugs, and make sure that you can replicate it (i.e. make the bug happen for you—this doesn’t involve writing or editing any code, just running the program). If you can, try to track it down and fix it (this means editing code).
Once you fix a bug, make a github account and learn the basics of git and how to submit pull requests (github has pretty good tutorials). If you can’t figure this part out (it’s a little tricky at first), ask for help on stackoverflow, the project’s IRC channel, LW, or from someone you know). Some would suggest you learn git before downloading the project or fixing the bug, but I think it’s better for you to start working on the projects asap rather than trying to learn git immediately.
RIght, like maia said. There are plenty of well-known projects in every language. Here’s one tool to help find a project and there are other tools as well.
How do you know as someone who never participated in an open source project whether a particular open source project is historically open to accepting patches?
Here is a recent article with statistics on openness to accepting pull requests in various projects.
An article on ways to contribute if you’re not yet ready to contribute large amounts of OS code: Bug reports, bug fixes, documentation, etc.
At Ohloh, you can browse data on lots of projects and get a feel for how active each one is.
CodeHatch is designed specifically to get volunteers on-board OS projects.
It seems to me that part of the purpose of the post is to ask what this might be.
Until I get the chance to write an essay on what employers want to see, I’d say:
Coding well is essential, but employers want to figure out who has a professional attitude towards the job. Contributing to OS shows that you are willing to take on aspects of software development beyond coding up an application: Testing (for bugs, performance, etc.), bug-tracking, documentation, and more.