Do is a transitive verb.
—it requires a direct object.
Consequently, have + the past participle done is a present perfect construction, a verb, and this is not a complete sentence:
I have done... What have you done?
—you have to tell us: I have done the report.
I have done the dishes.
I have done what you told me.
But when you use the past participle done with a form of be there are two interpretations.
One is that the result is a passive construction.
This report was done by me =
I did this report.
Ordinarily, however, a passive I am done =
Somebody did me doesn’t make any sense.
Consequently, we interpret done as a predicate adjective: I am done (with this task) =
I am finished (with this task), I have nothing more to do (with this task).
This use of the past participles done and finish is called a deverbal , a verbform which has lost its ‘verbiness’.
This cannot be done with every verb, but some other verbs this has happened to are interest , (“I am interested in science”), drink (“John is drunk”) and lose (“I think we’re lost”).
ell.stackexchange.com/users/32/StoneyB on hiatus
"To be done" is idiomatic and means "to have finished".
For example, "Have you written that email yet?"
"Yes, I'm done."
"To be done with something" (or "to be
finished with something") to get rid of something or stop using it for good.
"I'm done with email!
It takes up so much of my time."
But "To have
finished with something" means to have finished using it for now.
"
Can I use the computer now, please?"
"Sure, I've finished with it."
"To have done" is the present perfect of "to do".
"Have you ever sent an email by mistake when you meant to cancel it?"
"Yes, I've done it hundreds of times."
ell.stackexchange.com/users/4468/David Richerby
With "almost," as you specify in your question, you would normally say either: I am almost done.
or I have almost finished.
ell.stackexchange.com/users/5807/chapka
Both can be correct: I'm done with this assignment.
I've done this type of assignment in the past.
ell.stackexchange.com/users/5985/Gary's Student
It depends on the context.
They mean different things.
"I'm done" means "I am done.
""I've
done" means "I have done."
ell.stackexchange.com/users/6002/pixiesquisher
Both are correct depending upon ,what matter or subject are talking about.
If someone is doing some work and he/she has completed that .
so can be said that i have done.
And if someone has done some work earlier & and now that particualr work is being discussed as a task to perform at that time that person who has already done it can say that i am done.or someone is eating and other person is offering more then can say i am
done.means dont want more at this time can not say i have done.
ell.stackexchange.com/users/33274/unknown
I want to know if "I'm almost done" is correct, or whether it should be "I've almost done" as a present perfect tense. I often read this on Facebook news feed. Is it correct?
"I'm done" or "I've done", which is correct?
ell.stackexchange.com
<deverbal>
ell.stackexchange.com/questions/22071
ell.stackexchange.com/users/5998/jinhyun
Both are correct depending on the context. They mean different things. "To be done" is idiomatic and means "to have finished".  "To have done" is the present perfect of "to do". To be done means to have finished. To have done is present perfect of 'do'. Both are correct, a lot depends on context.
Both can be correct, it depends on the context. To be done means to have finished. To have done is present perfect of 'do'.