Na běžné pochopení programování opravdu stačí Pascal (jazyk vyvinut pro výuku programování), z MS projektů bych možná doporučil Visual Basic (pořád je to ještě Basic). Pokud to ale myslíte s programováním vážně, pak rozhodně C a C++. S objekty začít co nejdřív, seznámit se s tím aspoň teoreticky paralelně při výuce jazyka. Jako že prakticky zkoušet programovat běžné algoritmy, jako řazení polí, hledání a podobně, ale vedle toho se seznamovat s tím, co to vlastně ty objekty jsou. A opravdu se připravit na to, že to je hlavně teoretické procvičování, kde než člověk napíše do kódu klíčové slovo class, měl by mít povědomí něco o tom, co to objekt je, mít ale také povědomí aspoň o jazyce UML, aspoň vědět k čemu to je a jak se v tom modelují třídy. Na začátku to může být otrava, ale mnohonásobně se to vrátí. V dnešní době všichni co programují v nějaké Javě, v Pythonu nebo v C++ umí sice vyrobit objekt, ale OOP to není ani náhodou.
Ještě se vrátím k C / C++. Jak psal předchozí diskutující, možná jsou dneska jazyky, které umí řešit správu paměti, a spoustu věcí dělají za programátora, ale přesto je dobré si to vyzkoušet ručně. Vědět, že se program musí umět postarat o přidělené zdroje, musí je umět alokovat, včas uvolňovat, sdílet je tak aby nebyl v konfliktu s ostatními aplikacemi ... a není to jen paměť, byť je to prostředek, který se nejvíc používá. Právě proto. Na tom se nejlépe cvičí správa zdrojů. Když se to člověk nenaučí, pak jeho programy budou alokovat systémové prostředky jako otesánci (soubory, sockety, sdílenou paměť, atd), budou pomalé, těžkopádné a v extrémních situacích budou jako první vypovídat službu.