First, I want to apologize if I'm posting this in the wrong site, but I hope this is the right one.
My question "how to find friends" might be very unclear at the beginning, but it's very common in many forums and most of the answers include things like involving in different communities in order to find people with the same interests, but I don't think that it works for me.
First, let me tell the background information. I am a 16-year-old (I'll be 17 in a few months) kid living in a poor Post-Soviet country (mentioning this so that you understand that many Western standards don't apply here). My hobby is computer programming, I've been learning programming since the age of 12. I'm currently studying computer programming at a vocational high school.
While being 16 years old, I look much younger. I am very weak and skinny, in fact, I don't do any sports at all (that might be one reason why nobody wants to be friends with me). I don't have any friends, I am not outgoing and I always feel alone. Also, I find myself being a busy person that doesn't have time to go out and meet with friends (although I don't have any).
I have very good grades at school, but it's not that I am studying a lot after school to get a high grade in tests. In fact, after school I don't dedicate any time for learning, I usually do my homeworks and I'm done. I'm good at remembering certain things, so I'm almost always ready for every test even without preparing. In my class, I am the only one who has a lot of experience in programming (see information about my experience below). Since I have very good grades and I know a lot about programming, nobody really wants to be friends with me at school. This is that kind of a situation when one only wants to be friends with the "cool guys" (people that have bad grades, do stuff like drinking, smoking, etc.). I am not that kind of person. I hate alcohol, smoking and all that kind of stuff. I have asked some people in my age about how they get friends, most of them answer that they go to parties, walk around the streets with their friends at night, smoke with friends (here being a smoker means being cool), etc.
While still being a high school student, I also have a job as a part-time programmer. I work remotely, so I spend 4-5 hours a day while working. I have school from 8:00 in the morning until 15:00 in the evening. I work from 16:00 until 22:00 (I also count having breaks, eating etc) and I go to bed at 23:00. That is how I usually spend my day. I work because I need money to buy things my mom can't buy me. In fact, my mom is the only one who supports me financially. She gets the minimal salary, so that's clearly not enough to fulfill my needs for me as a teenager and a tech person at the same time.
I'm not even trying to brag, but I'm a really good programmer. I know many programming languages, I code better than some people who've been programming for even longer time than me, I often get compliments from other programmers about my skills, I have even won a country-wide programming contest. And since there are no such programmers in my age, it's impossible for me to find programmer friends that would be interested in me (they often want programmer friends that are on the same level as they are). If I ever get a chance to make friends (regardless of whether they're programmers or not), they often distance from me because we don't really have anything to talk about. If they ask me "so, what are your hobbies", all I can answer is programming. Then, if I start explaining them what I do, they are not interested.
I am studying in a different city, so I go home every weekend. Rest of the week I spend at a dorm with my roommate, who also happens to be a "cool guy". At home, my mom is the only person that I can talk to, but we usually don't have anything to talk about either. Since my parents are divorced (my dad lives completely elsewhere and doesn't care about me), she lives with her boyfriend and mostly spends time with him rather than with me. I also have a sister, but she's 23, doesn't live with us, has a boyfriend, so she doesn't have time for me either. And even if we get to talk sometimes, again - we don't have anything to talk about. If she asks me how I am, what I'm doing and when I start telling about my programming stuff, she becomes uninterested and doesn't pay attention to me.
There's much more things I can tell about me, but I think that what I've told is enough to get an understating about how my life works. The reason why I want friends (or at least just one friend; I don't think I'd like having "a million friends") is that I need someone to talk to, tell them about my problems, about my life (and of course, hear about their lives, problems), someone that would be interested in hearing me out. I am so alone, that I often imagine there's another person in the room and talk to them loudly, tell them about my life and my problems, so that I can feel a bit less alone.
So, how to find friends?
- Should I give up programming and do something else? Something, with what it'd be easier to find friends (like music, arts, etc)?
- Should I give up my job (and respectively, the extra money I'm getting to fulfill my needs) to get more time after school to engage in social activities?
- Should I start being interested in something else (but without giving up programming) so that there's something else I could talk to people about?
What should I do in this situation? I'm hoping that I'll find a solution to my problem.