In my study of Arabic I was taught to think that اسم فاعل can be thought of as the "doer" and اسم مفعول can be thought of as the "thing being done." This way of thinking about it seems to work well for transitive verbs like كتب which yields كاتب meaning "writer" and مكتوب meaning "written" or "written thing."
However, I am at a bit of a loss on how to distinguish between appropriate use of اسم فاعل and اسم مفعول for non-transitive verbs where there doesn't seem to be an obvious relationship between "doer" and "thing being done." For example, for the verb تقدّم or "to advance," one forms the اسم فاعل of "مُتَقَدِّم" to say "advanced." Similarly, "ممكِن" is a اسم فاعل . Yet the words "advanced" and "possible" do not have the same sort of "active" meaning that fits the understanding of the "doer," and I do not know why you would not use اسم مفعول to form the meanings of "advanced" and "possible," other than the fact that you just don't.
I am sorry if my question is unclear. I guess I am looking for a better way to understand how to distinguish between اسم فاعل and اسم مفعول other than simply memorizing them on a verb-by-verb basis.
Thanks in advance.