How to Become a Free Software Hacker
Get a good Unix distribution., Learn how to use the command line., Learn some popular programming language until you reach a more or less satisfactory level., To be more productive, learn NetBeans or some other similar integrated development tool...
Step-by-Step Guide
-
Step 1: Get a good Unix distribution.
GNU/Linux is one of the most popular for hacking, but GNU Hurd, BSD, Solaris and (to some extent) Mac OS X are often used. -
Step 2: Learn how to use the command line.
You can do much more with Unix-like operating systems if you use the command line. , Without this, you cannot contribute code (the most important part of any software project) to the free software community.
Some sources suggest to begin at once with two languages: one system language (C, Java or similar) and one scripting language (Python, Ruby, Perl or similar). ,, They have a higher learning curve, but you can do much more with them. , Version control is likely the most important cooperation tool for shared software development.
Understand how to create and apply patches (text difference files).
Most free software development in the community is done creating, discussing and applying various patches. , Most of such projects now can be found on SourceForge.net.
The suitable project must:
Use the programming language you know.
Be active, with recent releases.
Already have three to five developers.
Use version control.
Have some part you think you can immediately start implementing without modifying the existing code too much.
Apart from the code, a good project also has active discussion lists, bug reports, receives and implements requests for enhancement and shows other similar activities. , In a small project with few developers your help will usually be immediately accepted. , The rules of the coding style or necessity to document your changes in a separate text file may first appear ridiculous to you.
However, the purpose of these rules is to make the shared work possible
- and the most projects do have them. , Listen carefully to what the administrator and other project members say.
Apart programming, you have a lot of things to learn.
But if you really do not like something, just go away to another project. , As soon as you find yourself successfully working in that team, it is time to look for the serious one. , Most such projects are owned by GNU or Apache organizations. , You will likely be asked to work for some time without direct write access to the code repository.
The previous underground project should, however, have taught you a lot
- so after several months of the productive contribution you can try to demand rights you think you should have. , It is time.
Do not be afraid.
Go on even after you discover that the task is lots more difficult than you initially thought
- in this step it is important not to give up. , But just do not care if the application is not accepted as they have far fewer funded positions than really good hackers. , After you tell you are representing a serious free / open source project, the organizers frequently release you from the conference fee (if they do not, the conference is likely unsuitable anyway).
Bring your Linux laptop (if you have one) and run demos.
Ask the project administrator for the material you may use when preparing your talk or poster. ,, You are done! To be sure, try to meet some hackers of the project physically and have a glass of beer. ,, Each raising curve represents a contribution (lines of code) from a single developer.
Developers tend to become less active over years, but the project frequently even accelerates as new people join.
Hence if you already come with some useful skills, there are no reasons why the team would not invite you. -
Step 3: Learn some popular programming language until you reach a more or less satisfactory level.
-
Step 4: To be more productive
-
Step 5: learn NetBeans or some other similar integrated development tool.
-
Step 6: Learn and use advanced editor like vi or Emacs.
-
Step 7: Learn version control.
-
Step 8: Find a suitable small free software project which you could easily join to get experience.
-
Step 9: Contact the administrator of the selected project.
-
Step 10: Carefully read the rules of the project and more or less follow them.
-
Step 11: Work in this project for several months.
-
Step 12: Do not stick with the underground project for too long.
-
Step 13: Find a serious
-
Step 14: high level free software or open source project.
-
Step 15: As we are doing a serious jump now
-
Step 16: be ready for the far cooler acceptance.
-
Step 17: Take and do a serious task.
-
Step 18: If you can
-
Step 19: apply with your serious task to the Google's "Summer of Code" to get some money from this adventure.
-
Step 20: Look for a suitable conference happening nearby ("Linux days" or something similar) and try to present your project there (all project
-
Step 21: not just the part you are programming).
-
Step 22: Search the web for announcements about an install party happening nearby and try to join it first time as a user (watch for all problems and how hackers solve them) and next time as an installer.
-
Step 23: Complete the task
-
Step 24: cover with automatic tests and contribute to the project.
-
Step 25: For better understanding
-
Step 26: look into a real example of the development history for a free software project (above).
Detailed Guide
GNU/Linux is one of the most popular for hacking, but GNU Hurd, BSD, Solaris and (to some extent) Mac OS X are often used.
You can do much more with Unix-like operating systems if you use the command line. , Without this, you cannot contribute code (the most important part of any software project) to the free software community.
Some sources suggest to begin at once with two languages: one system language (C, Java or similar) and one scripting language (Python, Ruby, Perl or similar). ,, They have a higher learning curve, but you can do much more with them. , Version control is likely the most important cooperation tool for shared software development.
Understand how to create and apply patches (text difference files).
Most free software development in the community is done creating, discussing and applying various patches. , Most of such projects now can be found on SourceForge.net.
The suitable project must:
Use the programming language you know.
Be active, with recent releases.
Already have three to five developers.
Use version control.
Have some part you think you can immediately start implementing without modifying the existing code too much.
Apart from the code, a good project also has active discussion lists, bug reports, receives and implements requests for enhancement and shows other similar activities. , In a small project with few developers your help will usually be immediately accepted. , The rules of the coding style or necessity to document your changes in a separate text file may first appear ridiculous to you.
However, the purpose of these rules is to make the shared work possible
- and the most projects do have them. , Listen carefully to what the administrator and other project members say.
Apart programming, you have a lot of things to learn.
But if you really do not like something, just go away to another project. , As soon as you find yourself successfully working in that team, it is time to look for the serious one. , Most such projects are owned by GNU or Apache organizations. , You will likely be asked to work for some time without direct write access to the code repository.
The previous underground project should, however, have taught you a lot
- so after several months of the productive contribution you can try to demand rights you think you should have. , It is time.
Do not be afraid.
Go on even after you discover that the task is lots more difficult than you initially thought
- in this step it is important not to give up. , But just do not care if the application is not accepted as they have far fewer funded positions than really good hackers. , After you tell you are representing a serious free / open source project, the organizers frequently release you from the conference fee (if they do not, the conference is likely unsuitable anyway).
Bring your Linux laptop (if you have one) and run demos.
Ask the project administrator for the material you may use when preparing your talk or poster. ,, You are done! To be sure, try to meet some hackers of the project physically and have a glass of beer. ,, Each raising curve represents a contribution (lines of code) from a single developer.
Developers tend to become less active over years, but the project frequently even accelerates as new people join.
Hence if you already come with some useful skills, there are no reasons why the team would not invite you.
About the Author
Anthony Reyes
Enthusiastic about teaching creative arts techniques through clear, step-by-step guides.
Rate This Guide
How helpful was this guide? Click to rate: