How to Become a Free Software Hacker

Table of contents:

How to Become a Free Software Hacker
How to Become a Free Software Hacker
Anonim

Writing and using free software is not just a way of programming, but a real philosophy in all respects. If knowing a programming language is (more or less) all you need to know to be able to code, this article will also tell you how to join the hacker community, find friends, do a great job together, and become a respected specialist with a profile impossible to create in other ways. In the world of free software you can easily obtain tasks that in a business context are instead reserved and granted only to the greatest experts, to the elite of programmers. Think about how much experience you will receive in the field. However, once you decide to become a free software programmer (or hacker), you need to be prepared to invest a lot of time to achieve this, even if you are already a student of computer science. This article is in no way about how to become a hacker (or cracker).

Steps

Become a Free Software Hacker Step 1
Become a Free Software Hacker Step 1

Step 1. Get a good Unix distribution

GNU / Linux is one of the most popular for hacking programming but often GNU Hurd, BSD, Solaris and (more or less) Mac OS X are also used.

Become a Free Software Hacker Step 2
Become a Free Software Hacker Step 2

Step 2. Learn how to use the command line

You can do a lot more with a Unix operating system if you use the command line interface.

Become a Free Software Hacker Step 3
Become a Free Software Hacker Step 3

Step 3. Learn some popular programming languages to a relatively satisfactory level

Without them, you won't be able to contribute by programming (the most important part of any project) for the free software community. Some sources suggest starting two programming languages at the same time: one for system (C, Java or similar) and one for scripting (Python, Ruby, Perl or similar).

Become a Free Software Hacker Step 4
Become a Free Software Hacker Step 4

Step 4. To be more productive, learn to use Eclipse or other similar integrated development tools

Become a Free Software Hacker Step 5
Become a Free Software Hacker Step 5

Step 5. Learn and use advanced editors like VI or Emacs

Learning difficulties are greater but you will be able to do a lot more with these tools.

Become a Free Software Hacker Step 6
Become a Free Software Hacker Step 6

Step 6. Learn about version control

Version control is arguably the most important cooperation tool for shared software development. Understand how to create and apply updates since most free software development in the community is done by just creating, discussing and applying the various updates and patches.

Become a Free Software Hacker Step 7
Become a Free Software Hacker Step 7

Step 7. Find a suitable, small-sized free software project that you can easily add to for experience

Most projects of this type today 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 programmers.
  4. Use version control.
  5. Have some parts that you think you can start practicing immediately without changing the existing code too much.
  6. In addition to code, a good project has active discussion lists, bug reports, welcomes and runs requests for improvement, and displays similar activity.

    Become a Free Software Hacker Step 8
    Become a Free Software Hacker Step 8

    Step 8. Contact the administrator of the project you have chosen

    In a small project with few programmers, your help should usually be accepted immediately.

    Become a Free Software Hacker Step 9
    Become a Free Software Hacker Step 9

    Step 9. Read the project rules carefully and try to follow them roughly

    Programming style rules or the need to document your changes in a separate text file might seem ridiculous to you at first. However, the purpose they have is to make shared work possible, which is why most projects use them.

    Become a Free Software Hacker Step 10
    Become a Free Software Hacker Step 10

    Step 10. Work on this project for a few months

    Listen carefully to what the administrator and other project members are saying. In addition to programming, there will be a lot of other things to learn. But if there really is something you don't like, feel free to just leave and look for another project.

    Become a Free Software Hacker Step 11
    Become a Free Software Hacker Step 11

    Step 11. Don't stick to the small project for too long

    As soon as you find yourself working successfully on that team, it's time to look for something more serious.

    Become a Free Software Hacker Step 12
    Become a Free Software Hacker Step 12

    Step 12. Find a serious, high-level free software project

    GNU or Apache organizations own most of the projects of this type.

    Become a Free Software Hacker Step 13
    Become a Free Software Hacker Step 13

    Step 13. As you are now taking the plunge, be ready for a much colder welcome

    You will likely be asked to work for a period of time without having direct access to the repository code. The previous minor project, however, should have taught you a lot. After several months of productive contributions you can then try to ask for the rights you think you should begin to owe.

    Become a Free Software Hacker Step 14
    Become a Free Software Hacker Step 14

    Step 14. Get serious work done and get it done

    It's time, don't be afraid. Go on even after you discover that the task is much more difficult than you thought at the beginning, right now, it is very important not to give up.

    Become a Free Software Hacker Step 15
    Become a Free Software Hacker Step 15

    Step 15. If you can, apply your serious work to Google's "Summer of Code" to get some money from this adventure

    But don't worry in any way if the application isn't accepted as they have far fewer funding options than really good programmers.

    Become a Free Software Hacker Step 16
    Become a Free Software Hacker Step 16

    Step 16. Look for a suitable conference nearby (a "Linux Day" or something similar) and try to present your project there (the whole project, not just the part you are planning)

    After informing the organizers that you are representing a serious free / open source project, you should normally be exempt from paying conference admission (if they don't, the conference is probably not suitable anyway). Bring your laptop with Linux (if you have one) and run the demos. Ask the project administrator for material you might need to prepare your speech or presentation.

    Become a Free Software Hacker Step 17
    Become a Free Software Hacker Step 17

    Step 17. Search the internet for announcements about an install party taking place nearby and try to join, as a first time user (looking at the various problems and how programmers fix them), and as an installer the next one

    Become a Free Software Hacker Step 18
    Become a Free Software Hacker Step 18

    Step 18. Finish the job, complete it with automatic texts and bring your contribution to the project

    Are you done! To be sure, try meeting the other programmers on the project in person for a beer.

    Become a Free Software Hacker Step 19
    Become a Free Software Hacker Step 19

    Step 19. For a better understanding, look for a concrete example of a free software project (see above) in the development history

    Each growing curve represents a contribution (lines of code) from a single developer. Developers tend to become less active over the years but the speed of the project often even increases as new people are added. So if you already come with some useful skills, there's no reason the team would choose not to invite you.

    Advice

    • Before asking any questions about the rules of conduct in the project, try to find the answers in the project documentation and in the mailing list archives.
    • Always continue the programming you started. Doesn't work, does it crash? There is a reason for everything and if you have the source code available, it usually means that you can force the system to do whatever you want, especially with the help of web search. This rule has its limitations but, on the whole, it tends to remain valid.
    • Only call yourself a hacker after some real hacker community has recognized you as such.
    • In the beginning, choose a class, module or some other unit that no one is actively working on at the moment. Working together with the same class or even just the same function requires greater skills and a lot of care from everyone.
    • The employers of some hacker programmers appear to have sufficient motivation to allow contributions to open source projects during working hours (usually because the company itself uses the open source program the hacker is developing). Think about it, you might be able to get at least some of the time you need this way.
    • If you still don't have enough faith in yourself, start with some parts of the code that you think are missing and could be written from scratch. Changes to existing code are more likely to be criticized.

    Warnings

    • In informal project meetings (like a beer out in the evening) that you haven't contributed in any way yet, you may have the unpleasant feeling of being totally ignored. Don't worry, some hackers make good friends later on, once you get respect with your programming contributions.
    • Don't start with small code refinements, ancillary comments, programming style improvements, and other "small caliber" things. You risk attracting much more criticism than serious contributions. Instead, collect all of these items in a single 'cleanup' update (patch).
    • Your reputation as a hacker in the project community reflects your present more than the past. In particular, if you want to be recommended, referenced or anything similar by your project leader ask him to do so while you are still actively contributing.
    • Avoid asking any questions related to fundamentals or programming tools. The time of a free software programmer is precious. Instead, discuss the basics of programming in forums or environments for newbies and beginners.
    • While the word "hacker" commands respect in most academic circles, some uninformed person could be associated with illegal operations in security systems or similar cybercrimes committed by groups of people with different intentions (called crackers in jargon). Unless you're willing to explain every time, pay attention to the person you're using this word with. Real hackers, as understood in this article, never participate in programming activities that may even appear illegal to them. First, they pride themselves on following the hacker ethic and secondly, violations of the law don't necessarily get paid better.
    • If you are going to meet free software hackers face to face, always leave your Windows laptop at home. Macs are somewhat tolerated more, but still not welcome. If you take your laptop with you, it must have Linux or another operating system installed that is considered "free software".
    • In the cooperative world of free software when programming, in rare cases even your entire group project can suddenly be replaced by someone else's contribution. Mature hackers are welcoming and benefiting from the new code being made available, and there is no better way to react. However, this attitude does not arise spontaneously and must be learned and improved with time and experience.
    • For the same reason, never expect a more experienced hacker to give you a detailed description of your task or provide you with any kind of supervision. Although open source projects can often have numerous strict rules, they usually work on the guidelines of what is known as extreme programming in software development methodology.
    • If your email client supports html messages, please disable this feature. Never attach documents that only proprietary software (such as Microsoft Word) can properly open. Hackers take this as an insult.
    • Do not voluntarily contribute to projects owned by companies that do not release parts of the code under an approved open source license. In these cases, the truly important parts of the project are more likely to remain in the owners' private folders, preventing you from learning anything useful.
    • Don't start by starting your own personal project, unless you want to remain in proud solitude forever. For the same reason, don't start by trying to revive an abandoned project that has already seen its former team vanish.
    • Projects that are already very successful may have rules, written or not, that give you nothing in exchange for the work you do (no money, the possibility of self-promotion, prestigious positions, etc.) regardless of contributions, such as in the case of of wikipedia). If you don't like that attitude, stick to projects that are more medium-sized and can't afford such behavior.
    • Large free software projects, especially around the GNU domain, do not consider your (professional, paid) work a private matter. If you get or change jobs in an IT company, they often require your employer to sign some agreements [1] that they may or may not want to sign. This may prompt you to choose the project with the least demanding conditions.

Recommended: