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:
- Learn Python The Hard Way (Read Chapter 1 first, then you can read either book.)
- Poignant Guide To Ruby (Written in an odd but fun way.)
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:
- Eloquent Javascript (Also free and web/pdf)
- Think Python (Also free and web/pdf)
- Programming Ruby (Not free/Web)
- Pro Git (Free and web/pdf)
- Using SQLite (Not free)
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”:
- K&R’s C Programming Language
- Stroustrup’s The C++ Programming Language
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:
- The Dragon Book
- Programming Languages: Language Principles & Paradigms
- Essentials of Programming Languages
- Masterminds Of Programming
- Programming Interactivity
- Programming Paradigms For Dummies
- The Art Of Scalability
- The Next 700 Programming Languages
- The Well Grounded Rubyist
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.