First of all
Learn c
C++
C#
Vb
.net
How to Become a
Hacker?
There is a community, a shared culture, of
expert programmers and networking wizards
that traces its history back through decades to
the first time-sharing minicomputers and the
earliest ARPAnet experiments. The members of
this culture originated the term ‘hacker.’ There
is another group of people who loudly call
themselves hackers, but aren't. These are
people who get a kick out of breaking into
computers and phreaking the phone system.
Real hackers call these people ‘crackers’ and
want nothing to do with them. Real hackers
object that being able to break security doesn't
make you a hacker any more than being able to
hotwire cars makes you an automotive
engineer. There are people who apply the true
hacker attitude to other things, like electronics
or music — but in the rest of this article we
will focus the skills and attitudes of software
hackers, and the traditions of the shared
culture that originated the term ‘hacker.'
Thinking Like a Hacker
Adopt the mindset of a hacker .
Hackers solve problems and build
things, and they believe in freedom
and voluntary mutual help. To be
accepted as a hacker, you must
behave as though you have this kind
of attitude yourself. And to behave as
though you have the attitude, you
have to really believe the attitude. So,
if you want to be a hacker, repeat the
following things until you believe
them:
The world is full of fascinating
problems waiting to be solved.
Successful athletes get their
motivation from a kind of physical
delight in making their bodies
perform, in pushing themselves
past their own physical limits.
Similarly, you have to get a basic
thrill from solving problems,
sharpening your skills, and
exercising your intelligence.
No problem should ever have to be
solved twice. The thinking time of
other hackers is precious — so
much so that it's almost a moral
duty for you to share information,
solve problems and then give the
solutions away just so other
hackers can solve new problems
instead of having to perpetually re-
address old ones.
Boredom and drudgery are evil.
When hackers are bored or have to
drudge at stupid repetitive work,
they aren't doing what only they
can do — solve new problems. To
behave like a hacker, you have to
want to automate away the boring
bits as much as possible.
Freedom is good. The authoritarian
attitude has to be fought wherever
you find it, lest it smother you and
other hackers. Not all authority
figures are authoritarian. However,
authoritarians thrive on censorship
and secrecy, and they distrust
voluntary cooperation and
information-sharing.
Attitude is no substitute for
competence. Hackers won't let
posers waste their time, but they
recognize competence — especially
competence at hacking, but
competence at anything is valued.
Competence at demanding skills
that few can master is especially
good, and competence at
demanding skills that involve
mental acuteness, craft, and
concentration is best.
Earn respect as a hacker . Like most
cultures without a monetary economy,
hackerdom runs on reputation. You're
trying to solve interesting problems,
but how interesting they are, and
whether your solutions are really
good, is something that only your
technical peers or superiors are
normally equipped to judge. This is
why you aren't really a hacker until
other hackers consistently call you
one. Specifically, hackerdom is what
anthropologists call a "gift culture."
You gain status and reputation in it
not by dominating other people, nor
by being beautiful, nor by having
things other people want, but rather
by giving things away: your time, your
creativity, and the results of your skill.
Write open-source software . Write
programs that other hackers think
are fun or useful, and give the
program sources away to the
whole hacker culture to use.
Hackerdom's most revered
demigods are people who have
written large, capable programs
that met a widespread need and
given them away, so that now
everyone uses them.
Help test and debug open-source
software. Any open-source author
who's thinking will tell you that
good beta-testers (who know how
to describe symptoms clearly,
localize problems well, can tolerate
bugs in a quickie release, and are
willing to apply a few simple
diagnostic routines) are worth their
weight in rubies. Try to find a
program under development that
you're interested in and be a good
beta-tester. There's a natural
progression from helping test
programs to helping debug them to
helping modify them. You'll learn a
lot this way, and generate good
karma with people who will help
you later on.
Publish useful information. Another
good thing is to collect and filter
useful and interesting information
into web pages or documents like
Frequently Asked Questions (FAQ)
lists, and make those generally
available. Maintainers of major
technical FAQs get almost as much
respect as open-source authors.
Help keep the infrastructure
working. The hacker culture (and
the engineering development of the
Internet, for that matter) is run by
volunteers. There's a lot of
necessary but unglamorous work
that needs done to keep it going —
administering mailing lists,
moderating newsgroups,
maintaining large software archive
sites, developing RFCs and other
technical standards. People who do
this sort of thing well get a lot of
respect, because everybody knows
these jobs are huge time sinks and
not as much fun as playing with
code. Doing them shows
dedication.
Serve the hacker culture itself. This
is not something you'll be
positioned to do until you've been
around for a while and become
well-known for one of the four
previous items. The hacker culture
doesn't have leaders, exactly, but
it does have culture heroes and
tribal elders and historians and
spokespeople. When you've been in
the trenches long enough, you may
grow into one of these. Beware:
hackers distrust blatant ego in their
tribal elders, so visibly reaching for
this kind of fame is dangerous.
Rather than striving for it, you have
to sort of position yourself so it
drops in your lap, and then be
modest and gracious about your
status.
Learning Programming
Learn how to program. The best way
to learn is to read some stuff written
by masters of the form, write some
things yourself, read a lot more, write
a little more, read a lot more, write
some more, and repeat until your
writing begins to develop the kind of
strength and economy you see in your
models. To be a real hacker, however,
you need to get to the point where
you can learn a new language in days
by relating what's in the manual to
what you already know. This means
you should learn several very different
languages. Besides being the most
important hacking languages, the
following represent very different
approaches to programming, and each
will educate you in valuable ways:
Python is a good language to start
off with because it's cleanly
designed, well documented, and
relatively kind to beginners. Despite
being a good first language, it is
not just a toy; it is very powerful
and flexible and well-suited for
large projects. Java is an
alternative, but its value as a first
programming language has been
questioned. [1]
If you get into serious
programming, you will have to
learn C , the core language of Unix
( C++ is very closely related to C; if
you know one, learning the other
will not be difficult). C is very
efficient with your machine's
resources, but will soak up huge
amounts of your time on debugging
and is often avoided for that
reason (unless machine efficiency
is essential).
Perl is worth learning for practical
reasons; it's very widely used for
active web pages and system
administration, so that even if you
never write Perl you should learn to
read it. Many people use Perl to
avoid C programming on jobs that
don't require C's machine
efficiency.
LISP is worth learning for a
different reason — the profound
enlightenment experience you will
have when you finally get it. That
experience will make you a better
programmer for the rest of your
days, even if you never actually use
LISP itself a lot. You can get some
beginning experience with LISP
fairly easily by writing and
modifying editing modes for the
Emacs text editor, or Script-Fu
plugins for the GIMP .
Familiarizing Yourself With Unix
Get one of the open-source Unixes
and learn to use and run it . Unix is
the operating system of the Internet.
While you can learn to use the
Internet without knowing Unix, you
can't be an Internet hacker without
understanding Unix. For this reason,
the hacker culture today is pretty
strongly Unix-centered. So, bring up a
Unix (like Linux but there are other
ways and yes, you can run both Linux
and Microsoft Windows on the same
machine). Learn it. Run it. Tinker with
it. Talk to the Internet with it. Read
the code. Modify the code.
There are other operating systems
in the world besides Unix. But
they're distributed in binary — you
can't read the code, and you can't
modify it. Trying to learn to hack
on a Microsoft Windows machine
or under any other closed-source
system is like trying to learn to
dance while wearing a body cast.
Under Mac OS X it's possible, but
only part of the system is open
source — you're likely to hit a lot
of walls, and you have to be
careful not to develop the bad
habit of depending on Apple's
proprietary code.
Download Linux online [2] or (better
idea) find a local Linux user group
to help you with installation.
While other distros have their own
areas of strength, Ubuntu is far and
away the most accessible to Linux
newbies.
A good way to dip your toes in the
water is to boot up what Linux
fans call a live CD, a distribution
that runs entirely off a CD without
having to modify your hard disk.
This is a way to get a look at the
possibilities without having to do
anything drastic.
Learning HTML
Learn how to use the World Wide Web
and write HTML . Most of the things
the hacker culture has built do their
work out of sight, helping run
factories and offices and universities
without any obvious impact on how
non-hackers live. The Web is the one
big exception, the huge shiny hacker
toy that even politicians admit has
changed the world. For this reason
alone (and a lot of other good ones as
well) you need to learn how to work
the Web. This doesn't just mean
learning how to drive a browser
(anyone can do that), but learning
how to write HTML, the Web's
markup language. If you don't know
how to program, writing HTML will
teach you some mental habits that
will help you learn. So build a home
page. Try to stick to XHTML, which is
a cleaner language than classic
HTML .
No comments:
Post a Comment