Make the dough: In a large bowl, whisk together the flour, sugar, and salt. Add the yeast and whisk again.
Add the water: Pour in the warm water and stir until a shaggy dough forms.
Knead the dough: Turn the dough out onto a lightly floured surface and knead for 5-7 minutes, until it becomes smooth and elastic.
First rise: Place the dough in a lightly oiled bowl, turning it to coat. Cover with plastic wrap and let it rise in a warm place for 1 to 1.5 hours, or until doubled in size.
Prepare the butter: While the dough is rising, place the cold butter pieces between two sheets of parchment paper. Use a rolling pin to pound and roll the butter into a roughly 6x8 inch rectangle. Keep it chilled.
Laminate the dough (first turn): Once the dough has doubled, punch it down to release the air. Roll it out into a 12x16 inch rectangle. Place the chilled butter rectangle in the center of the dough, leaving a border around the edges. Fold the dough over the butter, like a letter, sealing the edges.
Roll and fold: Gently roll the dough out into a 12x24 inch rectangle. Fold it into thirds, like a letter, again. This is your first 'turn.'
Chill: Wrap the dough in plastic wrap and chill in the refrigerator for 30 minutes.
Second and third turns: Repeat steps 7 and 8 two more times. This creates all those amazing, flaky layers.
Roll and fill: After the final chill, roll the dough out into a large rectangle, about 1/4 inch thick. Sprinkle the cheddar cheese and crumbled bacon evenly over the dough.
Cut and shape: Cut the dough into triangles. Starting at the wide end of each triangle, roll it up towards the point. Place the croissants on a baking sheet lined with parchment paper.
Second rise: Cover the croissants loosely with plastic wrap and let them rise for another 30-45 minutes, or until puffy.
Egg wash: Preheat your oven to 375°F (190°C). Brush the croissants with the beaten egg.
Bake: Bake for 18-20 minutes, or until golden brown and the cheese is melted and bubbly.
Cool: Let the croissants cool on the baking sheet for a few minutes before serving.