First piece of advice I can offer is, learn how to build things before you start trying to figure out how to take them down. Understanding how systems operate is the most important thing, then understanding how and why they fail is the next (but almost equally) important thing. Here are a few ideas on how to get started: Get yourself a few cheap, old, hand-me-down computers, reformat the hard drives and install some different operating systems (both proprietary and open source) on them, then network them together. Experiment with various flavors of Linux. Start with some real nonthreatening and pared-down distro like Xubuntu. Install it and be diligent about making sure you get all features of the system working. That is how you learn. Try it out, familiarize yourself with the various applications and how they work. Learn how to do everything in Linux that you used to do in Windows or Mac OS. Try out various environments, window managers, and workflows. Memorize all the most useful shell commands and keyboard shortcuts. Take the initiative to mess around and do things the low-level, "hard" way instead of the high-level, "user-friendly" way. Familiarize yourself with the command line interface and maybe delve into some shell scripting. Get to know the various configuration files, what they do, and learn how to modify them to make your system work how you want it to. Once you have your OS installed and working, try compiling and installing some new programs from raw source code instead of just using a package manager to grab them off the repos. Install and run a Linux Backtrack distro on a laptop, and learn to use the penetration-testing tools, including Metasploit. Try out various attacks against your own systems, investigate the root problems that caused the vulnerabilities, and research how to close those security holes. Learn how to conduct a variety of different attacks against various kinds of systems, by setting up your own systems in various configurations, running various vulnerable programs and services, and then attacking them using your Backtrack laptop. Get a wireless router and install DD-WRT on it. Explore the various awesome features and functionalities of that alternate firmware. Use your Backtrack laptop to investigate wireless vulnerabilities of various services on your DD-WRT router. Learn how to set up a firewall and lock down your router to repel such attacks. Pick up a high-level, object-oriented programming language like Java, Visual Basic or C++, and put some effort into working with it. Learn how to code simple functions, organize those functions together into discrete classes, then how to structure classes together into more complex applications. Think of a simple problem, figure out a way to use programming to solve that problem, then move on to a more difficult problem. Don't be put off by failures. Analyze your failures and try different approaches until you find something that works. Use online resources like Stack Overflow, Ycombinator, Coding Forums, TopCoder, etc. to find others who may have faced the same problem as yours, or a similar one. Learn to adapt solutions to new applications. If all else fails, don't be afraid to ask for help, but never resort to asking for help until you've thoroughly explored all the avenues you can think of. After you've achieved a familiarity with object-oriented programming, try investigating a lower-level, procedural language like C or even Assembly. This kind of programming is certainly not for everyone, but the rewards can be great if you can master it. While you're learning to program, and once you've achieved a comfort level of familiarity with an easy "beginner's distro," start working your way toward more "hands-on" distros like Debian, SUSE, Sabayon, and Arch. Each step you take along the road to more and more "challenging" distros will force you to make more important, low-level decisions about your computer that require more fundamental understanding of how the machine works. At some point, you should set a goal to achieve the successful installation and configuration of an extremely "techy" distro like Slackware or Gentoo. Successfully installing and configuring Gentoo for the first time will undoubtedly be a nightmare, but perseverance will reward you with a level of insight and familiarity into Linux that you probably cannot achieve in any other way. Plus you'll have a totally custom, personalized, screamingly fast Linux system tailored specifically for the hardware it runs on, that you built yourself from scratch and compiled package by package. That's something you can really take pride in. After you've become intimately familiar with Linux, move on to a more generic UNIX variant like OpenBSD. If you've been through the Gentoo trial-by-fire, OpenBSD installation will be a snap. Learn to set up a file server, Web server, proxy server, and firewall on your BSD box. Learn how to secure your BSD box, then try using your Backtrack machine to test vulnerabilities and close security holes in your BSD system. Explore all avenues of computing that you find interesting. Learn to build hardware systems from scratch (it's not difficult). Build a home network, set it up and make it do all the awesome things you can dream of, like: serve movies and games to your TV, play music in any room of your house, monitor your environment with security cams, stream the camera feeds and other media on the Internet. Read lots of books on computing, code, cryptography, the history of computing, the history of technological innovations, the history of warfare and strategy. Read books on various sciences and how different kinds of businesses operate. Broaden your mind as much as possible by reading. Read about psychology, and read books about the exploits of ingenious hackers, phreakers, scientists, politicians, businessmen, con-men, spies, and thieves. Learn how the criminal mind operates, but don't ever lose a grip on your own personal sense of ethics and morality. Set a code of conduct for yourself based on the standards of behavior you'd expect from other people whom you trust and respect, and dedicate your life to living up to that standard. Read lots of fiction as well as nonfiction: novels, short stories, comic books, whatever. Especially, seek out books that challenge your understanding and personal conceptions about the world. It's important to have a balanced life, and a balanced mind. Inspiration often arises from the most unexpected of places, so don't deny yourself the indulgences of the heart and imagination. They certainly pay tremendous dividends in the life of the mind. Don't take anything for granted. Question everything. Learn to use logic and critical thinking to differentiate evidenced truth from unevidenced hearsay and bullshit. Be social within your community. Join users groups, attend conferences, join a hackerspace and attend Maker Fairs. Meet people with similar interests. Share ideas and collaborate. Make friends and be happy. Help your friends excel in their projects, and in most cases they'll return the favor for you. Have respect for others. No matter how much you think you know, you can always learn more and you're not always right about what you think you know. Even people whose intellect you don't respect can surprise you and teach you something you never realized before. So just be cool and don't be a dick. There are far too many assholes in this world as it is. That's all I can think of at the moment. I'll post again if and when I think of more.