Have используется в настоящем времени, а did в прошлом
смотря когда ты его дан или дид.
I have done something - Я что-то уже сделал, не важно когда, главное, что действие завершено и его результат очевиден в настоящий момент (Present Perfect). В этом времени часто употребляются слова-индикаторы just, yet, already
I did something - Я что-то сделал, здесь основной акцент на время совершения действия в прошлом (Past Simple) здесь часто используются индикаторы, указывающие на время yesterday, last year, in 2005, 5 years ago, when I was a child
I have already done my home work. - Я уже сделал домашнюю работу (не важно когда, главное - результат, вот она сделанная лежит)
I did my home work yesterday. - Я сделал домашнюю работу вчера. (Здесь важнее узнать - когда выполнено действие)
Отличие в совершенной/несовершенной форме глагола - делал или сделал.