Основная деталь, которая отличает новичка от профессионала, заключается как раз в количестве затрачиваемого на выполнение задач времени. Вы можете рисовать или создавать крутые игры уже сейчас. Просто у вас на созидание уйдет больше времени, чем у людей, которые давным-давно занимаются тем же самым. И это нормально.
Но хочу отметить, что в ваших силах – ускорить этот процесс. Трюк, который я опишу, пришел из рисования, но использовать его можно в любом виде деятельности. Заключается он в том, что мастер тратит на свою работу меньше времени, чем новичок, по той причине, что драгоценные минуты не уходят на «мышиную возню», состоящую из лишней суеты и движений. Для того чтобы нарисовать линию, проходящую через весь холст, новичок сделает гораздо больше штрихов, нежели профессионал, который справится с этой задачей одним размашистым движением.
Использовать это знание можно в простом упражнении: нарисуйте несложный объект и посчитайте, какое количество движений вам потребовалось. Если вы уложились в 100 штрихов, то в следующий раз попробуйте уложиться в 80, а потом в 50. Рисунок, выполненный в 50 штрихов, будет нарисован вдвое быстрее рисунка в 100 штрихов.
Этот же фокус прекрасно используется и в программировании. Практически всегда есть способ выразить что-либо куда более лаконично, чем это делает новичок. Я смотрю на свой старый код, и он сейчас мне кажется скачками по зигзагообразной линии, нежели непринужденной прогулкой по прямой тропе.
При работе в Construct можно создать блок с «условием» для «действия». Условием может быть, например, «если нажата кнопка прыжка», а «действием» – сам прыжок персонажа. Чаще всего во время разработки блок с «условием» обрастает новыми деталями. Например, помимо условия «кнопка прыжка нажата» нужно добавить условие, что «персонаж находится на земле», «персонаж жив», «игра не стоит на паузе» и т. д. Construct подразумевает, что в один блок можно засунуть неограниченное количество условий, но по какой-то неведомой причине я очень долгое время под каждое новое условие создавал отдельный блок.
Мало того что мой «код» приобретал воистину неказистый и неудобный вид, так еще и создание каждого блока отнимало у меня несколько секунд. Дальнейшие попытки сориентироваться в монстре, которого я создал, отнимали у меня уже часы. Избавление от вредной привычки заниматься этим бездумным созданием лишних блоков сделало мою работу в разы быстрее и профессиональнее.
Новички тратят больше времени не на создание игр, а на мышиную возню и лишние движения. Противодействуйте лишним движениям в рисовании, боритесь с излишне громоздкими решениями в коде, задумывайтесь о лаконичности в своих действиях и решениях – и вы станете намного быстрее.
Рисуйте одно и то же, совершая меньшее количество штрихов. Переписывайте громоздкие части своего кода в пользу лаконичности. Так вы научитесь работать быстрее.
20. Я – разработчик
Есть определенный тип людей, которые симпатичны мне меньше всего. Я отношу к ним тех, кто четко понимает, какая конкретно цель должна быть достигнута для удовлетворения их потребностей, но при этом не прилагает никаких видимых усилий для ее достижения.
Шесть лет назад мой знакомый с пылким во- одушевлением делился со мной планами по запуску одного весьма перспективного онлайн-сервиса. Сам он работал менеджером среднего звена. Навыки веб-программирования он приобретал в свободное время и никуда особо не спешил. Пять лет назад он все еще хотел реализовать все те же идеи. И четыре года назад. И три. Да даже в этом году при встрече с ним я точно знаю, что буду слушать то, как он с трепетным воодушевлением рассказывает о перспективном будущем своего сервиса. Такие же слова я услышу и в следующем году, и через два года, и через пять лет.
Почему так происходит? У человека вроде есть неудовлетворенные потребности, уже сформирована приблизительная программа действий, накопился массивный запас мотивации – в чем же тут пробел? Чего ему не хватает, чтобы изменить свою жизнь?
Мы не можем поменять свою жизнь, не изменив себя. Если в моей шкуре внезапно окажется другой человек, то мои дела пойдут совсем по иному пути, потому что он будет иначе мыслить.
Восемь лет назад, когда я еще работал воспитателем в центре временного содержания несовершеннолетних, я был не способен принимать те решения, которые принимаю сейчас. И дело не только в моих нынешних навыках, знаниях и опыте, дело в том, как теперь работает мое мышление и какие убеждения я приобрел. Если бы мое мышление осталось прежним, то я все еще идентифицировал себя как «воспитатель», но сейчас я – разработчик.