The Hacker’s Path

Start with both Python and Ruby. These will give you two great, popular, easy to understand, languages to start with. You can do anything from desktop applications to web applications to server scripts to games…Learning these languages will also give you an idea of what kind of direction you want to go in for the future. Learn using these books (Both free and web/pdf based), since they’re made for beginners:

Honing Those Skills

Focus on Python for the structure and community, Ruby for the drive and expression. Once you’ve got these books down it’s a great time to pick up Javascript and reinforce what you already know and pick up some good practices like version control, databases, server architecture (Down to TCP/UDP) and whatever else is a part of what you want to focus on:

Expanding Your Horizon

I always suggest learning a functional programming language next, like Haskell, Erlang, or Clojure. It broadens your education and blows your mind in so many (good) ways. Use these books (All free and web/pdf based):

Gettin’ Paid, Makin Money

From there you can pick up some older/more popular languages C, C++, Factor, Java, Objective-C, or PHP for easy/bountiful/shitty jobs. Far warning, learning these languages last will give you both an edge and make you nauseous. I can only really suggest two books here but they’re considered the C and C++ “Bible”:

Becoming The Master

If you’re still yearning for more (And any great hacker would be) start filtering through the internet for good sources of wisdom and insight through RSS feeds, blogs, social networks, and websites devoted to hacking. Pick up some “theory” books (In no particular order) in order to further grasp what you’re doing:

While You’re Learning…

Reading a book or two wont get you far, as Learn Python The Hard Way will repeatedly tell you. You need to be doing 5 things every day:

  • Hacking
  • Taking notes
  • Hacking
  • Teaching other people what you know
  • Talking about what you don’t know
  • Working on Project Euler
  • Rewriting everything you did previously
  • Contributing to open source projects
  • Hacking

Tools

Here are some tools you’ll probably figure out you need along the way:

  • A Linux platform. (Ubuntu is a perfect first time OS)
  • A Linux server (VPSlink is cheap and effective)
  • The Internet
  • A fast PDF reader
  • A good grasp of how to use a search engine
  • Patience
  • An editor
  • A backup service
  • Hacking friends to keep you going
  • A social life
  • The platform you want to develop for
  • Patience
  • OTHER HOBBIES FOR FUCK SAKE

Not Another Neckbeard

Want to hone your mind even more? Get some hobbies that are essentially patterns:

  • Card games
  • Music
  • Strategy games
  • Drinking Heavily
  • Teh Womenz

In The End

Remember, this field can be both frustrating and infuriating depending on who you associate with and what you decide to do. There are guys out there who will argue about different tools/methods in a religious fervor. Pay attention to the people who get things done, break new ground, or get you pumped.

Posted on September 3 2010

Tumblr theme designed by The City Loop.