O RMS (o fundador do GNU e autor original do gcc e emacs) tem um bom resumo da etimologia do hacking
No uso geral do inglês, um hack é alguém que é amador (ou não tão bom) em alguma coisa e, portanto, pode tender a improvisar (devido à falta de conhecimento e experiência); isso também é usado na programação ("Aqui está uma solução de hack ...", significando improvisação rápida). Parece-me que isso não é coincidência, mas "hacker" é mais positivo do que negativo, enquanto "hack" (substantivo que se refere a uma pessoa, como em "Ele é um hack") é mais negativo do que positivo. O ângulo positivo sendo: às vezes, esse hack (nome que se refere à solução rapidamente improvisada) acaba sendo um avanço genuíno. Provavelmente, isso foi mais ou menos normativo nas fronteiras da ciência da computação no final do século XX. - até mesmo os maiores talentos estariam regularmente hackeando coisas que ninguém entendia completamente.Assim como o RMS diz, um hack pode ser uma solução um pouco engenhosa ou imprevisível, e um hacker alguém que resolve problemas de maneira engenhosa ou imprevisível. Linus é famoso pelo linux, que é realmente um hack (ou de) unix, em todos os sentidos (presumivelmente no começo era "amador"). Mas ele não roubou o código-fonte do Bell Labs nem nada para fazer isso.