Хакер не созидатель, он проникатель. Обладает набором навыков и средств для обхода защиты. Тут нет времени писать код, если он под сотню строк. У вора есть набор отмычек, у повара свой набор посуды, у сантехника тоже свой набор инструментов. Вот с помощью умения всем этим пользоваться каждый делает свою работу
Потому что самое слабое место любой системы - это люди. А их программировать не надо. Ну и взлом взлому рознь, разумеется. Если это фишинг паролей, то там и программировать нечего. А если это взлом через поиск уязвимостей, тогда, ясен пень, программировать нужно долго и нудно и с непонятным результатом. Только в последнее время этот способ сходит на нет - основные дыры позатыкали намертво, а то, что еще находится, хоть и позволяет заглянуть в какие-то щели, полноценным взломом назвать сложно.
Должен уметь. Львиная доля взломов происходит через удалённое выполнение произвольного кода (когда в процессе эксплуатации уязвимости удалённая система начинает выполнять тот код, что ей подсунули под видом безобидных данных) - очевидно, что этот самый код необходимо написать, да и не только написать, но и замаскировать.