NOTE: I do not own the ideas written below.
If you are sick of being just an ordinary player, you might want to read this guide that's based from years of analyzing what good players do and what works for us. I'm not saying that I'll transform you to a competitive player at once but I assure dramatic improvement after executing these 5 simple guides to improve your game.
1. Watch professional replays and imagine that you are one of the players
This is a trick that will make you improve quickly. Rather than having a "Wow, he's so good!" mindset, think of it this way "I am this Shadow Fiend I am watching. This is my replay. I am currently farming and harassing at the same time. There might be gankers near by, I should hide first." etc.
The point is you have to feel that you are the who played that hero you're watching because this is the quickest way you could be playing like the real player. He may be Yaphets, Yamateh, 2009, or other great Shadow Fiend players but you should be the player in your imagination while watching the replay.
I've done this so many times and from my experience, after watching replays of good supports or gankers like 820, NS, and my favorite Vigoss, my decision making in that aspect of game (supporting) improved a lot. What happens is their experiences became my own experience. When they fail, I also failed so I know what to do next time. When they succeed, I also succeed so I knew what works. I don't have to play against popular teams to experience playing against them because I already did with this technique.
2. Make it a hobby to watch your own replays
Don't just say "Yeah! I won time to go!" or "Damn it! I lost". Your won or lost games should all be watched. If you're aiming for perfection in your game you shouldn't be lazy to check out what are the errors you've done that needs to be corrected. May it be a simple last hitting problem or a huge turning point problem that caused your whole team to lose, you should be aware of the things you're not doing right for you to be able to correct them.
In team games, is very critical it is very critical to watch your replays. Almost every game there are failed executed combo. Sometimes you just won because the opposing team isn't that experienced yet but you still have someone dying. Yes it's not that easy to have a complete 5-0 sweep clash if you're facing good teams but there might be ways to make it happen. There might be a need to tweak your strategy or line up.
I was lazy to watch my replays before but when I did, I discovered 1000 gallons of mistakes I was making. It was only then I changed it. After having a hobby of watching most of my replays after playing, I was amazed with my own improvement. If I only opened my mind earlier and have already done own replay watching session, I could have improved 2 years earlier but I'm not regretting any of my experiences. I learned from all of them.
3. Have enough time to play desired hero to be mastered (I recommend 2 to 3 days)
Have you ever wondered why your game is not as good as your other games playing different hero? Improving your game also comes from improving on how to use a hero. That's the reason why there are Dota hero guides spreading in the internet.
Playing a hero for 2 to 3 days will make you comfortable with the hero you want to master, you'll experience different things that may happen in real games making you prepared for them, and you'll know different strategies that will assure success in using that hero.
I played chen not only for 3 days but for 3 months. It's because I was still a newbie that time (my 1st year of playing Dota) who was used to playing carry. I discovered that Chen is the most used hero by professional teams that time. I don't want to demand this boring practice to any of my team mate so I switched my role to support and practiced Chen for months. Whenever they see Chen, he is like my twin already for I'm the first person to be in their minds. Good Chen players were always behind me laughing at how I micro my creeps. After 3 months of practice our team evolves from a noob team to a feared team in tournaments. Chen gave me a lot of Championship awards. You don't need 3 months because I assume you already have more experience in competitive games than I had before.
4. Always play against better players
You'll lose. So, what? If you're not too big to handle criticisms, you're to small to be praised. Playing against better players will make you realize your flaws and the things needed to be adjusted on your game. You'll also be inspired to surpass his skills, if you are optimistic enough (which you need to be).
We always lost before. I even offer free games for good teams to play with us. I lost my money and I still lost the game but I'd still invite them to play with us again. The feeling is not so good when losing but what happened was we leveled up. We watched our replay against them. We discovered their strategies and we formulated our own better than them. The time came when nobody can beat us anymore here in our place even the team we paying for. It's like a business. Investment and hardwork first, then success will follow.
5. Close your eyes and do this
Close your eyes. Think of what you want to achieve (may it be Dota or not *this is effective*)... Then if you have already thought of what you want to be, imagine that you are that person right now. Make your imagination realistic with all the specific elements included in your background. Relax and imagine you are that successful person you want to be. Believe it's happening now. After imagining your goals, open your eyes and believe that it really happened. It's a part of your experiences because you are already that successful person you want to be right now.
This exercise I made you to do is important because I want you to develop your confidenceand optimism. You'll have more success if you're going to believe in it because your mind will develop a positive aura that makes you do everything to achieve your goal.