Essential Skills for Aspiring Hackers

Essential Skills for Aspiring Hackers

1. Learn to Program

  This is the fundamental skill for any hacker. If you don't know any programming language, I recommend starting with **Python**. It has a clean design, comprehensive documentation, and is great for beginners. It's not just a toy; it's powerful, flexible, and suitable for large projects. Good tutorials can be found on the Python website.  
  **Java** is also a good starting language. It's more challenging than Python, but the resulting code runs faster. It's also an excellent computer language, not just for getting started.  
  However, if you only know one or two languages, you won't meet the technical standards required by hackers, or even by programmers. You need to learn how to think abstractly about programming problems, independent of any specific language. To become a true hacker, you should be able to quickly master a new language using manuals and your existing knowledge within a few days. This means you should learn several different languages.


  For significant programming work, you'll need to learn C, the core language of Unix. C++ is very similar to C; if you understand one, learning the other should be straightforward. **However, neither of these is suitable for beginners. In fact, the less you use C, the more productive you will be.**

  C is highly efficient, saving your machine resources. Unfortunately, this efficiency comes at the cost of manual management (like memory). Low-level code is complex and error-prone, which can take a lot of time to debug. With today's fast machines, this is often not worth it—using a slower, less efficient language that saves time is usually wiser. **Therefore, choose Python or Java.**


  Other important languages for hackers include Perl and LISP. Perl is practical and worth learning; it is widely used for dynamic web pages and system administration, so even if you never write Perl programs, you should at least know how to read them. Many people use Perl for the same reasons I recommend Python—to avoid using C for tasks that don’t require its efficiency. You will need to understand the code for such tasks.  
  The reason to learn LISP is different—it provides rich insights and experiences once mastered. These experiences will make you a better programmer in the long run, even if you rarely use LISP itself.  
  Of course, ideally, you should know all five (Python, Java, [C/C++](https://www.baidu.com/s?wd=C%2FC%2B%2B&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmWnvuARznWI9rjczuywB0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnWfsnHT3njbdPWc3rjfLrj6Y "C/C++"), Perl, and LISP). In addition to being the most important hacker languages, they represent different programming approaches and methods, each offering valuable learning experiences.  
  I cannot fully guide you in learning how to program—it's a complex skill. But I can tell you that books and classes alone cannot do it (many of the best hackers, perhaps almost all, are self-taught). You can learn the features of a language from books, but turning written knowledge into skills requires practice and learning from others. Therefore, read code and write code.  
  Learning to program is like learning to write in a beautiful natural language. The best approach is to read works by masters, try writing something yourself, read more, write more, read again, and write again... repeating this process until your writing reaches the simplicity and strength of the examples you've studied.  
  In the past, finding suitable code to read was difficult because there were few large programs with source code available for beginners. This situation has changed dramatically; open source software, programming tools, and [operating systems](https://www.baidu.com/s?wd=%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmWnvuARznWI9rjczuywB0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnWfsnHT3njbdPWc3rjfLrj6Y "operating systems") (all written by hackers) are now widely available. Let's continue discussing this in the next topic...


2. Obtain an open-source Unix system and learn too use and run it

  I assume you have or can access a [personal computer](https://www.baidu.com/s?wd=%E4%B8%AA%E4%BA%BA%E7%94%B5%E8%84%91&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmWnvuARznWI9rjczuywB0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnWfsnHT3njbdPWc3rjfLrj6Y "personal computer"). The first step for beginners learning hacking skills is to get a Linux or BSD-Unix variant, install it on a [personal computer](https://www.baidu.com/s?wd=%E4%B8%AA%E4%BA%BA%E7%94%B5%E8%84%91&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmWnvuARznWI9rjczuywB0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnWfsnHT3njbdPWc3rjfLrj6Y "personal computer"), and run it.  
  Yes, there are other [operating systems](https://www.baidu.com/s?wd=%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmWnvuARznWI9rjczuywB0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnWfsnHT3njbdPWc3rjfLrj6Y "operating systems") in the world. But they are released in binary form—you cannot read their source code or modify them. Trying to learn hacking skills on a machine running DOS or Windows or Mac OS is like dancing with shackles.  
  In addition, Unix is the [operating system](https://www.baidu.com/s?wd=%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmWnvuARznWI9rjczuywB0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnWfsnHT3njbdPWc3rjfLrj6Y "operating system") of the Internet. You can learn to browse the web without knowing Unix, but you cannot become an Internet hacker without understanding Unix. Therefore, the hacker culture today is largely centered around Unix. (This was not always the case, and some early hackers were unhappy about it, but the connection between Unix and the Internet is so strong that even Microsoft can't do anything about it.)  
  So, install a Unix system—personally, I prefer Linux, but there are other types (yes, you can install Linux and DOS/Windows on the same computer). Learn it, use it, configure it. Surf the Internet with it. Read its source code. Modify its source code. You will get better programming tools (including C, LISP, Python, and Perl) than on a Microsoft operating system. You will find it fun and learn more than you realize before becoming an expert.


You can find help and other resources for BSD Unix at www.bsd.org.
(Note: If you're a beginner, I don't recommend installing Linux or BSD on your own.)

3. Learn How to Use the Web and Write HTML

  Much of what the hacker culture builds operates behind the scenes, helping factories, offices, and universities function normally, with little visible impact on non-hackers. The Web is a big exception. Even politicians agree that this dazzling hacker toy is changing the world. For this reason alone (and many others), you need to learn to master the Web.  
  This doesn't just mean knowing how to use a browser (which anyone can do), but learning how to write HTML, the markup language of the Web. If you don't know how to program, writing HTML will teach you some useful thinking habits. So, start by creating a homepage.  
  But having a homepage alone won't make you a hacker. The Web is full of websites. Most are meaningless, empty garbage—smart-looking garbage, note that the quality is similar (more information at The HTML Hell Page).  
  For your site to be valuable, it must have content—something interesting or helpful to other hackers. This is what the next topic covers...


4. Learn English if you aren't already proficient

  I didn't want to mention this before, to avoid being seen as cultural imperialism. But many people who speak other languages have urged me to point this out—that English is the working language of the hacker community and the Internet, and you need to understand it to work effectively in the hacker community.  


This is absolutely true. Many hackers use English in technical discussions, even when their native languages are the same; English is often just a second language for them. According to reports I've seen, English has far more technical vocabulary than other languages, making it a very useful tool for work. For similar reasons, translatiosn of English technical books are often unsatisfactory (if they exist at all).
Linus Torvalds, a Finn, uses English in his code comments (clearly not by chance). His fluent English has been a key factor in enabling him to manage a global community of Linux developers. This is a good example to follow.

Tags: hacking programming Linux html python

Posted on Sun, 09 Aug 2026 16:14:37 +0000 by websiteguy