How to become a hacker?
I think the title can be misinterpreted so let me be clear: a hacker like a GNU hacker or like RMS.
Now what books, websites, videos, programing languages, etc. do you recommend me? Free content if possible
Thanks in advance :)
Be a hacker-cracker with C language!
> How to become a hacker?
Let me tell you I am really befuddled by the variety and the blatant incorrectness of the answers given by now to such a simple, I'd say, elementary question.
OP, do not let the amateurs sidetrack your enlightened quest for truth: you need one of these, OP, it's really that simple, just buy a pack of 12, right now. ---->
Hackers - By Steven Levy, is a good book for history in my opinion (although focuses on quite a bit of the not so good ethically crowd).
Python is up and coming (as ever), C is still the best language for hardware imo, Bash/Shell scripts are good for quickly making things (like python but in some ways simpler if you already understand shells).
I recommend browsing and subscribing to http://hackaday.com although they do often show off proprietary gear.
1) Wear a black hoodie at all times
2) Hack things (duh); hacktivism optional
3) Have synth and only synth music on your playlist
4) Be socially akward as a turtle with no face
5) Do drugs
6) See and talk to your dead father (optional)
7) Be delusional
EDIT: Woops, you meant a hacker, not a cracker
... I'll see myself out.
(LCTHW)
First, get some chopsticks. That's where it starts:
https://stallman.org/articles/on-hacking.html
One is not simply "told" how to be a hacker...
I learned Bash scripting and (later, POSIX shell scripting) by looking
at the manuals related to GNU Bash itself, which are either installed,
or are (more [completely][note]) available at GNU.org.
I'm currently learning GNU Guile [Scheme] because I'm trying to make
packages for Guix, and also learning Skribilo. All of which have their
documentation available at GNU.org.
[note]: "Completely" because the manual provided by Trisquel comes from
Debian, which in turn follows the Definition of Free Cultural Works, not
only the free/libre software movement (that is, they demand free/libre
non-functional data (with all the same four freedoms that we know about,
with some differing demands for functional ones), while the free/libre
software movement only demands for such content to be at least
shareable.). So, Debian had to write their own manual for GNU Bash.
Learning Shell scripting by reading the manual is impressive! I would not recommend that approach. One can start with https://flossmanuals.net/command-line/ (but skip the "STANDARD FILES" section that should definitely be toward the end of "ADVANCED-ISH" or maybe even in "ADVANCED": certainly a "bug" in the manual). Then, to learn (almost) everything about Bash through examples: http://tldp.org/LDP/abs/html/
Manuals enter the same category as software. They are functional: works are (indirectly) achieved through them.
https://www.gnu.org/philosophy/free-doc.html
In my opinion, GNU manuals are free as in freedom. They are under the GNU Free Documentation License... that allows invariant sections, which have non-functional content such as political statements (e.g. the "GNU Manifesto": the original reason for the invariant section clause). Those should not be modifiable. Debian disagrees: https://www.debian.org/vote/2006/vote_001.en.html#amendmenttexta
I definitely don't think of myself as a hacker, but in a nutshell I think its about trying to do something difficult by using your ingenuity, research and experimentation in order to solve something. I spent a very long time admiring programmers and who could do really amazing stuff with apprently so little effort and just idolizing their "genius", but in my view its all about taking that logical stuep forward and making some really good attempts and efforts. In the end you just may find that by definition you are a hacker. The other aspect of course is that your solution may not be elegant or "by the books" but it works and you can walk around feeling proud that you are capable of more than you initially thought you were capable of. There are even books these days you can buy in order to learn hacking, but I think true hacking is more of an investigation, which is why its often percieved as being geeky. Good luck on the journey, I'm on my way too.
> Now what books, websites, videos, programing languages, etc. do you
> recommend me? Free content if possible
This is a hard question. In my opinion it isn't a good idea to set out
`to be a hacker' or `to do hacking'. Instead, learn things, explore and
do interesting things, find out new and creative ways of doing things
and you'll be close to the spirit of the thing. `Hacking' just means
`creative playfulness'.
Instead of `how to be a hacker' it might produce better search results
if you looked for `how to be a Bash hacker', for instance. Or look for
in-depth information on a specific tool.
It is an ongoing misconception, originally coming from uninformed
journalism, that `hacking' means `security breaking'. Those who do the
latter are usually called `crackers'.
As far as technical books, I have to recommend `The C Programming
Language' by Kernighan and Ritchie (`K&R'). Richard Stevens has written
good textbooks on TCP/IP. My preferred C book is `C Programming' by
K. N. King (Norton 2008). There are a lot of good textbooks out there
but many are intended for classroom use (so maybe not what you're
looking for?).
Hacking isn't just a matter of knowing a programming language. There's
a mindset which I think is shown in the following books. Some have a
historical bent but I found them all informative and hope you'll find
some worthwhile. New editions may have come out - please do not assume
these publication dates are canonical!
Many of these you can probably find in a public library. I'm not saying
to give money to Amazon. (You arguably shouldn't use Amazon, though.
See: https://stallman.org/amazon.html)
* Hackers by Steven Levy (published by O'Reilly, 2010), which someone
already recommended.
* Crypto by Steven Levy (Viking 2001) tells the story of the first so-
called Crypto Wars. (One might argue that they never really ended.)
* The Hacker Crackdown by Bruce Sterling (Bantam 1992), for more history
about the `hackers' of the 1990s. Not always the kind of hackers you
meant but also contains information about the earliest years of the
EFF (eff.org).
* The Cuckoo's Egg by Cliff Stoll (Pocket Books 1990) describes Stoll's
pursuit of a cracker in the latter days of ancient UNIX.
* The Art of Deception by Kevin Mitnick (Wiley 2002) because it's often
easier to crack people than computers, but the investigative mindset
is much the same.
That last is getting off-topic but it brings me to some gratis things
you might find interesting.
Off the Wall with Emmanuel Goldstein from 2600 Magazine is a radio show
that covers events from `a hacker perspective'. They are still around
and have been for a long time. It can be found at:
https://www.2600.com/offthehook/
There are many videos of talks and presentations at media.ccc.de. The
CCC itself is an old hacker organization.
As far as relevant Web sites, the essays on gnu.org are a good place to
start, in my opinion. Somebody is thinking it, so I'll mention that rms
might take issue with describing written works as `content':
https://www.gnu.org/philosophy/words-to-avoid.html#Content
Eric Raymond's site is http://www.catb.org/~esr/ but Raymond and rms
don't always see eye-to-eye. However there is good history such as the
Jargon File (www.catb.org/jargon/) and I do think what Raymond has
written deserves to be considered.
https://stallman.org is rms's site, which has various essays and his
daily political notes.
I hope you find something worth looking into in my long message. Errors
and biases are of course mine.
I'm not sure what's with some of the other replies. A grey hoodie is
fine too and goes with a grey hat.
Well you could take advice from RMS himself:
"The most powerful programming language is Lisp. If you don't know Lisp (or its variant, Scheme), you don't know what it means for a programming language to be powerful and elegant. Once you learn Lisp, you will see what is lacking in most other languages."
"Lisp is no harder to understand than other languages. So if you have never learned to program, and you want to start, start with Lisp. If you learn to edit with Emacs, you can learn Lisp by writing editing commands for Emacs. You can use the Introduction to Programming in Emacs Lisp to learn with: it is free as in freedom, and you can order printed copies from the FSF.
You can learn Scheme (and a lot of deep ideas about programming) from Structure and Interpretation of Computer Programs by Abelson and Sussman. That book is now free/libre although the printed copies do not say so. "
If you're interested in a lisp language read "The little schemer"
Also free, if you are the kind to read language specifications:
R5RS: http://www.schemers.org/Documents/Standards/R5RS/r5rs.pdf
R6RS: http://www.r6rs.org/final/r6rs.pdf
R7RS: http://trac.sacrideo.us/wg/raw-attachment/wiki/WikiStart/r7rs.pdf
Free implementations I can recommend:
Guile (official GNU extension language!)
Racket (comes with an IDE, good for both learning and developing)
Chicken (compiles to C, relatively fast)
Gauche (good R7RS support)