Mało osób się wypowiedziało a sądziłem, że polecą różne standardowe rady typu: nie licz na szkołę i uczelnię. One nic Cię nie nauczą etc.
Jednak jak rozumiem kończysz gimnazjum a od 1.5 roku programujesz, więc chyba nie trzeba Ci tego mówić i masz po prostu ochotę sam się tego nauczyć.
Ja jednak chciałbym powiedzieć, a raczej dać taką radę by unikać sformułowań na jakim to etapie jesteś i jak dobrze znasz jakiś język. Tego się nie da określić. Przykładowo teraz myślisz, że jesteś na średnio-zaawansowanym poziomie, lecz za rok zrozumiesz, jak wiele nie wiedziałeś i głupio będzie sobie przypominać jak to się myślało, że się wiele wie :)
Zresztą zauważyłem, że bardziej doświadczeni programiści (i nie tylko programiści) bardzo często nie wymieniają co potrafią, lecz to co jeszcze chcą się nauczyć i to czego nie wiedzą (a wiedza o tym, że to coś istnieje). Masło maślane? Niekoniecznie, ponieważ im dalej w las tym więcej rzeczy odkryjesz o których dziś np pojęcia nie masz, że istnieją etc. I to jest całkiem normalne.
Dlatego też określanie "na jakim poziomie jestem" jest bez sensu i nie jest miarodajne w żadnym stopniu.
Poza tym napisałeś, że programujesz od 1.5 roku. Uwierz, że przez ten czas mało prawdopodobne byś chociaż miał średnią wiedzę. Przez ten czas powinieneś jedynie już zrozumieć na czym polega programowanie i, że język programowania to tylko narzędzie. Z tego też powodu ilość języków jakie znasz nie jest bardzo istotna, bo jak sam zauważyłeś po nauczeniu się C++, nauka C# wchodzi bardzo prosto. Najtrudniejszy zawsze jest pierwszy język potem leci z górki. Niemniej walenie wszystkich języków jak leci i ich nauka nie jest chyba najrozsądniejszym rozwiązaniem, ponieważ w rzeczywistości będziesz miał bogatą wiedzę na temat języków (a w rzeczywistości pozapominasz o tych nauczonych się w pierwszej kolejności) i będziesz bez projektów, które jakoś by tam mogły poprzeć Twe umiejętności.
Według mnie warto się nauczyć: C/C++, C#, Java. Osobiście nie żałuję znajomości Pascala i Delphi, a także Visual Basica, ponieważ są to dość różne języki o odmiennej składni niż te C-podobne a to daje też pewne poszerzenie horyzontów i łatwość zrozumienia innych języków, które mają pewne "dziwactwa" (w sumie każdy język jakieś ma)
Napisałeś też, że interesujesz się gamedevem, czyli na Twoim miejscu poznałbym też DirectX etc. Tak naprawdę to rób projekty. Wal ich jak najwięcej bo to one dają ogromne umiejętności. Jeden zrobiony projekt jest więcej wart niż 10 przerobionych artów. (Podczas pisania projektu przecież i tak niejednokrotnie trzeba sięgnąć po książkę i coś sobie przypomnieć etc.)
Przed przystąpieniem do projektu warto też przeczytać to: http://www.programuj.com/artykuly/rozne/projekty.php
Bardzo dobrze napisany art. Jeśli nie masz czasu na książkę o inżynierii oprogramowania to ten art będzie takim wstępem z mocnym wejściem :)
Projekty też możesz zacząć pisać w językach których kompletnie jeszcze nie znasz. Wiadomo, nie jakieś ogromne projekty w takim przypadku, ale takie rzucenie się na głęboką wodę daje pewien obraz tego jak sobie radzimy w sytuacjach typowo analitycznych - Masz problem i go rozwiązujesz. nie ważny jest język lecz metoda / algorytm.