
Teach yourself you to Hack in 6-9 months - iamelgringo
http://iamelgringo.blogspot.com/2008/05/teach-yourself-you-to-hack-in-6-9.html
======
astine
Correct title: "Become a Web-savy Pythonista in 6-9 months"

If you want to become a hacker, develop these traits: 1\. A deep interest in
technology, particularly programming and computers, and a habit of fueling
this interest by learning and tinkering. 2\. A sense of pride in one's work
and a desire to compete with oneself.

That's it. Really. I've always understood a 'hacker' to be someone who
programs (or something similar) because he enjoys it. That is, as Aristotle
would say, he hacks for the sake of hacking as opposed to for the sake of
something else (like making a living.) If you become like that, knowledge and
skill should come naturally.

If you want a set of things to learn: 1\. Some programming languages, the more
the better, but use discretion: Make sure you learn them well enough to use
them. 2\. Unix. 3\. Windows. (like you're going to be able to avoid it.) 4\.
Math. 5\. A text editor. Preferably Emacs and Vim. (learn both of them) 6\.
Web protocols: TCP/IP, HTTP, FTP, when and how to use them. 7\. Markup
Languages (including HTML but don't stop there) 8\. Whatever else interests
you.

You don't have to know anything about computers to be a 'hacker' in the
original sense of the word, but it seems to have narrowed it's scope in
general usage.

Some background: <http://www.cs.berkeley.edu/~bh/hacker.html>
<http://www.catb.org/~esr/faqs/hacker-howto.html>
<http://www.paulgraham.com/gba.html>
<http://alum.mit.edu/ne/whatmatters/200304/hack.html>

~~~
iamelgringo
I titled the post "Learn how to hack..." because of the "Ask YC: How do I
become a hacker?" posts that keep coming up, not because I think that
following these steps will make you a hacker. When people ask, "How do I
become a hacker?" on this forum, they tend to mean, "How do I make web apps?"
and that's the question that I answered.

I tried to correct that in some of the edits.

------
hugh
Has the word "hacker" really become so devalued around here that it's now
considered something you can "become" from a standing start, by following a
six-to-nine-month course of study?

~~~
jpeterson
I don't really understand the meaning of this word anymore. Seems like in the
past it meant someone with super-top-notch-elite skills who could crack into
the world bank or pentagon or something. Nowadays it seems to be closer to
"programmer".

~~~
jsrn

        Nowadays it seems to be closer to "programmer"
    

Actually, that's the _original_ meaning:
<http://www.catb.org/jargon/html/H/hacker.html>

~~~
jpeterson
That still looks more like "really good programmer".

------
stillmotion
This article has a major, major fault. It implies that learning happens step
by step, and to learn new things you have to stop what you're doing and move
onto the next thing.

This is not how it works. Well, in my case. The way I learn, and have learnt
for the past several years, is by diving in head-first and facing the facts
1,000 times at once. I didn't learn python, then learn MySQL. No, I learn
Django which taught me the two, plus how to build a web framework, how to do
unit and functional testing, how to scale and deploy application, how to
interact with organized and structural programing, and how to be the best
programer I can be.

Learning doesn't happen step by step, it happens in a vast flow. In high
school, did they teach you how to write an essay, then let you write a little
English, then move onto History? No, they threw you in head-first with 6 or
more classes a day, and made you face the facts. If you really want to learn
how to "Hack", dive in face first, don't think about the consequences, fight
for your life and do what ever you can do to learn new things.

~~~
tdavis
Learning Django is not at all synonymous with learning Python and certainly
not at all synonymous with learning SQL. The entire point of a framework is to
abstract out things such as SQL via the use of an ORM. While learning Django
you do indeed learn the syntax and common of libraries of Python, but it's
hardly a good way to learn a lot about the language.

Diving in head first is a great way to learn by trial and error, but it should
create a splintering effect. You start learning Django which uses Python; you
like Python and go out and start learning more about it. This eventually
splinters out into branches where you go elsewhere to learn about more
fundamental programming concepts. You learn about this funky "SQL" stuff that
Django is writing behind the scenes and branch out to learn how to write SQL
queries yourself and concepts like indexes, triggers, stored procedures,
locking levels...

But to say Django "teaches" you things like Python, SQL and scaling... it's
naive and may even be insulting to anyone who has dedicated the years of their
life required to truly _learn_ these topics.

------
bluelu
Even if you master a programming language and have no clue about algorithms,
it won't work.

~~~
dgabriel
That really depends on what you want to do. For most webapps, the algorithm
you need already exists in a library, and your job is to tap into it.

For those apps that require serious algorithmic innovation, your best bet is
to start with a math degree, or (at the very least) a profound interest in
mathematics.

------
carterschonwald
this post seems to equate hack with "how to build a webapp" being able to hack
it should imply the ability to do webapps, but the converse is certainly not
the case.

------
chaostheory
forgot 1 step; make a developer friend. having someone u can get help from -
lessens frustration and helps tremendous ly

~~~
ph0rque
Better yet: find a handful of ambitious novices like yourself, as well as a
dev friend. Get together regularly and frequently with the novices to learn
together; invite the dev friend every once in a while when you get stuck as a
group.

I think I just described a micro-university.

~~~
as
Or you could attend SuperHappyDevHouse.

~~~
ph0rque
in NC?

~~~
jcl
Well, potentially...

<http://termie.pbwiki.com/HowToDevHouse>

------
STHayden
think the people who are not hackers view the term "hackers" as more of a
person who makes something from nothing. hacking in my mind has a lot of
allusions to trying to get through a jungle with a machete. It's a rough quick
way to get something done.

I don't think many on this site see their hacker status having anything to do
with quick and dirty but I think perhaps the general populous views it that
way.

------
rokhayakebe
"Learn-to-Hack" could be a good startup. I am sure anyone who reads HN and
cannot code would love to learn how to. If you are a good hacker and you love
to share your knowledge you can certainly build a loyal community may you
start "Learn-to-Hack" blog/web app.

Now having said that I think it is important for people who cannot code to
know that "Hacking" is a lifestyle and not really a skill or a profession. At
least that is the vibe I get from the ones I know. I think Hacking dates back
to thousands of years back. Like hacking "fire", "huts". Hacking is now
refered to software I guess. I dont think you can learn to be a Hacker. As a
matter of fact I am not even sure that all coders are hackers.

~~~
aaronblohowiak
<http://www.hacketyhack.net/>

------
eru
"Learning Python [...] is a very nice introduction to an actual programming
language."

What's an actual programming language?

------
daniel-cussen
Why did you decide to leave lisp out?

------
willphipps
this is useful, thanks

------
mroman
I personally think that someone who has a hacker inside them trying to get out
is intrinsically curious and focused enough to obtain the answers on his or
her own . . . if you need to ask around you don't really have it in you . . .

