The second issue is the other person 'tend to put down others who are more humble/less confident in their skills'. This is a what you would call a jerk (or arsehole in UK parlance). This is the issue that needs fixing. Are you in a position to call them out on this? Not necessarily official manager type position but pull them up each time they do it.
Someone like this could be seen as a bully and making the workplace unpleasant for the quieter / more humble members.
Their skills are irrelevant, if they were the most brilliant programmer in the world this would not excuse such behaviour.