If every homomorphism from finitely presented module factors through free module, then $E$ is direct limit of finite free modules This is exercise 13 from chapter 16 in Lang's book "Algebra". I request that no full solution be given. The final step of the problem is as follows.
Assume that for every finitely presented module $P$, and homomorphism $f:P\to E$, there exists a free module of finite rank such that $f$ factors through $F$. Show that $E$ is the direct limit of a system of finite free modules.
Attempt at a solution: we know that $E$ is the direct limit of finitely presented modules, cf. an exercise from a previous chapter. Let $(P,(f_i))$ be the directed systems whose direct limit is $E$, with each $P_i$ being finitely presented. Then by assumption

is a commutative diagram, for some free modules of finite rank $F_i$ and $F_j$. The idea is now to find maps $\phi^i_j:F_i\to F_j$ that satisfy the properties of a directed system, using the given data. However, any possible way in which I've attempted to do this, results in two maps between nodes going in opposite directions, which then implies these two nodes are isomorphic (I believe?). Therefore, it seems to me that there is no natural way to use the given data to find these $\phi^i_j$. Am I wrong? I would very much appreciate a hint in the right direction, but please do not give a full solution.
 A: Here's the idea.  If you just needed to get a map from $F_i$ to $F_j$ for one particular pair $(i,j)$, you could define $F_j$ differently.  Instead of just choosing $F_j$ so that $f_j:P_j\to E$ factors through it, you could first form the pushout of $P_j$ and $F_i$ over $P_i$ (which will be another finitely presented module) and then choose $F_j$ so that the map from this pushout to $E$ factors through.  That way, you'll have maps from both $P_j$ and $F_i$ to $F_j$, and they will form a commutative square with the maps from $P_i$ as required.
Now, of course, there's a problem with this: you need not just a map $F_i\to F_j$ for this one particular $i$, but for every value of $i$ that is less than $j$, and all these maps need to be compatible with each other.  But if your index set was just $\mathbb{N}$, say, this would work, since you just need to get maps $F_n\to F_{n+1}$ for each $n$ and you can construct the $F_n$ and these maps one by one recursively.  More generally, if there were only finitely many $i$ below $j$, you could still construct $F_j$ (assuming you already had the $F_i$ and the maps between them for all $i<j$): instead of taking a pushout, you would just take the colimit of the entire diagram formed by the $F_i$ and $P_i$ for $i<j$, together with $P_j$.  (You need to have finitely many $i<j$ to be sure that this colimit is finitely presented!)
So now you just need to arrange that there are only finitely many $i$ less than each $j$ in your index set, and figure out how to construct the $F_j$ one at a time so that at each stage you already have the entire diagram of the $F_i$ for $i<j$.  There are several ways to do this.  I've hidden some more details about one approach below.

 I don't know how you proved that $E$ is a direct limit of finitely presented modules, but the most obvious proof produces a system which already has the property that each $j$ has only finitely many $i$ below it.  Namely, you fix some presentation of $E$, and then the index set is the set of pairs $(A,B)$ where $A$ is a finite subset of the generators and $B$ is a finite subset of the relations, ordered by inclusion on both coordinates.  Now you can pick the $F_j$ and all of the maps into them by recursion on $|A|+|B|$ where $j=(A,B)$.  This means that when it comes time to construct $F_j$, you will already have constructed the entire diagram of the $F_i$ for $i<j$, since they all have smaller values of $|A|+|B|$.

