In the first place the purpose of ELO rating is to predict the outcome of a match. It manages to do that quite well IMHO.
WHY THE ELO RATING SYSTEM IS FLAWED.

I agree with the statement that the ELO rating system for chess strength is flawed.
Reason is that if I start playing rated chess and my opponents in tournaments just so happen to be 1400+ strength, I lose in the long end, but I gave the opponent a tough game. But then because it's my first few games, then my rating is almost like beginner level.
My opponents would themselves say (after having played me) that my true level is more closer to their level than beginner.
I think that our opponents should themselves also give a rating to the player that lost, which should be seen as relative to their rating.

I have the same experience as WKamalie - i have mostly faced stronger opponents, and lost but learned a lot. My rating is low and keeps dropping because i keep loosing, but my streng is improving. One day i will suddenly beat an opponent with significantly higher rating than mine.

I have the same experience as WKamalie - i have mostly faced stronger opponents, and lost but learned a lot. My rating is low and keeps dropping because i keep loosing, but my streng is improving. One day i will suddenly beat an opponent with significantly higher rating than mine.
Indeed you will, and then your rating will go up. Play enough games and your Elo rating will reflect your true playing strength.
The biggest flaw is the way it affects improving players. Suppose someone currently rated 1900 and someone rated 2100 were to play for a season or two and get exactly the same results against exactly the same players. You'd say they were the same strength wouldn't you? But the 2100 player would have the higher rating, simply because they used to be stronger and games from the past (maybe a very distant past) still affect the rating. What is more the lower rated player will never catch up until they start getting better results than the higher rated one.
Conversely Elo ratings do not fall as quickly as a player's strength either, so if you do obtain a high rating it helps you to maintain it.
The system more or less works because most players that have found their level neither improve nor decline dramatically from one season to the next.
But to think it is "perfect" owes more to a semi-religious faith than to objective assessment.
It was designed to predict results but is used as a proxy for chess strength. Of course, in that role, it is flawed.

While I agree the ELO system is flawed, it is not for the reason stated. And as a practical matter, the system (and slight derivatives like Glicko used here) works well for the purpose intended as long as the rating of the players is reasonably close.
The flaw is that the tail ends of the assumed distribution are not accurate compared to real outcomes. This means it does a poor job of predicting the probability you will win when your rating is much higher or much lower than your opponent.
But for most purposes it really doesn't matter if you have .1% chance of winning or .2% chance of winning.
The other flaw is that it doesn't allow accurate comparisons over time. As a result you cannot compare someone like Fischer against someone like Nakamura and predict who would have won. Judging from messages around here, many people don't understand that.
If you are stronger than your rating suggests (and most players secretly believe that!), just play more. Your rating will automatically adjust itself to your (supposed) strength.

With the way that it works it should be impossible for everyone to improve at the same time but a lot of people's elo spikes from time to time

I agree with the statement that the ELO rating system for chess strength is flawed.
Reason is that if I start playing rated chess and my opponents in tournaments just so happen to be 1400+ strength, I lose in the long end, but I gave the opponent a tough game. But then because it's my first few games, then my rating is almost like beginner level.
My opponents would themselves say (after having played me) that my true level is more closer to their level than beginner.
I think that our opponents should themselves also give a rating to the player that lost, which should be seen as relative to their rating.
not just opponents but spectators as well then those ratings should be averaged out and their should be points awarded for sophisticated play , sophisticated tactics , well executed sacrifices , beautiful checkmates , smooth play , fewer blunders , fewer mistakes , having a safe king and having a controlled game .

The problem is that having any kind of judge trying to determine who played strongly or poorly is impossible as they cannot tell what the opponents are thinking when you make a move. For instance a putzer might make a brilliant move, but make it completely by accident, how do we judge that? In the long run the statistical method used by ELO and such systems is the best, even if it is flawed. Here's an idea, come up with a better system and then use it to rate a few hundred players over a few months to prove it is better. Be prepared to show that it predicts wins and losses better than ELO. We'll wait.
The ELO system, which has been accepted for years as the five star standard of chess mastery, has,nevertheless a couple of flaws in it, which I will now proceed to dissect.
1.It is illogical to use something in motion, as a standard to judge something static. Which is hw the ELO system works,really. You use a bunch of already-rated-players, say, a bunch of GMs and IMs to award somebody their rating, based on how well he fared against those IMs.
The foundation of any single person's rating, therefore, is the culmination of every single rating out there! And since those ratings are constantly changing, that makes that rating of a dynamic nature, i,e something you cant use as a standard to pit any individual performance against.