Инструкция. Неполадки. Безопасность. Приложения. Интернет
  • Главная
  • Безопасность
  • Что нужно чтобы стать разработчиком игр. Как начать разрабатывать игры даже если до этого вы были бухгалтером. Процесс разработки игры на ПК

Что нужно чтобы стать разработчиком игр. Как начать разрабатывать игры даже если до этого вы были бухгалтером. Процесс разработки игры на ПК

Заняться программированием сегодня подумывают многие, что не удивительно. Совершенно очевидно, что будущее за IT. Но одно дело подумывать, и совсем другое - стать программистом. Увы, многие останавливаются, не сделав даже первого шага просто из-за банальной неуверенности и незнания с чего начать.

Шаг первый - ознакомительный

Для начала думаем, чем именно хочется заниматься. Допустим, хочется стать разработчиком игр - что дальше? Переходим к мониторингу сайтов по поиску работы - там выясняем, насколько востребованы специалисты того профиля, который вы для себя наметили, и какой у них доход

102 000 рублей в месяц – средняя зарплата по Москве и МО для разработчика игр

Что ж, неплохо! Пожалуй, стоит потратить немного времени и усилий на самообразование. Если картина у выбранной вами профессии выглядит хуже, то можно просто сменить цель. Согласитесь, лучше сделать это на ознакомительном этапе, чем пройдя половину пути.

Шаг второй - вдумчивый

Выясняем, какие требования предъявляются к специалисту, и что он должен знать. Возьмём всё того же разработчика игр. Из чего же он «сделан»?

Базовым языком для данной профессии является C#, а для создания всех возможных и невозможных чудес необходим Unity. Не так уж и много! Но прежде, чем перейти к практике всерьёз, стоит немного узнать про языки, которые предстоит изучить.

Если они окажутся слишком сложными, это может отбить у вас все желание идти дальше.

Поэтому для первых шагов стоит выбрать что-нибудь попроще, например JavaScript. Ведь работа должна приносить не только деньги, но и удовольствие!

Шаг третий - теоретический

Теперь самое время перейти к активным действиям! Если спросить на форумах, как лучше это сделать, то вам в один голос ответят: учитесь сами. Но о подводных камнях предупредит не каждый. Так насколько удобен этот путь?

Самостоятельно - это значит по книгам, сайтам и всевозможным приложениям в интернете. Если вы уже имеете какую-то базу и хотите не спеша пополнить свои знания, то можно учиться и так. Но для новичка, это задачка не из лёгких.

Со всеми возникающими вопросами (а они обязательно возникнут) вам придётся разбираться самостоятельно. Правда, не владея темой, даже правильно сформулировать вопрос не так-то просто. Ещё один вариант - найти ментора. Так называют личного наставника.

По сути, это тот же репетитор. Конечно, вряд ли это будет МарьВанна с указкой в руках, но от того, как сложатся отношения с этим человеком, зависит очень многое. Ментор может стать как путеводной звездой, так и крестом на вашей только начинающейся карьере.

Есть и третий вариант - курсы программирования. Пожалуй, это самый простой и комфортный путь. Курсы - это общение, обмен опытом и определённая тусовка. В этом кроется один из важнейших плюсов такого образования.

Программирование - это почти интимный процесс, в который не хочется пускать посторонних. Как сотворение мира, где всё повинуется только вам!

Для построения карьеры очень важно войти в профессиональный круг. Это даёт новые связи, учит общаться на одном языке, позволяет почувствовать себя своим и перешагнуть порог начальной неуверенности. Даже когда вы сидите не в аудитории, а дома за любимым ноутбуком, вы можете общаться, задавать вопросы по ходу лекции и сразу же получать ответы на них. Разница с занятиями вживую только в том, что вам не нужно никуда ехать.

Какой из этих путей самый короткий?

Ментор может поспорить с курсами, но при условии, что вам с ним дико повезёт. Книга же, безусловно, самый долгий путь, на котором запросто можно заблудиться. И да, ментор вряд ли будет учить вас бесплатно, а вот бесплатные курсы найти можно. А на начальном этапе это неоценимый бонус.

Шаг четвёртый - практический

И самое главное - практика. Ведь для неё-то и нужны все предыдущие шаги! Где взять тот самый опыт, без которого не найти приличную работу? Для многих первым шагом становится фриланс. Возможно, это не очень выгодно, но зато даёт возможность наработать портфолио и приобрести реальный опыт. Ещё один вариант - open source - в таких проектах часто бывают востребованы новички.

Не бойтесь браться за любую работу! Даже если вы просто помогаете более опытному программисту, выполняя для него несложные задачки - это падает вам в копилку. Очень круто если на курсах, которые вы выберете, будет стажировка.

За хорошими образовательными центрами работодатели внимательно наблюдают и расхватывают выпускников, как горячие пирожки. Такие курсы могут стать самым быстрым и прицельным выстрелом. Поэтому не спешите с выбором, ведь ваша цель не бумажка, а практические знания, навыки и хорошее рабочее место с симпатичным видом из окна. И ещё один важный момент: не застревайте на этапах выбора и обдумывания.

Мечты сбываются только у тех, кто сам идёт к ним навстречу. Решайтесь! Читайте также о том, как стать разработчиком игр, где найти бесплатные курсы программирования и варианты стажировок.

«Хочу стать разработчиком компьютерных игр, но у меня ничего не получается. Ну нет у меня таланта, не дано мне этого. Да и денег у меня не так много, а значит нанять специалистов не получится. А если брать себе в команду таких же любителей как я – какой смысл? Ничего у нас не выйдет. Устроится на работу в какую-то уже готовую компанию разработчиков – это ещё сложнее. Выходит всё – никаких вариантов».


Вот такие оправдания придумывают себе игроки, мечтающие стать разработчиками компьютерных игр. Так ли всё сложно на практике? Для начала разберём, какие нужны личностные качества для того, чтобы стать хорошим создателем игр.

Личные качества разработчика игр

Во-первых общечеловеческие качества (начинайте загибать пальцы, если обладаете нижеперечисленным): настойчивость, усидчивость, открытость новым знаниям, хорошее чувство вкуса, богатая фантазия. Пожалуй, для начала хватит.

Всё это так… общий фон личности разработчика. Самое главное: хотите заниматься созданием игр – тогда у вас должен быть соответствующий ТАЛАНТ… Сейчас, наверное, возник вопрос: «Что? Талант? А без него никак не обойтись?».

Спокойствие, только спокойствие. Всё не так безнадёжно, как кажется.


Что такое талант? Это не какой-то дар свыше, данный с самого рождения. Вовсе нет. Пусть вас не вводит в заблуждение эта распространённая, но ложная формулировка.

Талант – это сильное, жгучее и непреодолимое желание заниматься определённым делом.

Без этого желания любое занятие превращается либо в обязанность, либо в интересную забаву. А вещи, созданные при таком рабочем настроении, без желания, не отличаются своим качеством. В творческих профессиях отсутствие таланта создателей чувствуется сразу.

Процесс разработки в игровой студии
Компьютерная игра, созданная из под палки могущественного издательства или ещё хуже - сваяная на коленке неопытными создателями модов, начинает выглядеть блекло на фоне гениальной работы команды талантливых разработчиков, получающих удовольствие от своей деятельности.

При этом стоит научится различать понятия «мечта», «увлечение» и «желание». Когда вы только планируете стать разработчиком, ничего не предпринимая – вы мечтаете. Когда начинаете что-то делать, учитесь создавать, изучаете игровые редакторы, спотыкаясь обо всё что можно – вы увлечены этим занятием. Когда же вы уже чётко решили довести это дело до конца, когда все мосты за спиной сожжены и уже нет возможности отказаться от этой идеи, когда вы сами так решили, а не кто-то вас заставил, когда больше не останавливают никакие препятствия, все они рано или поздно уничтожаются вами с помощью настойчивости – вот тогда вы действительно «желаете». Тот, кто хоть раз был влюблён, знает, что такое желать по-настоящему.

Проблема нехватки опыта

Огромное количество игроков, сделав несколько попыток по созданию своих игр, отказываются от этой безумной идеи. Ведь сразу ничего не получается, сказывается нехватка необходимого опыта. Это неправильный подход к делу.

Отсутствие должных навыков и знаний – не причина для того, чтобы забрасывать свою мечту.

Главное – чувствовать в себе талант - неугасаемое и жгучее желание создать что-то своё, задать свои правила игры, посвятить этому занятию всю свою жизнь.

Благодаря таланту рано или поздно улучшатся необходимые навыки, накопится требуемый уровень опыта, появится художественный вкус, интуитивное ощущение того, что и как нужно делать. Нужно лишь время и настойчивость. Только благодаря богатому практическому опыту появится возможность создать настоящий шедевр. Это действительно возможно.


В итоге, чтобы стать разработчиком игр, нужно:

В начале – талант, который можно разжечь в себе самостоятельно;
в процессе – терпение, настойчивость и открытость новым знаниям.

Категории разработчиков

Даже если не удаётся развить в себе талант, даже тогда можно заниматься разработкой игр. Наличие опыта так же не является обязательным условием, ведь кроме разработчиков-профессионалов существуют ещё и не менее многочисленные разработчики-любители.

Вообще, разработчиков всех уровней условно можно поделить на пять типов:


Типы разработчиков Качества
опытность увлеченность желание (талант)
опытность увлеченность -
опытность - -
- увлеченность желание (талант)
- увлеченность -

Мастера – профессиональные, опытные, увлеченные своим делом разработчики, имеющие сильное желание создавать игры, отдающие этому занятию всю свою жизнь. Именно такими и должны быть идеальные создатели игр, именно они и создают шедевры, достойные звания произведения искусства. Они есть в России, но их очень мало. Они не обучают молодёжь, не набирают себе новых специалистов, не торопятся со своими релизами. Они слишком увлечены своим основным делом, чтобы развивать всю индустрию в целом. Такими мастерами могут стать только настоящие фанаты компьютерных игр.


Ремесленники – опытные разработчики, занимающиеся созданием игр так же увлеченно, но только в рабочее время, без излишнего энтузиазма. Это так называемая «средняя прослойка» создателей игр. Они выпускают интересные, качественные игры, немного не дотягивающие до шедевров. Используют в своих играх чужие наработки, искусно преобразовывая и маскируя под свои. Но иногда их опытность позволяет отшлифовывать старые идеи до такого блеска, который в итоге затмевает первоисточник.

В России таких разработчиков чуть больше, чем создателей шедевров. Но на самом деле их должно быть в десятки раз больше. Если сравнивать с другими странами – разработчиков-среднячков у нас катастрофически не хватает.


Штамповщики – опытные разработчики, занимающиеся созданием игр ради заработка. Таких в игровой индустрии большинство. Те кто создают нишевые проекты, с самого начала направленные на определенную аудиторию. Главное для них – чтобы в игре были такие элементы, которые нравятся игрокам, которые уже неоднократно доказали свою востребованность. Творческий процесс сводится к минимуму. При этом ставки делаются на хорошую рекламу, на красивую графику и на стандартный игровой процесс. По большей части они выпускают упрощенные клоны популярных игр. В двух словах их творчество можно назвать «игры пустышки».

Сейчас «штамповщики» активно создают онлайновые, браузерные игры, приложения для социальных сетей, постепенно оставляя в покое однопользовательские игры.


Фанаты – непрофессиональные создатели, не имеющие должного опыта, но компенсирующие эту нехватку своим сильным желанием создавать компьютерные игры. На разработку полноценных игр им не хватает денег, и чаще всего они выпускают лишь фанатские дополнения, иногда очень качественные (так были созданы: Counter Strike, DotA, Portal).

Хотя, дополнениями дело не ограничивается, в последнее время приобрёл популярность новый формат – инди игры , являющие собой небольшие, необычные, новаторские игры, не требующие большого количества денег на разработку. В результате появления инди движения, фанаты получили ещё одну серьёзную возможность реализовывать свои смелые проекты.


Любители - обычные игроки, решившие попробовать себя в игростроении. Отсутствие опыта в этом случае ничем не компенсируется, и результат их деятельности оставляет желать лучшего. Не стоит путать фанатские и любительские дополнения. Работы фанатов намного качественней, но и встречаются реже. Работами же любителей завален весь интернет.


Хватит теории, теперь немного практических советов. Чаще всего именно эта информация необходима начинающим разработчикам игр. Есть несколько основных направлений, ведущих в игровую индустрию.

Разработка игр в одиночку (инди игры)

Во-первых, можно заняться разработкой игр в одиночку. В таком случае понадобятся общие знания всех этапов процесса создания игр: программирование, графика, дизайн, левелдизайн, озвучка, музыка, тексты, устранение ошибок, релиз. Если вы решите взвалить весь этот груз лишь на себя одного, то разработка средней по объёму игры может затянуться в лучшем случае на несколько лет, а в худшем – на всю жизнь.

Значительно облегчить нагрузку на автора игры может готовый игровой движок. Игровой движок – это программа, содержащая в себе общие алгоритмы построения игр. Чаще всего в игровом движке уже готова система уровней, есть модели игровых персонажей, физические законы, управляющие поведением игровых объектов, модули для подключения к игре различных медиафайлов: изображений, звуков, музыки. Автору остаётся лишь подставить в готовый движок своих персонажей, создать свои уровни, события, тексты и медиафайлы. Программирование сводится к минимуму, на первый план выходит дизайн и внутреннее содержание игры.

Некоторые игровые движки распространяются бесплатно, но более качественные, проработанные и современные – естественно продаются за деньги.

Бесплатные игровые движки (программы для создания игр):

2D: GameMaker 8, RPG Maker, Construct.
3D: GameMaker 3D, 3D Rad, Unity 3D, UDK, CryENGINE.
Flash: Adobe Gaming SDK, Stencyl, Citrus.
Mobile: Adobe AIR, Cocos2d, jMonkey engine.

Создание своей игровой студии

Во-вторых, можно собрать свою собственную группу разработчиков. Людей, которым интересно создание игр, не так уж много, как кажется. Не получится просто пройтись по своему многоквартирному дому и записать в команду всех играющих приятелей. Может быть многие из них и загорятся идеей стать знаменитым во всём мире разработчиками, но, скорее всего, никто из них не будет готов пожертвовать ради этого своё рабочее и даже личное время. Лучше всего подыскивать себе единомышленников на сайтах, специализирующихся именно на разработке игр. Там найдутся люди, хотя бы что-то уже умеющие. Тем более, вращаясь в кругах таких же разработчиков-любителей, вы волей-неволей будете набираться опыта и получать новые знания.

Сообщества разработчиков-любителей:

GcUp.ru , GameDev.ru , game-maker.ru .

Более подробно об этом на странице «Сайты о создании компьютерных игр ».

Устройство в профессиональную компанию

В-третьих, обладая некоторыми узкоспециализированными умениями и талантами, можно попробовать устроиться в существующую профессиональную игровую компанию. Есть множество самых разношерстных творческих профессий, специалисты которых необходимы в разработке компьютерных игр.

Профессии разработчиков игр:

Программист, художник, геймдизайнер, дизайнер карт, тестер.

Но, устроившись в большую компанию, вы не будете придумывать и создавать игры, вы лишь будете участвовать в их разработке, будете помогать реализации чужих игровых идей. Не смотря на это, общение с профессиональными разработчиками может принести вам уникальный бесценный опыт, который позднее можно будет использовать для своих собственных проектов.

Достижение "Почётный читатель сайт"
Понравилась статья? В благодарность можно поставить лайк через любую социальную сеть. Для вас это - один клик, для нас - очередной шаг вверх в рейтинге игровых сайтов.
Достижение "Почётный спонсор сайт"
Для особо щедрых есть возможность перевести деньги на счет сайта. В этом случае вы можете повлиять на выбор новой темы для статьи или прохождения.

До того как я стал разработчиком игр, я (да и все в моем окружении) считал себя дизайнером сайтов.
Не плохим, кстати, но дизайнером сайтов. Профессия, которая почти никак не используется в разработке игр.

Есть такой стереотип - когда кто-то говорит, что он в разрабытавает игры без команды, все сразу представляют его программистом. На самом деле, стереотип не так далек от правды: скорее всего, разработчик, описанный выше, действительно умеет программировать, но программистом он может себя не считать.

После одного игрового проекта со стримом всего процесса разработки мне часто пишут начинающие разработчики, что-то спрашивают, что-то показывают и на что-то жалуются. Недавно мне пришлось влезть в спор двух ребят, где темой спора было: “Что круче знать 3д-моделирование или программирование, если собираешься разрабатывать игры?”. Влез к ним в спор с предложением сделать первый шаг из схемы, что родилась в процессе участия в игровых проектах и создания своих.

Шаг 0. Станьте разработчиком игр

Именно первый, а точнее даже “нулевой”, шаг сделает Вас сразу разработчиками игр. Это не проекты, которые, может, уже есть у Вас за плечами, не навыки, котороми Вы, может, владеете, а простой, но очень важный шаг: скажите себе, а заодно и всему миру, что вы разработчик игр. Как только у вас уляжется в голове ответ на вопрос, чем вы занимаетесь - разработкой игр, - вы сразу станете для себя и окружающих разработчиком игр.
Как это сказать себе и другим?
Уверен, что у вас уже есть какая-то профессия. Также я уверен, что Вы каждый день посещаете сайты/форумы, связанные с вашей профессией, читаете блоги и, может, даже книги.
Первое, что надо сделать, чтобы стать разработчиком игр:
  • Начать посещать сайты, связанные с тематикой игр и разработкой игр.
  • Подписаться на блоги разработчиков, творчество которых вам нравится.
  • Купить пару книг в “киндл” на амазоне, например, о игровом дизайне.

Все, вы разработчик игр . Действительно, элементарный шаг вам может дать доступ к столь “закрытой” профессии как разработчик игр. Правда, без опыта и регалий, но никто (ни вы, ни окружающие ) уже не оспорит, что вы разработчик игр.

Шаг 1. Найдите себе применение как разработчику игр

Теперь, когда Вы смело можете считать себя разработчиком игр, надо найти себе применение. Как писатели могут пребывавать в двух состояниях: ищут идею книги, пишут книгу, - так и разработчики: ищут проект (идею), делают проект. Бывает, конечно, еще и поддерживают проект, но лично я его всегда объединяю с процессом поиска нового.

Слова “найти проект” для каждого разработчика игр значат разное, вот список популярных способов поиска проектов:

  • найти проект, близкий по духу, с интересной идеей, проинвестировать в него свои навыки и/или деньги, а, может, какие-то еще ресурсы;
  • взять пару игр и сделать из них микс;
  • сделать клон игры, что может принести хорошую прибыль;
  • придумать гениальную идею и попробовать найти энтузиастов;
  • сделать ремейк любимой игры;

    И множество других способов.

Выйти из состояния “поиска проекта” нужно как можно быстрее , и желательно выйти в состояние “делаю проект” и делать проект с шансами на успех: релиз и популярность.

Этот этап - первая проверка для начинающего разработчика. Сделать выбор при полном отстутствии опыта очень сложно, но, к счастью, любой выбор принесет нам опыт.

Вот некоторые советы для прохождения этого шага:

  1. Начните что-то свое . Свое от идеи до реализации в одиночку. Даже если у вас есть навыки программирования или вы сносно рисуете, - не вступайте в существующие проекты. Сделайте что-то небольшое, не требующее серьезных навыков.
    Например, я сделал маме подарок на НГ - 3д-игру по психологической методике:
    У меня не было опыта разработки на C# и программировать я особо не умел (немного знал python) и никогда до этого не моделил.
  2. Скажите себе кодовую фразу: “Если кто-то смог, я тоже смогу ”. Как бы вы ни были готовы к игровому проекту, всегда будет задача, с которой вы никогда не сталкивались. Например, даже у опытных программистов программного обеспечения, часто нет опыта создания шейдеров. Скажите себе кодовую фразу и учитесь по ходу .
  3. Найдите себе единомышлеников . Мне в моем развитии очень сильно помогли: скайп-чатик разработчиков социальных игр (теперь уже создатели: Голос Припяти 3D, Tanks Heroes, Contract Wars, Батла и многие другие) , а также одногруппники из Scream School по курсу гейм-дизайна . Их успех будет вас подталкивать, а обмен опытом ускорит процесс развития.
  4. Выберите себе платформу для разработки . Определите платформу, которая вас устраивает. Это может быть, например, Unity - за ее возможности, огромное комьюнити и сравнительно низкий порог входа. Вне зависимости от платформы, станьте ее евангелистом . Это позволит вам наладить коммуникацию с другими разработчиками и быстрее развиваться.
  5. Не давайте эмоциям взять вверх . Ошибки и неудачи станут вашими спутниками на длительный период, а если вы будете делиться процессом развития с русскоговорящими разработчиками, будьте готовы к тоннам говна большому количеству негативных отзывов. Не позволяйте эмоциям брать вверх: слушайте любые отзывы и предложения, но относитесь ко всему с необходимой критикой. Сохраняйте критичность ума .

Шаг 2. Помогите себе закончить хотя бы ОДИН проект!

Если вы закончили свой первый проект как разработчик игр, скорее всего, вы что-то делали не так. Даже эпилептоид не сможет закончить свой первый проект, а к первому релизу у него в архиве будет пара-тройка (минимум) замороженных проектов. Это нормально . Мы учимся на своих ошибках, а не совершают их только идиоты или те, кто ничего не делают.
Но в какой-то момент нужно будет собрать весь свой опыт, полученный из проб и ошибок, и, наконец, сделать свой первый релиз .
У каждого разработчика своя история первого релиза, но у меня есть пару советов, которые обязательно вам помогут:
  1. Вгоните себя в экстремальные условия , а выходом из них сделайте релиз. Поставьте себе реальный, но очень сжатый срок на релиз, например, 48 часов или неделю, но спать будете по 4 часа в день. Это даст сильный толчок, заставит оптимально использовать время и сфокусироваться на результате.
    • Сжатые сроки
      Сжимая сроки, не оставляйте себе время на риск. Сжимайте до последнего, пример с 48 часами - хороший.
    • Отсутствие сна
      Полное или почти полное отсутствие сна хороший мотиватор, но не доходите до крайностей. Практика показывает, что даже молодому организму надо давать отдых.
    • Менеджмент времени
      Не стоит выделять много времени на тайм-менеджмент, но не забывайте ставить себе вехи (milestone). Например, скажите себе, что через 5 часов вам надо сделать играбельный прототип.
      Например, в своем первом 48 часовом марафоне (на нем я только рисовал) , я за первую треть времени нашел стиль игры, нарисовал основной, игровой экран и все спрайты врагов. И за оставшееся время сделал 170+ спрайтов анимации и дорисовал интерфейс.
    • Конкурсы , особенно мероприятия, типа, HackDays или Ludum Dare, где нет времени на раздумья и надо сразу бросаться в работу, - отличное подспорье для пунктов выше.
  2. Поставьте себе рамки . Для первого релиза, особено в сжатые сроки, критически необходимо знать рамки проекта. Выпишите себе минимум, что нужен для релиза, и не выходите из него. По необходимости:
    • Урежьте список возможностей
      Было бы здорово сделать возможность летать на самолетах, но если вы делаете шутер про пехоту, сфокусируйтесь на стрельбе.
    • Сократите время игры
      Вероятно, вы рассчитывали сделать синглплеер на 5 часов игры, но вы останетесь победителем с демкой на 20 минут.
    • Уберите часть контента
      Конечно, дополнительная карта не будет лишней для вашего тактического шутера, но релиз останется релизом даже с одной картой.
  3. Ищите простые пути . Напоминайте себе, что вам необходим релиз, а не шедевр . У вас остается право на ошибку, но вы потеряли право на заморозку проекта.
    • Используйте костыли и хардкод
      Не стоит фокусироваться на универсальности или производительности кода. Оптимизация тоже подождет. Просто идите к результату.
    • Копируйте, а не придумывайте
      Если с ответом на любой вставший перед вами вопрос возникают трудности, копируйте решение коллег.
    • Используйте опыт на 150%
      Учет сделаных ошибок - это, несомненно, хорошо, но пока вы их совершали, вы собрали багаж наработок. Постарайтесь использовать из него что-то.
    • Подключите все ресурсы
      Если у вас есть друзья, готовые помочь, не отказывайтесь, а если у вас есть денежный ресурс - вкладывайте (покупайте готовые решения, контент и рабочие руки). Ваши вложения окупятся в дальнейшем.

Шаг 3. Сделать полноценный релиз

Когда прошлые шаги позади: релиз за плечами и опыт какой-то уже есть, - хочется, чтобы ваше хобби (не приносящий доход род занятий) переросло в настоящую профессию и источник хорошего, постоянного дохода. Каждый разработчик понимает, что для этого ему нужен полноценный релиз, не тот (те), что мы получили из второго шага, а полноценный релиз с шансом на успех. Увы, но релиз из прошлого шага нужен только для ощушения победы, а не успеха.

Сделать полноценный релиз - это уже задача с миллионом способов решения, и вы обязательно будете иметь решение к тому моменту, когда у вас появится возможность для его создания. Но вот некоторые советы для настоящих indie (парней, что живут хардкором и разрабатывают свои игры без инвестиций и денег издателя):

  1. Делайте проект каждый день . У всех начинающих инди есть занятия, с которыми приходится совмещать разработку. Но не забывайте добавлять хотя бы одну строчку кода или новый спрайт в игру каждый божий день. Это очень важно, это пункт номер 1.
  2. Ставьте себе небольшие задачи и старайтесь выполнять их каждый день. Долго открытая задача, например: “разработать систему инвентаря”, может быстро превратиться в “висяк” с очень низким приоритетом. Поставьте задачу “Интерфейс основного окна инвентаря” и закройте в этот же день, а затем радуйтесь прогрессу.
  3. Два шага вперед, один в сторону . Какой бы разнообразной вы ни планировали игру, не стоит делать сразу 50 типов врагов и тысячи уровней. Сфокусируйтесь на реализации возможностей игрока, а не способах их проявлений. Делаете слешэр? - Реализуйте возможность рубить врага, а врагов клонируйте.
  4. Прототипируйте . Когда вы сфокусированы на настоящем релизе, необходимо отдавать себе отчет, что игра должна быть хорошей . Проверить это можно, прототипируя.
  5. Вы делаете игру . Не стоит делать из своей игры движок или фреймворк. Нет, я не про чистоту кода или возможность его переиспользовать. Работайте хорошо, и результат будет хороший. Не стоит реализовывать возможности до того, как поймете, что они действительно необходимы вашей игре . Например, если вы не уверены, что будет возможность менять цвет одежды героя, не стоит рисовать маску для смены цвета в шейдере. Убедитесь, что ваш дизайн подразумевает наличие предметов перед тем, как создать класс Item.
  6. И главное… Не бойтесь вернуться на шаг 2 . Возможно, еще не время для настоящего релиза.

С чего начать учится программированию с нуля чайнику?
В этой статье я постарался подробно разобрать, можно ли стать программистом с нуля самостоятельно и какие варианты есть для того, чтобы освоить программирование самостоятельно и начать зарабатывать на этом.
UPD : Тем, кто ищет, с чего начать изучать программирование с нуля в 2018 (или пока только собирается и приступит в 2019:)), сильно повезло благодаря книге Якова Крамаренко «Введение в разработку программного обеспечения». Я искренне рекомендую с ней ознакомится — она стоит того, чтобы обновить статью №1 по рейтингу Google и отзывам читателей для тех, кто изучает программирование самостоятельно.

Постарался дать самый лучший — на мой взгляд — путь. Предупреждаю — он не из легких! Дальнейшее прочтение может стоить вам многих часов интересных занятий:)

Скажу сразу — если вы решите изучать программирование только самостоятельно, не вкладывая денег — придется потратить больше времени. Рассчитывайте на освоение новой специальности минимум через год, если занимаетесь обучением параллельно с другой работой.

Если вы найдёте, чем дополнить эту статью, чтобы сделать её полезнее для людей — напишите в комментариях.

В этой статье собраны лучше практики, исходя из моего опыта, если вы хотите самостоятельно освоить программирование. Всё это по прежнему актуально с парой дополнениий.

Книга по веб-программированию для начинающих

Версия 2016 года есть в переводе: https://courses.prometheus.org.ua/courses/Prometheus/CS50/2016_T1/about .

Лучше пройти курс на английском. И язык прокачаете, и информация посвежее. Хотя сильно курс не менялся — только в 2017 вместо PHP начал использоваться Python.

Прохождение курса займёт время, но даст довольно полное понимание, которое сложно иначе получить самостоятельно.

Первоначально нужно решить, какое направление программирования вас интересует. Если речь идет о изучении разработки с нуля и вы хотите начать скоро зарабатывать на этом, то на мой взгляд варианта два: разработка для мобильных устройств или веб-разработка.

Лучший выбор в такой ситуации — на мой взгляд — начать изучать веб-разработку. Здесь ниже порог входа для новичков и есть возможность раньше начать выполнять несложные заказы.

Как самостоятельно стать программистом с нуля

Если бы я начинал с нуля изучать веб-разработку самостоятельно (понимая, что без вложения денег это более долгий путь), то сам себе я бы порекомендовал такой путь:

1. Разобраться в HTML и CSS

Хороший курс для базового освоения HTML и CSS: https://learn.shayhowe.com/html-css/ (English) или https://webref.ru/layout/ learn-html-css (перевод).

После этого стоит посмотреть на возможности Bootstrap, который стал стандартом де-факто для ускоренной разработки веб-приложений: http://getbootstrap.com/

Этого будет достаточно для следующих шагов.
Возможно на этом этапе вы захотите остановиться и изучить CSS подробнее. Это даст вам возможность работать верстальщиком — человеком, который делает из дизайна статическую HTML страницу, после чего программист ее оживляет, реализуя логику проекта.

На этом тоже можно зарабатывать — как на фрилансе, так и работая в ИТ-компании, которая специализируется на веб-разработке.

Но раз мы решили стать программистом — двигаемся дальше!

2. Познакомиться с jQuery

Если понравилось — можно продолжить разбираться с frontend и начать изучать Javascript .

Если следом пойдет https://angularjs.org/ или http://backbonejs.org/ — то это путь во фронт-енд разработку. Хорошая специальность, тем более, что такие знания пригодятся любому программисту, который выбрал веб-разработку.

Мой совет — пока остановиться на jQuery и двигаться дальше.

3. Освоить серверный язык программирования

Тут выбор большой. Самые перспективные языки программирования — Ruby, Java, Python, Node.JS (Javascript для сервера).

Самым простым языком программирования для начинающего будет Python. Если вы изучите Python, а затем фреймворк Django для веб-разработки — у вас будет все необходимое для самостоятельной реализации довольно сложных проектов.

Хороший вариант — язык программирования Python и Django

Плюс — Python и Django научат вас «правильному» программированию. Python стабильно входит в ТОП5-10 самых востребованных языков, а хорошие специалисты в Python одни из самых высокооплачиваемых программистов. Python одновременно простой и понятный для начинающих программистов язык программирования, и при этом используется во многих крупных компаниях и на больших проектах.

Для самостоятельного освоения прочтите «Python для детей» Джейсона Бриггса или посмотрите:

Среди других материалов рекомендую Learn Python The Hard Way . книгу «Простой Python. Современный стиль программирования». И, конечно The Python 2 Tutorial и The Python 3 Tutorial .

Django — возможно лучший фреймворк для веб-разработки

Лучший инструмент на все случаи жизни очень сложно найти. Django имеет все шансы стать таким инструментом для веб-разработки.

С чего начать для изучения Django:

Начните с официальной документации, там очень хороший tutorial: https://docs.djangoproject.com/en/2.1/intro/

Tango with Django — это хорошая возможность подтянуть английский и одновременно получить понимание того, как устроены веб-проекты и как всё работает.

Вариант №2 — PHP и WordPress

Другой путь — начать с PHP и работы с популярными CMS. Если вы изучаете программирование сами и хотите быстро начать работать — начните с PHP.

Многие считают PHP «не совсем настоящим» языком программирования и для этого есть основания. PHP редко используется в крупных веб-приложениях и заточен только для веб — использовать его в других областях не получится.

С другой стороны — PHP лидирует по количеству запущенных в мире сайтов. На нем основаны самые популярные CMS (системы управления сайтами).

После этого разберитесь с созданием тем под WordPress — это вероятно самая популярная CMS в мире, если оценивать по количеству запущенных сайтов.

Хорошо разобравшись с этим, уже можно найти работу. Под PHP и WordPress очень много сайтов, поэтому работы хватит всем.

Как начать зарабатывать программистом

Многие представляют работу программиста-фрилансера так:

На самом деле это выглядит примерно так:

Если вы готовы к работе программиста и ищете способ зарабатывать — добро пожаловать на фриланс! Фриланс-биржи позволят вам найти простые заказы (возможно почти бесплатно на первых порах) — чтобы получить практику. Как правило, работа в ИТ-компании может быть прибыльнее, если вы просто ищете работу программиста.

Уже после пункта 2 — освоив HTML, CSS и jQuery — можно идти на фриланс биржи и брать несложные заказы, нарабатывая профиль.

Знаете английский? https://www.upwork.com/

Совсем нет, даже со словарем? http://freelance.ru/

К тому времени, когда вы сможете самостоятельно делать сайты, вам будет проще найти клиентов — будут отзывы и опыт.

Быстрый путь в веб-разработчики

Исходя из моего опыта, на изучение программирования с нуля уйдет от 6 до 12 месяцев в лучшем случае, при этом 6 месяцев — это если вам кто-то помогает.

Чтобы ускорить процесс входа в ИТ — ищите возможность пойти на тренинг (возможно понадобится не один) или найдите человека, который будет заниматься с вами. Реально без человека, который передаст вам свои знания — очень сложно, можно просидеть год за книгами и так и не начать. А со знающим человеком, который может просто рассказать о сложных вещах — намного легче.

В свое время я выбрал путь входа через тренинг. При том, что я много знал о разработке, это позволило мне за 2 месяца освоить то, на что могло уйти полгода. Ищите свой путь.

У меня есть , которые серьезно приняли решение начать карьеру программиста, и хотят ускорить этот процесс. Есть много других курсов. Если вы найдёте себе ментора — человека, который проведёт вас за руку — это заметно сократит ваш путь в разработчики.

Как только почуствуете уверенность в том, что можете что-то создать — ищите компанию, где сможете развиваться дальше или клиентов.

HTML, CSS, Python и Javascript — это только базовые знания, первый этап. Дальше очень важна практика, изучение алгоритмов и инструментов для разработки.

Если есть вопросы — задавайте в комментариях! Надеюсь эта статья поможет вам сделать первый шаг. Успехов!

Узнайте, чем вам придется заниматься. Как правило, программисты пишут коды для приложений, которые используются в бизнесе, поэтому вам следует выяснить, как работает бизнес, как он организован и как построена его финансовая система.

Изучите различные типы архитектуры компьютерного оборудования. Будет полезно изучить основы построения цифровых схем и компьютерной архитектуры . Однако некоторые специалисты считают, что на начальном этапе это не нужно, поэтому достаточно будет прочитать 2-3 статьи на эту тему (например эту и эту). Вы сможете вернуться к этому, когда освоите свой первый язык программирования.

Изучите язык программирования базового уровня. Не стесняйтесь изучать то, что считается детским, лишь потому, что вы старше. Примером такого языка служит Scratch. Такие языки облегчат работу с вашим первым настоящим языком программирования. Тем не менее, этот шаг нельзя считать обязательным. Кроме того, заняться этим можно и до предыдущего шага.

Изучите одну из систем продвинутого моделирования (к примеру, UML или ORM).

Начните писать небольшие консольные или консолеподобные приложения. Можно использовать упражнения из учебников по программированию. Выберите инструмент для написания программ на том языке программирования, с которым вы работаете.

Начните применять полученные знания.

  • Объектно-ориентированная парадигма.
  • Пройдите вводный курс как минимум по одному языку программирования в другой парадигме программирования. Следует выучить один язык в каждой парадигме, и, как правило, все хорошие программисты так и поступают, однако вам достаточно начать с одного, поработать с ним, потренироваться, а затем перейти к другим, когда у вас уже будет реальный опыт в программировании. Присмотритесь к одной из следующих сфер:

    • Парадигма логического программирования.
    • Парадигма функционального программирования.
  • Попробуйте сравнить два языка программирования, которые вы уже освоили. Оцените сильные и слабые стороны каждого из них. Обычно делают это так:

    • Возьмите простой пример вашей ранней работы на первом языке программирования и перепишите ее, используя второй язык.
    • Создайте новый проект и используйте там оба языка. Возможно, некоторые вещи вам не удастся сделать на одном из языков - все будет зависеть от выбранного вами проекта и языков.
    • Сделайте шпаргалки или сравните похожие конструкции в обоих языках и их отличия в сводной таблице.
    • Найдите способ повторить конструкции, которые есть в одном языке, с помощью другого языка.
  • Изучите концепции визуального программирования с помощью одного из выбранных вами языков. Практически у всех языков программирования есть версии либо библиотеки, которые поддерживают визуальное программирование и другие виды консольного или консолеподобного программирования. Сделать это можно следующим образом:

    • Пройдите вводный курс по событийно-управляемому программированию. В основном визуальное программирование базируется на событиях и обработке событий (с помощью выбранного языка программирования).
    • Попробуйте поработать с большим количеством программного обеспечения для стационарных компьютеров, чтобы понять, что делают эти программы. Большинство компаний-разработчиков предлагают бета-версии приложений, которыми можно попробовать пользоваться. Следите за развитием пользовательского интерфейса.
    • Читайте статьи или руководства по работе с графическим пользовательским интерфейсом.
  • Начните применять свои знания, разрабатывая простые приложения. Попробуйте использовать полученные знания для решения повседневных проблем. К примеру, пишите программы, которые будут массово переименовывать файлы, сравнивать текстовые файлы визуально, копировать названия документов в определенное место в отдельный файл памяти или текстовый файл и так далее. Для начала пусть все будет простым.

  • Лучшие статьи по теме