Это, конечно же, фундаментальный хакерский навык. Если вы не знаете ни одного компьютерного языка, я рекомендовал бы начать с языка Python ещё есть Русскоязычный сайт. Он аккуратно разработан, хорошо документирован и сравнительно доброжелателен к новичкам. Несмотря на то, что он хорош как первый язык, это не просто игрушка. Это очень мощный и гибкий язык, хорошо подходящий для больших проектов.
Java - тоже хорош для изучения программирования. Он сложнее, чем Python, но генерирует более быстрый код. Мне кажется, что он может стать прекрасным вторым языком.

Но знайте, что вы не достигнете хакерского уровня мастерства (или даже просто уровня хорошего программиста), если будете знать лишь один или два языка. Вам необходимо научиться мыслить об алгоритмических проблемах вообще, независимо от языка программирования. Чтобы быть настоящим хакером, вам надо достичь уровня, на котором вы сможете выучить новый язык за несколько дней, соотнося положения руководства с тем, что вам уже известно. Это означает, что вам следует выучить несколько очень разных языков.

Если соберётесь заниматься серьёзным программированием, то вам придется выучить Си, основной язык операционной системы Unix. C++ также родственен Си. Хотя ни то ни другой не являются языками, с которых стоит начинать.

Другие языки первостепенной важности для хакеров - это Perl и LISP. Язык Perl имеет смысл выучить из практических соображений: он очень широко используется для активных web-страниц и системного администрирования, так что даже если вам никогда не придется писать на Perl, вы должны научиться его читать. LISP стоит выучить хотя бы ради тех глубоких познаний, которые вы обретете, когда наконец поймёте его. Эти познания сделают вас прекрасным программистом на всю оставшуюся жизнь, даже если вы никогда особо и не будете использовать сам LISP (Первоначальные навыки программирования на LISP можно достаточно легко получить, создавая и модифицируя расширения текстового редактора Emacs).

Лучше всего, на самом деле, выучить все четыре этих языка (Python, C/C++, Perl, и LISP). Помимо того, что это самые важные хакерские языки, они демонстрируют очень разные подходы к программированию и каждый из них научит вас ценным вещам.

Я не могу дать здесь развернутые инструкции относительно того, как научиться программировать, - это сложное искусство. Но я могу сказать вам, что книги и курсы этому не научат (многие, возможно, большинство лучших хакеров - это самоучки). Что на самом деле может научить программированию, так это (а) чтение исходного кода и (б) написание исходного кода .

Научиться программировать - это как научиться писать хорошим естественным языком. Самый лучший способ для этого - почитать что-то из написанного признанными мастерами литературы, затем написать немного самому; прочесть побольше, написать немного побольше; прочитать еще больше, написать еще побольше... И повторять этот процесс до тех пор, пока ваши программы не разовьются в нечто мощное и экономичное.

Отыскать хорошие исходные тексты для изучения раньше было сложно, потому что было очень мало больших программ, доступных в исходных текстах и пригодных для изучения и экспериментов юных хакеров. Теперь ситуация кардинально изменилась: программы в исходных текстах, средства разработки и целые операционные системы (всё это создано хакерами) теперь широко доступны.