I seem to have misunderstood the generation process. I though it was only a matter of time but after reviewing some of the docs I noticed something about it being a race. Is that a race to generate the next block which restarts evertime someone generates the latest block?
Here's a simplified version. Your computer is checking numbers to see if they are a solution to a specific math problem that uses data about transactions and the previous block. Each check is independent, you never get closer. If you can check 10x faster than someone else you are 10x more likely to win, unlike a race where you would win every time if you were 10x faster. When someone 'wins' it doesn't set you back, you seamlessly start working on the next problem.
As was mentioned you may never solve a block with a normal computer. It is now over 16000 times harder to find an answer low enough to count than it was in the beginning. This is because the rules adjust the target to maintain an average block time of 10 minutes. Theoretically it could go back down, but it isn't likely imo, bitcoin is growing.
Joining a pool will give you fractions of a coin every so often. Essentially it's just a bunch of people who agree to share what the get, but it's airtight, or at least it can be if it's implemented correctly.