Ask HN: Help me become a great hacker
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.
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.
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.
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?
I want to become a great hacker.
14 comments
[ 3.0 ms ] story [ 46.1 ms ] threadStart 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.
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.
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.
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...
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".
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.
(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.)
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.
Sorry, what's TC?
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.
By the way, reading books might help. Tell your parents to fuck off as well. They sound like douchebags.