
Ask HN: Help me become a great hacker - reevo
Esteemed HN crowd,<p>I have always had an affinity for all things computer/technology related since the age of 11 or so. Almost every day, I would run home, after being dropped off by the bus, to watch an hour or two of ZD/TechTV, learn a few registry 'hacks', and spend the rest of the night tinkering with my precious e-machines rig.<p>Entering junior high, I knew I had a future in computer science and soon developed a love for business as well. However, being born into a very traditional family, my path had already been set for me. To them, I was already destined to being a dentist, pharmacist, or doctor. After many failed attempts at convincing the parents, throughout high school, that comp sci/business was my true passion, I was forced into pursuing a medically oriented major.<p>And here I am, about to graduate university, and I am fairly certain that a medically oriented career is not for me. After years of lurking HN, reading TC and all things web/tech, I've come to realize that the flame my parents have tried so adamantly to put out is shining brighter than ever. However, seeing as I've been caught up with studies over the past years, and lacked parental support to pursue my path of choice, I have little knowledge of all things programming.<p>So I come to the community filled with intelligent, creative, and knowledgeable hackers to help me begin my journey in becoming one. I've skimmed python and ruby books, but that is the extent of my programming knowledge. So as an absolute beginner, what resources, books, tips, tricks, etc. etc. do you have so that I may start forging my own path?<p>I want to become a great hacker.
======
mechanical_fish
We should really develop a ceremony. A sort of Hack Mitzvah. We could have an
eminent member of the open source community dress up in a big ceremonial robe
covered in surplus electronic parts, and people could approach one by one to
be handed a tiny gold-plated lambda and have the ceremonial blessing
pronounced: "Today, you are Free. Go Forth and Build Something People Want."

I'm not sure I'm kidding. The time after one leaves school can be very
stressful. Especially if you're trying to cope with parental pressure. So it
feels kind of boring, perhaps even harsh, to just come right out and tell you:
There's no secret. Just build something. You do not need our permission, and
we will give you contradictory advice anyway [1], and all the tools you need
are in front of you [2]. Stop flipping wistfully through the Ruby book and
dive in to Ruby! If you need help being silly go visit _Why's site!

<http://shoooes.net/> [3]

You may also find the presence of actual humans helpful. They can be good for
one's morale. Are there any tech-related gatherings in your town? If not, is
there a better town you could move to?

Oh, and be sure to watch this Ira Glass video:

[http://www.youtube.com/watch?v=-hidvElQ0xE&feature=relat...](http://www.youtube.com/watch?v=-hidvElQ0xE&feature=related)

There may come a dark time when you need to watch this video daily. Hang in
there.

\---

[1] We're all working on different things, which require different
technologies. We have different preferences. And, even if you get everyone to
agree on the problem, nobody really knows what the best solution is, or
whether the best solution will remain the best beyond next week.

If you _really_ want a recipe: Linux, emacs, Rails, jQuery, Web app. For
furious debate about every single element of that list... see all the rest of
the posts on HN.

[2] Well, okay, technically that's not true. You are going to need a lot of
time. And food. And the occasional break. Get a day job! You can practice
subtle career-path misdirection if you manage to get a day job that combines
medicine with a smattering of technology. There are lots and lots of those.
You might even like one of them.

[3] This was going to be hacketyhack.net but it is currently...
"transforming".

~~~
misterbwong
I'm with mechanical_fish on this one. I am far from being a "true" hacker but
I've learned along the way that programming (hacking) can really only be
refined through practice.

Believe me, I used to think that reading books/tutorials/articles made me a
better programmer, but, honestly, building something is the best way to learn.

As for steps, I'd say go in this order:

1\. Do some (quick) research about some languages you're interested in.

2\. Decide on the language that is most intriguing to you and that you think
you'd stick with.

3\. Find an idea for an app that will be useful to you. Be sure to set the
goal of your first app properly-don't try to take on too much (mathetica
clone) or too little (Hello World) with it.

4\. Build the darn thing. This is the point where you'd start looking up
tutorials/etc in order to figure out _how_ you'll actually do things with the
language.

------
frisco
Don't forget that great hackers didn't become great by wanting to be so. They
started working on a problem -- just like any other entrepreneur -- but their
abilities to make machines do what they wanted was what set them apart.
Technology is leverage.

Start small. Make a website or write a tool for some idea you have, and your
development will grow out of there organically.

~~~
ErrantX
> Start small. Make a website or write a tool for some idea you have, and your
> development will grow out of there organically.

That's probably the best advice for would-be hackers I have seen for a while.
kudos.

------
triplefox
A good start would be: try not to waste what you've learned. A starting point
would be to imagine ways to improve medicine via computing. There are always
ways that our information systems can be improved. It doesn't have to be an
impressive field or anything, even a small problem will work. Design what you
think a solution might be. Learn enough to do coding experiments with said
solution. You'll iterate over it a ton. If the problem turns out to be big you
will probably find yourself exploring things far off from the original problem
and eventually, maybe years out, discover you've hit on something new. It
might be viable as a business, or just a ground-breaking concept. Either way
you will hit on it if you keep exploring.

(This is from the perspective of doing mostly non-commercial programming. In
commercial work you are mostly cleaning up other people's messes; there is
little of interest and few learning opportunities after a certain baseline.)

------
tjr
You might find _The New Hacker's Dictionary_ to be useful for establishing
some background history and terminology.

For programming material, maybe take a look at _Structure and Interpretation
of Computer Programs_ , and see if it looks like a good fit for you. _The
Little Schemer_ would also be a good read.

Most important is to start hacking. Pick a language (Python, Ruby, or Scheme
might be good starting places), learn how to write some trivial programs, and
start expanding, seeking out more books and reference materials as you need
them.

------
mixmax
Offtopic, but maybe not: You're a great writer.

~~~
unalone
I'll throw my support behind this: you've got a knack for writing and keeping
attention.

That's a useful thing to be able to do: not for programming, perhaps, but the
same tricks that keep people interested in long blocks of writing can be used
to make a program appealing and engaging.

------
edcdave
For basic motivation and direction, try Don Lancaster's site and books.

Reading programs is just as important to the budding (and expert) hacker as
writing them. As goofy as it sounds, I found lots of inspiration trying to
convert BASIC game programs (as in Ahl's 101 Computer Games) to Python. First
time through try to get it to run. Then try to get it to work with fewer
lines. Then add some features. You'll be surprised how much you learn.

Good luck.

------
jimmyjim
"And here I am, about to graduate university, and I am fairly certain that a
medically oriented career is not for me. After years of lurking HN, reading
TC"

Sorry, what's TC?

~~~
frisco
TechCrunch

~~~
jimmyjim
Oh, thanks. :)

I personally never thought TechCrunch to have that great of reading material.
For me HN, proggit, /. and a few blogs do it (Coding Horror, Zuckerman's "My
Heart's in Africa", etc.). I hope I'm not missing on much else.

------
mannicken
How do you know that programming is your true passion if you've never built a
program? Try it and see if you really like [rogramming.

