Selasa, 15 Juli 2008

How to Become a Free Software Hacker

Writing and using Free software is not just a programming, is a kind of philosophy. While programming language is all you need to program, this article is about how to join the community, get friends, do a great work together and become a respected specialist with profile you cannot get anywhere else. In a world of Free software you may rather easily get tasks that in a company only the elite, top level programmers are allowed to do. Think about the amount of experience this can bring. However if you once decided to become a Free software hacker, you must be ready to invest some your time into achieving this goal. This remains true even if you are an IT student already. Also, this article is not about how to become a cracker.

Steps
# Learn some popular programming language (C, C++, java or similar) till the more or less satisfactory level. Without this, you are useless to the hacker community and nobody will talk to you. To be more productive, learn Eclipse or other similar integrated development tool.

# Learn version control (CVS, SVN). It is likely the most important co-operation tool for shared software development. Understand how to create and apply patches (text difference files). The most of Free software development in the community is done creating, discussing and applying various patches.
# Find the suitable small Free software project which you could easily join to get experience. Most of such projects now can be found on SourceForge.net. The suitable project must:

1. Use the programming language you know.
2. Be active, with recent releases.
3. Already have three to five developers.
4. Use version control.
5. Have some part you think you can immediately start implementing without modifying the existing code too much.
6. Apart the code, a good project also has the active discussion lists, bug reports, receives and implements requests for enhancement and shows other similar activities.

# Contact the administrator of the selected project. In a small project with few developers your help will usually be immediately accepted.
# Carefully read the rules of the project and more or less follow them. 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 of projects do have them.
# Work in this project for several months. Listen carefully that 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.
# Do not stick with the underground project for too long. As soon as you find yourself successfully working in that team, it is time to look for the serious one.
# Find a serious, high level Free software or Open source project. The most of such projects are owned by GNU or Apache organizations.
# As we are doing a serious jump now, be ready for the far cooler acceptance. You will likely be asked to work for some time without direct write access to the code repository. The previous underground project should, however, teach you a lot - so after several months of the productive contribution you may try do demand rights you think you could have.
# Take and do a serious task. 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.
# If you can, apply with your serious task to the Google's "Summer of code" to get some money from this adventure. But just do not care if the application would not be accepted as they have far less funded positions than really good hackers working around.
# Look for a suitable conference happening nearby ("Linux days" or something similar) and try to present your project there (all project, not just the part you are programming). 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.
# Search the web for announcement about the 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.
# Complete the task, cover with automatic tests and contribute to the project. You are done! To be sure, try to meet some hackers of the project physically and have a glass of beer.
#
Development history
Development history
# For better understanding, look into real example of the development history for a Free Software project (above). Each raising curve represents a contribution (lines of code) from 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.

Tips

* If you still do not trust yourself enough, start from some part of code that you think is missing and can be written from scratch. Changes in existing code are much more likely to attract criticism.
* For the beginning, select a class, module or some other unit under which nobody is very actively working at the moment. Working together on the same class or even function needs more skills and a lot of care from all sides.
* Before asking any question about the working rules inside the project, try to search for the answer in the project documentation and mailing list archives.
* The employers of some hackers seem motivated enough to allow contributions during they working time (usually because the institution uses the Free/Open source program that the hacker is developing). Think, maybe you can get at least part of the needed time this way.
* Always continue the hacking you started. Does not build, does not run, crashes? There are reasons for everything and if you have source code this usually means that you can force the system to do whatever you want, especially with the help of the web search. This rule has its limits, but, indeed, never yield easily.
* Only say you are a hacker after some true hacker community recognizes you as such.

Posting from wikihow

Tidak ada komentar: