Learning how to become a hacker is a lot like learning to play an instrument, says software developer and open source advocate Eric Steven Raymond. ESR, as he's often referred to, lists seven steps to help would-be programmers learn how to hack. Picture: Sebastiaan ter Burg/Flickr
"Hacking" here is defined as "exploratory programming in an open-source environment" -- a style of programming, not security breaking or crime. The "incremental-hacking cycle" suggested here will likely be familiar to anyone who's taken a hands-on approach to learning to code: Pick an open source program you're interested in, find a small feature to change or add, make your change, and share it back with the open source community. Then pick a new, harder project. (There's more to that, but that's the gist of it.)
That bit about sending your patch to the program maintainers is an essential part, ESR says:
I originally described this as an optional step; a wise friend pointed out that probably I shouldn't have. Solitary noodling on your instrument is all very well for practice, but music is completed and validated when the creativity in it is heard by other people. Solitary noodling on your computer is similarly good for practice, but hacking is completed when other people use what you wrote. That real-world test is important.
Sometimes (oftener when you are just starting) your patches will be rejected. You need to learn to cope with this. It doesn't mean you're doomed to fail in your quest; usually what it does mean is that you have not read the code carefully enough, or (just as usually) you have missed something important aboout the culture and practices of the developmemt group you are trying to contribute to. These mistakes can be repaired.
The benefit of this incremental approach is you immerse yourself in lots of code, with increasing complexity, and then eventually you'll be able to create more original code -- much like musicians with a wealth of music listening and practice are able to turn musical patterns into original compositions.
Check out the full post from the esteemed author of The Cathedral and the Bazaar for more details.
How to Learn Hacking [Eric Steven Raymond]