Добрый день всем. Хочу поделиться опытом, который будет возможно кому-нибудь полезен. Как стать программистом, и не просто программистом, а именно программистом в геймдеве.
0) Начинать можно в любом возрасте, с любым образованием - сама по себе любовь к играм становится как плюсом при устройстве, так и хорошим мотиватором для саморазвития. Но нужно понимать хотите вы этого реально или нет, потому что геймдев это не сложно, а очень сложно, плюс, высока вероятность того, что у вас выработается отвращение к играм.
1) Базовая подготовка сознания. Вы можете начать разрабатывать игры, даже не окончив школу, однако, навыки которые закладывает школа и вуз - по-своему бесценны. На данный момент в России нет специализированных вузов, в которых обучают геймдеву, однако, хороший технический вуз - очень важная ступень, в идеале, он должен менять модель сознания, учить человека решать задачи. Ваше саморазвитие дома в школьное время - математические упражнения, работа с компьютером, программирование - исключительно важны. Если вы школьник и мечтаете делать игры - не упускайте свои возможности.
2) Фундаментальные навыки. Чтобы быть хорошим геймдевелопером, вам нужно быть отличным математиком, хотя бы на уровне первого курса технического вуза, лишь однажды в работе мне встретилась задача на 2-3 курс - двухмерное преобразование фурье, однако линейная алгебра и матан используются часто, иногда требуется знание физики, в частности кинематика и динамика. Естественно, школьную математику нужно знать на зубок. Знание других предметов или областей физики требуется очень редко и гораздо более поверхностно.
3) Информационные технологии. Вам потребуется знать базовые принципы работы компьютеров, операционных систем, хорошо разбираться в алгоритмах, осилить структуры данных. Под этими словами понимается способность человека разложить любую задачу на алгоритм и данные безотносительно языка программирования, сделать это эффективно - еще лучше. Подходы к программированию - объектный и функциональный(по желанию!). Последнее - вам нужно выучить наизусть язык С. Многие поспорят с этим утверждением, но я всегда настаиваю на этом, понимание С дает людям отличное понимание работы программ в целом.
Теперь, для тех, кто осилил базовую часть начинается интересное - как собственно попасть в команду вашей мечты чтобы делать игру вашей мечты.
0) Выберите основной язык - это можно делать еще в школе, параллельно с изучением основной базы знаний, но огромных проблем выучить язык, у подготовленного человека не будет. Основной язык будет маяком в вашем будущем резюме. Здесь есть несколько вариантов.
С++ - не путать с С, на мой взгляд, лучший выбор для амбициозного человека, лучшее быстродействие, лучшие игры, лучшие компании, и головная боль от попытки его освоить.
Количество вакансий всегда очень высокое, хороших плюсовиков расхватывают как горячие пирожки. Если вам надоели игры - можете, например, легко пойти работать в банк или HFT конторы.
C# - хороший выбор для тех, кто не хочет заморачиваться очень сильно, ваш удел - Unity, но на нем сейчас выходит много годных игр, и много вакансий именно на Unity. Альтернатива - энтерпрайз.
Java - плохой выбор для игр, хороший - для энтерпрайза. Однако, есть и проекты которые используют Java. Также, вы всегда можете пойти писать под Андроид.
Остальные языки - редкость в геймдеве, если не считать скриптовых, не лишним будет знание, например, lua, python, js.
1) Есть два пути чтобы попасть в геймдев компанию программисту
а) устроиться джуном в крупную фирму в геймдев, к сожалению в РФ очень мало таких вакансий, но найти можно, на том же hh
б) поработать программистом на профильном языке в другом месте, параллельно подтягивая свои умения, затем пойти на вакансию миддла(ну или синьора, как подготовишься). Простой путь - опять же, через крупную компанию которой нужен джун(желательно иметь высшее образование), либо через мелкую фирму которым нужен тыжпрограммист. Обе должности могут влиять на опыт одинаково положительно при успешной работе.
Многие попадают в крупные компании через институтские кафедры - это, пожалуй, простой путь. Многие устраиваются в банк, затем идут куда пожелают.
Более экзотические способы, например по знакомству или через геймдизайнерство, я здесь не охватываю.
2) Как только устроились джуном куда либо - прокачивайте навыки командной работы, написания красивого работающего кода, и, что очень важно, архитектуры приложений. Умение разрабатывать красивую гибкую архитектуру - ценится как ничто другое.
При всем этом, очень желательно, и уже было упомянуто, чтобы игры были вашим хобби на протяжении всей жизни.
Написал пока все что пришло в голову и структурировалось, пишите комментарии, если что забыл или вопросы, или спрашивайте отдельный пост на какую нибудь тему.
А также нужны ли вообще такие статьи здесь, на пикабу.
Успехов!