- human v cpu tic tac toe (bonus round: real-time human v human)
- human v cpu battleship (bonus round: real-time human v human)
- Wordpress clone
- IRC clone
- E-commerce site (focus on the product catalog and shopping cart, with a checkout process that doesn't really have a payment integration, and a history of orders)
- A dashboard that provides visualization of data sets
- Twitter clone
- Facebook clone (basically, take your Twitter clone, remove the character limit, add in some comment and group functionality, and add your IRC clone into the mix)
- Expand Twitter/FB clones with tweaks that let you manipulate how the timeline is displayed to a logged-in user
Look at anything you've used, played, tried that you feel you understand how it works. Then build it.
What do you mean by that ?
Ok, build that
You've also got to make key decisions about whether to scale vertically or horizontally and often there's no one right answer in any of these scenarios. You can re-build today's Twitter in any number of ways to get to the point they are at now. However, the process of getting to today's Twitter would look very very different depending on how much time, money, talent, and other resources you had at each step along the way.
Basically, it's the process or transitions that are very notably difficult, perhaps not the end implementation itself. You've also got to balance these transitions with constraints like time and money. For example, you can't just throw a bunch of AWS instances at an infra problem to buy time, unless you've got the money.
And that's only from an infra perspective. From a product perspective there's a whole slew of things that are needed at scale that you don't necessarily need early on. One example is "how are you going to scale the cost of user/customer support"?. When it's 100 people using your product, you can deal with all the emails, but if it's 10,000,000 people using your product, can you really handle each and every case that comes through? Do you have money to hire a team to handle these cases? Can you build stuff into the product that reduces case-load? etc, etc.
Anyway, I'm rambling now....perhaps someone more experienced than I could share some better insights.
Im not saying that democracy is the best form of government always. You wouldnt want to stay in a place where the majority of people vote: 'Fk freedom, we want islam'