In my long computer career, I've only had a couple of times where someone got ahead of me by lying or misrepresenting their skills. When working with such people, it's pretty obvious to most that they don't know what they're doing. While I have also been a very helpful person, I have a rule: I
refuse to help someone who has misrepresented their skills. This type of person has no problem lying to get ahead then expecting everyone to help them out when they get in trouble. And that occurs frequently of course, because they are in over their head.
First example was when I was the tech lead on a huge Ford project. I was only 20, doing great, Ford loved me, but the computer company I worked for (Prime) was uneasy about relying so much on a 20 y/o in his 2nd year of college for this huge project. So they hired a new guy, a Pakistani with a degree who wore a suit everyday and had a glowing resume (apparently). First, the guy was nearly impossible to understand. Second, he didn't know shit. Third, instead of spending his time reading through manuals to figure things out, he'd just ask me since his cube was next to mine. My standard answer was "I don't know". He could have asked me what color grass is and that would have been my answer. They kept him a few months, fired him when it became obvious he couldn't do shit on his own, and put me back on the account.
The other time was when a contract project manager at IBM decided he wanted to work on a project that was supposed to be for me. I was still busy with a previous IBM project (he was my project manager on that) and couldn't start for a couple of months, and since IBM was in a hurry, the project manager told them he could do it. He was a great project manager, but not even a good programmer. His previous technical experience was more with hardware. After a few months, I got called in to review his work because he kept saying he would be done in a week. I met with him, found out he didn't even have this thing compiling without errors (it was a platform conversion of a large CAD program), and he asked me if I'd help him. I said no, even though it was very hard for me to do that. I met with IBM, they asked me if I could take it over and finish it. I told them I could do it but would not be able to use any of his work, especially since he hadn't made much progress. They fired him, gave me the contract, and it was finished in a couple of months.
So if you run into people who have cheated to get where they are, don't help them, no matter how nice you are or how bad it might make you feel. They don't deserve your help and will have to qualms about taking a promotion over you, even though they couldn't have done it without your help.