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.
1. 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. Also, learn Eclipse or other similar integrated development tool.
2. Learn version control (CVS, SVN) which is one of the most important co-operation tools. 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.
3. 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.
4. Contact the administrator of the selected project. In a small project with few developers your help will usually be immediately accepted.
5. 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.
6. 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.
7. 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.
8. Find a serious, high level Free software or Open source project. The most of such projects are owned by GNU or Apache organizations.
9. 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.
10. Take and do serious task. It is time. Do not be afraid. Go on even after you discover that the task is lots more difficult than you intially thought.
11. 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.
12. Look for a suitable conference happening nearby (“Linux days” or something similar) and try to present you project there (all, 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.
13. Complete this 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.
* 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.
* 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.
* Avoid like pest asking any question, related to fundamentals of programming or programming tools. The time of the Free software programmer is as valuable as gold and nobody can afford to teach you the basic.
* For the same reason, never expect an older hacker writing a detailed description of your task or even providing any kind of supervision for you.
* While Linux may be “user angry” time to time, it is a native operating system for the absolute majority of the Free software projects, so you must have it at least on a dual boot.
* The employers of many 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.
* Only say you are a hacker after some true hacker community recognizes you as such.
Things You’ll Need
* A computer with relatively good Internet connection and best with Linux OS installed.
* Basic knowledge on at least one programming language and a strong intention to learn more.
* Considerable amount of time, at least 5 hours a week (a typical hardcore hacker contributes as many as 14).
* While the formal education in informatics would make your way lot easier, you do NOT need it as a mandatory condition and no any real hacker community will ever ask you. This folk only respects practical skills. 40 % of hackers are self – learned.
* The described path of becoming a hacker needs at least about two years to be completed.
* If you plan to meet Free software hackers eye to eye, always leave your Windows laptop at home. Mac OS is tolerated somewhat better, but also not welcome. If you do bring your laptop, it must run Linux or other operating system that they consider as “Free sotware”.
* While the word “hacker” sounds with respect in the most of the academic environments, for some uninformed people it may associate with breaking into security systems and other computer-related crimes that a different social group (crackers) do. Unless you are ready to explain, look to whom are you telling this word. Real hackers as they are meant in this article never join programming activities that seem for them illegal. First, they are proud of following the hacker ethic. Second, the law violations are not necessarily better paid.
* Do not volunteer to the company-owned projects that are not releasing some parts of they code under approved Open Source license. In such cases the really important parts of the project are likely to stay behind the closed doors of the owner, preventing you from learning anything useful.
* Do not start from small code optimisations, extra comments, coding style improvements and other similar “small-scale” stuff. It may attract far more criticism than any serious contribution.
* Do not begin from starting your own project, unless you want to stick in a pround loneliness for ever. For the same reason, do not start from the attempt to revive the abandoned project which has already lost its previous team.