So I only skimmed this thread and I get what your saying. CS /engineering stereotypes of inverted and socially awkward etc. But this is probably more true with this profession.
But… One thing at the engineering open house 3 years ago was the need to communicate. They basically said the ones that can communicate their ideas and talk will be the leaders and the ones that can’t will be the followers… “we want all of you to be the leaders of your teams”.
Don’t wait to take an engineering communication course. Start now. Talk to somebody daily, about anything. Go to talk to a social worker etc even if it’s just to talk. Talk with the learning services, talk to a counselor, your RA etc.
Why did that kid get the internship? Who knows but maybe the professor saw something in the kid that you didn’t. It has “nothing” to do with being the “best” programmer. Sometimes just getting along, being part of the team and communicating is the stronger attribute.
This is a great life lesson. The rest is up to you. Don’t wonder why later on in life or next year when people are applying for internships. Do something about it now to improve yourself.