One proof of the existence of Sylow p-subgroups is constructive: if H is a p-subgroup of G and the index [G:H] is divisible by p, then the normalizer N = NG(H) of H in G is also such that [N : H] is divisible by p. In other words, a polycyclic generating system of a Sylow p-subgroup can be found by starting from any p-subgroup H (including the identity) and taking elements of p-power order contained in the normalizer of H but not in H itself. The algorithmic version of this (and many improvements) is described in textbook form in Butler, including the algorithm described in Cannon. These versions are still used in the GAP computer algebra system.
One proof of the existence of Sylow p-subgroups is constructive: if H is a p-subgroup of G and the index [G:H] is divisible by p, then the normalizer N = NG(H) of H in G is also such that [N : H] is divisible by p. In other words, a polycyclic generating system of a Sylow p-subgroup can be found by starting from any p-subgroup H (including the identity) and taking elements of p-power order contained in the normalizer of H but not in H itself. The algorithmic version of this (and many improvements) is described in textbook form in Butler, including the algorithm described in Cannon These versions are still used in the GAP computer algebra system.