Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Teach yourself you to Hack in 6-9 months (iamelgringo.blogspot.com)
45 points by iamelgringo on May 15, 2008 | hide | past | favorite | 38 comments


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


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.


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?


That seems like a pretty trivial issue to be concerned about.

It's like saying, 'after this class, I'm going to be a pro at Photoshop!' Everyone knows you won't, but it's used for motivational purposes to get one started on the track to learning.

Anyways, it's a helpful list, iamelgringo. Thanks.


I wanted to at least point someone in the right direction. I figured it was a better course of action than pointing them to PHP.

You're certainly correct. 6-9 months of learning how to build a web app does not a hacker make. A more accurate title would have been: Baby steps to hackerdom by learning the very basics of web programming.

The journey to Rome begins with the first step.


Word....I've been programming for 3 years and I still don't feel like a hacker :-(


As nice as it would be to hang on to the word "hacker", it's devalued by everyone; from the 14 year old who can point-and-click through sub7 to the 25 year old hipster who wants to give his web startup (and, invariably, his blog) an air of in-crowd chic.


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".


    Nowadays it seems to be closer to "programmer"
Actually, that's the original meaning: http://www.catb.org/jargon/html/H/hacker.html


That still looks more like "really good programmer".


That's a cracker, not a hacker. You even used the word crack in your description.


I'd say 6-9 years would make you a reasonable junior hacker.

Problem with the word is it's come to mean "quick and dirty solution". eg someone does a search on google, finds some code and copy and pastes it. This is not hacking.


"hacker" was just used for a catchy title.

It's a helpful post. Not sure I agree with all the choices, but I know a few people who are looking to take the next step and can't find any guidelines like these.


I think what he meant by hacker was "coder" or "programmer": someone witht the ability to turn a concept/idea into a working web/desktop/mobile application. Therefore in this case "hacking" is a skill that can be learned just as martial arts or cooking.

Edit:Hacking does not start or even end with coding skills. Hacking is so much more than software that the YC app asks you what have you hacked that is not related to software. Chefs are hackers, so are youngsters who pimp they ride. Hacking is what happens to us when we start asking ourselves too many times "what if?". It just happens that here we answer those questions using ruby/lamp/.net/ajax......


If you aren't a hacker after 9 months, you'll never be a hacker.


I think you are still a larva at nine months.

FWIW see: http://www.hacker-dictionary.com/terms/larval-stage


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.


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.


I'd agree with parts of your assertions. I tend to learn how things by diving in as well. But, I geared the post towards people who were starting from scratch. If one of those people tried to pick up RoR or Django, they would be hopelessly lost. So, This was intended to at least give them a direction.

Also, I posted the time frames to give an estimate of how long it would take to gain a basic grasp of the tools mentioned. I might have to edit to post to reflect that.


I fully agree. Learning is not a linear process. Those that ultimately learn the most are those who have probably failed the most. It is only through humility that you start to accumulate knowledge. I've run thousands of times into brick walls when it comes to programming, but I've had the stamina to backtrack and figure out why I hit a dead end (i.e., a compiler error, a logic error, etc.)


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


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.


What won't work? Check out all the variations on "hacker": http://en.wikipedia.org/wiki/Hacker


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.


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


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.


Or you could attend SuperHappyDevHouse.


in NC?



also known as a "study group" or a "startup"

:D


and probably the hardest step for a newb. no-one likes the new-fish.


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.


"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.



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

What's an actual programming language?


Why did you decide to leave lisp out?


this is useful, thanks


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 . . .




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: