How do I find all all the subgroups of a group? I'm failing to see the logic behind what makes up a subgroup. I understand the requirements of a subgroup (associativity, identity etc....) but I don't actually know how to find the subgroups. 
I think it has something to do with "getting back to the identity", but I may be wrong? I know that the identity is a subgroup and the whole group is a subgroup. That's all.
Any help would be appreciated!
 A: The most basic way to figure out subgroups is to take a subset of the elements, and then find all products of powers of those elements.
So, say you have two elements $a,b$ in your group, then you need to consider all strings of $a,b$, yielding $$1,a,b,a^2,ab,ba,b^2,a^3,aba,ba^2,a^2b,ab^2,bab,b^3,...$$
If your group is not finite, you also have to consider negative powers. Or you can start with three members.
For abelian groups, it becomes simpler - you can take any:
$$a^nb^m$$
with $n,m$ integers, because $ab=ba$.
The simplest is to start with one elements: $\langle a\rangle=\{1,a,a^2,a^3,\dots\}$ is a subgroup for any $a$ if $G$ is finite, otherwise, you need to take $\{1,a,a^{-1},a^2,a^{-2},\dots\}$. In the case of cyclic groups, these are all the subgroups (although you get duplicates - there are $a\neq b$ such that $\langle a\rangle = \langle b\rangle$.)
Ultimately, you build from these, but in the general case, we are talking a hard problem.
You eventually learn to do certain types of deductions, but you should really try this brute force technique and use the understandings you have of the individual groups to forge ahead.
A: Edit: Written this assuming you've taken a course on group theory.
Finding all subgroups of large finite groups is in general a very difficult problem. Usually, I'd start with Lagrange's theorem to find possible orders of subgroups.
Next, you know that every subgroup has to contain the identity element. Then you can start to work out orders of elements contained in possible subgroups - again noting that orders of elements need to divide the order of the group.
Since you've added the tag for cyclic groups I'll give an example that contains cyclic groups.
Consider the dihedral group $D_n = \langle r,s \mid r^n = s^2 = e, srs = r^{-1} \rangle$ where $e$ is the identity. It has order $2n$ and so the order of subgroups must divide $2n$. 
One such example is the subgroup $\langle r\rangle =  e, r, r^2, r^3, ..., r^{n-1} $ which is clearly isomorphic to $\mathbb{Z}_n$.
A: The question is very hard in general, so one may want to consider some examples. Almost all popular examples have been discussed here at MSE; a starter is to find all subgroups of the group of units of the ring $\mathbb{Z}/n$ for various $n$; see for example this question: For group $\mathbb{Z_{18}^*}$, how do I find all subgroups. For more demanding examples one has to do more. A nice example is to find all subgroups of $S_6$, which are
$$ D_6, D_3, D_2, Z_6, Z_3, Z_2, D_3\times D_3, Z_3×Z_3, (Z_3\times Z_3)⋊ Z_2,
D_3 \times Z_3, Z_2 \times Z_2 \times Z_2, D_3 ≀ Z_2, Z_4, Z_5, D_4, Z_2 \times Z_4, D_4, D_5, A_4, D_4 \times Z_2, Z_5 ⋊ Z_4,
A_4 \times Z_2, S_4, (Z_3 \times Z_3) ⋊ Z_4, S_4 \times Z_2, A_5, S_5, A_6, S_6 $$
This has been answered here.
Also instructive is to study subgroups of matrices in $GL_n(K)$, for example the subgroup $SL_n(K)$ of invertible $n\times n$-matrices with determinant $1$, or $O_n(K)$ the subgroup of orthogonal matrices, or $Sp_n(K)$ and so on.
A: Cauchy's Theorem may be more useful than Lagrange's Theorem, when dealing with finite groups. Cauchy's Theorem states that for every prime $p$ dividing $|G|$, there exists a subgroup $H \leq G$ of order $p$. So start with the cyclic subgroups of prime order. Then for any two cyclic groups $H_{1}, H_{2}$ of prime order, you can obtain a new subgroup by taking the join $\langle H_{1}, H_{2} \rangle$, which is the subgroup generated by the elements of $H_{1} \cup H_{2}$. 
Now the subgroups of a group $G$ are ordered by the subgroup relation, which is a partial order. That is, the subgroup relation is reflexive (a group is a subgroup of itself), transitive (if $H \leq K$ and $K \leq M$, then $H \leq M$), and anti-symmetric (if $H \leq K$ and $K \leq H$, then $H \cong K$). So if you have two subgroups $H, K \leq G$ such that $H \not \leq K$ and $K \not \leq H$, the join $\langle H, K \rangle$ is another subgroup of $G$. Chapter 2, Section 5 in Dummit and Foote has a good exposition on the Lattice of Subgroups, which provides a visual graph called a Hasse Diagram to help study the subgroup partial order. I would direct you there for more reading. 
