Writing software is a lot like building things with Legos; the really cool part is you get to invent/mold/create many of the Legos you’ll use to build your thing.
If you create them wisely, everything fits together neatly and you have a lovely creation you can build upon and adapt in the future.
If you create them foolishly you can still mash them together to create your thing, but it will be a real bear the next time you need to make an adjustment to it.