I am a 16 year junior in high school. I have been programming for about five years and have some skills in Java, Scala, Ruby, Python, C, Assembly,JavaScript, and C#. However, there is a freshmen that thinks he knows JavaScript(but actually only knows how to use Javascript) and writes cheap pointless games. I am studying web app development with the play-framework. Yet this freshmen gets job offers, internships, and all kinds of crap. He does not really know programming. I am not saying that I am an absolute master at it, I am just saying that at least I know the language I am using and not just the API I'm using. Technically he is not even using JavaScript. Technically he is using JScript which is the .netified version. Why is this guy getting all this and I am not.
Networking and charisma go a lot further than talent and skill. It's unfortunate, but the sooner you learn that (and take advantage of it), the better.
^ What Disch said. This guy very well may just be better at selling himself than you are. Being able to convince people of your skills is just as important as the skills themselves.
You say he's making simple little games and getting attention? What are you doing to show your skills in programming? Yeah you might even know 10x more bit if nobody can see that you're not going to get anything.
You know you could chat to this guy and collaborate in something, if he sells you both well and you teach him more things, could be good?
Better to be the guy who has 5 complete, if simple and poorly designed, projects than the guy who has 100 incomplete projects with perfect designs. Better to be the guy who uses the easiest language and tools and gets things done than the guy who uses the coolest language and the best-performing APIs but can only write 10% as much code per day because he's constantly looking up documentation and fixing bugs in his manual memory management.
I keep telling myself that but I still have hardly any finished projects worth looking at. Be a completionist, not a perfectionist. A pragmatist rather than an idealist.
I would advice analizying and make an inference about guys actions(what he does and attracts employers). Change your actions according to the result you get.
It's not just what you've got, but also how you package it. Having the
best ideas, the finest code, or the most pragmatic thinking is ultimately sterile unless you can communicate with other
people. A good idea is an orphan without effective communication.
-The Pragmatic Programmer, From Journeyman To Master