There are many many ways to do so, one can even tell someone will cheat before the match starts based on their profile name/picture/rank/stats.
However for someone new like you I’ll try to keep it short and talk basics.
In short - inhuman consistency or consistency that is too good for their current rank often gives cheaters away. Smurfs can also be too consistent for their rank, but cheaters usually don’t have the gamesense and positioning of smurfs. Cheaters often make very risky plays the type of plays smurfs wouldn’t risk constantly going 1v2 1v3+ etc and they go for risky plays because they often know or feel they can get away with them because of wallhacks and ~100% aim. If you are in bronze/silver/gold and your enemies straight up land all possible shots especially more difficult and long range ones on non sniper heroes and go on quick killstreaks they are most likely cheating.
Usage of wallhacks can somewhat compensate for their poor positioning though. You can often tell someone is walling, if they always have a drop on you and see you comming before you see them, if whenever you peak a corner that is not main and instantly receive massive damage or whenever you try to flank them they are already expecting you they are most likely walling. Constant superflanks can also give them away when they manage to slip behind an entire team and ult multiple times per match.
There are many more ways to tell someone is cheating such as perfect ability usage with inhuman reaction time or without line of sight, but for now I think the tips above will do.