Все зависит от постановки задачи и уровня программиста. Конкретную задачу начинающий программист должен поставить себе сам.
Чтобы работать программистом в 80% случаев диплом ненужен, но при наличии знаний - получить его можно легко.
Я бы посоветовал пройти бесплатные курсы (такие есть) по основам программимрования, веб-программированию<wbr />, программированию мобильников, программированию баз данных (быть может еще чему-то). Чтобы понять что именно вам интересно. Пройти до конца в любом случае, конечно.
Потом стоит сходить на какие-то мероприятия по программированию. Типа митапов. Посотреть, пообщаться, предложить ребятам себя в качестве стажера. На такие штуки обычно ходят ребята с более-менее приличных контор, а не "рога и копыта"
Ну вот в случае успешного прохождения стажировки вам предожат работу.
Это как бы самый быстрый способ, которым можно пользоваться если у вас реально есть склонность к программированию.
С другой стороны можно пойти в техникум или ВУЗ. Разницы особой нет, но в техникуме у вас скорее всего будет больше свободного времени (хотя есть вузы типа синергии, которые тоже учат как-то странно). Тут преимущество лишь в системности подаваемых знаний, т.е. вам как программисту в любом случае нужно будет сильно расширять кругозор - научиться сеть настраивать, командной строкой пользоваться, виртуальные машины использовать, системы контроля версий и т.п. - это очень много и если вуз хороший - то 4 года учат "тому что надо" очень интенсивно. Лучше ничего быть не может. Бесплатно еще и стипендию платят. И можно в олимпиадах по тому же программированию участвовать.
Сейчас некоторые организации, которые проводят онлайн-курсы по программированию в качестве бонуса предлагают гарантированное трудоустройство своим студентам. Если не знаете за что зацепиться, заплатите им за обучение примерно под 100 000 руб, прилежно пройдите обучение и в конце по идее они помогут вам трудоустроиться. Сам подобной услугой пока не пользовался, но считаю, что это интересная возможность.
В начале карьеры рассчитывать на большую зарплату не стоит. Поэтому, если есть возможность, то лучше начинать потихоньку подрабатывать еще во время учебы, чтобы наработать опыт. Всё равно ведь вы учитесь для того чтобы начать работать.
Скептически отношусь к заявлениям о знании на среднем уровне сразу 4 языков программирования: C/C++, PHP и Java. Специалист, который знает на среднем уровне эти 4 языка вряд ли будет испытывать проблемы с хоть каким-нибудь трудоустройством. И вообще, что значит средний уровень? Есть конкретные показатели знания языка, для Java - это сертификация от Oracle, для PHP - сертификация от Zend, для С/С++ наверное тоже что-то подобное есть.
Сидячая работа, бешеная нагрузка на мозг и зрение. А если работаете в офисе open space, то это просто каторга, потому что все кому не лень, подходят и отвлекают от работы и невозможно сосредоточиться на коде. Так как когда отвлекают, приходится тратить много времени, чтобы вспомнить, о чем думал в тот момент, когда отвлекли.
В ГТА не знаю, но мне кажется, что движок на основе языка программирования C++. Создала эту игру фирма RockStar. В движок уже входит многое, поэтому это не чистый C++, а куча библиотек на нём. Говорят, что для GTA можно моды делать, так что, если интересно почитайте на форумах программистов про это. А для игр подходят те языки, какие игры вы хотите создать. Для 2D игр подходят все языки, имеющие такие функции:
1) Опрос клавиатуры.
2) Вывод на экран графики достаточно быстро.
А для 3D игр желательно ещё чтобы язык программирования имел доступ к системным библитотекам, например к DirectX и Win32API. Но это не обязательно, кто знает формулы для расчёта 3D игр может без всего этого обойтись, хотя работать это будет медленнее, так как всё будет просчитываться процессором.
На ваш вопрос ответ C++. Borland C++ Builder, либо Visual C++. Но вообще-то серьёзные 3D игры без движка не делают, так как без движка это сизифов труд.