Learn how to program.

This, of course, is the fundamental hacking skill. If you don't know any computer languages, I recommend starting
with Python. It is cleanly designed, well documented, and relatively kind to beginners. Despite being a good first
language, it is not just a toy; it is very powerful and flexible and well suited for large projects. I have written a more
detailed evaluation of Python. Good tutorials are available at the Python web site.
Java is also a good language for learning to program in. It is more difficult than Python, but produces faster code than
Python. I think it makes an excellent second language.
But be aware that you won't reach the skill level of a hacker or even merely a programmer if you only know one or two
languages -- you need to learn how to think about programming problems in a general way, independent of any one
language. To be a real hacker, you need to get to the point where you can learn a new language in days by relating
what's in the manual to what you already know. This means you should learn several very different languages.
If you get into serious programming, you will have to learn C, the core language of Unix. C++ is very closely related to
C; if you know one, learning the other will not be difficult. Neither language is a good one to try learning as your first,
however.
Other languages of particular importance to hackers include Perl and LISP. Perl is worth learning for practical reasons;
it's very widely used for active web pages and system administration, so that even if you never write Perl you should
learn to read it. LISP is worth learning for the profound enlightenment experience you will have when you finally get
it; that experience will make you a better programmer for the rest of your days, even if you never actually use LISP
itself a lot.
It's best, actually, to learn all five of these (Python, Java, C/C++, Perl, and LISP). Besides being the most important
hacking languages, they represent very different approaches to programming, and each will educate you in valuable
ways.
I can't give complete instructions on how to learn to program here -- it's a complex skill. But I can tell you that books
and courses won't do it (many, maybe most of the best hackers are self-taught). You can learn language features -- bits
of knowledge -- from books, but the mind-set that makes that knowledge into living skill can be learned only by
practice and apprenticeship. What will do it is (a) reading code and (b) writing code.
Share:

No comments:

Post a Comment