Как войти в IT или история о том, как я учусь программированию (игрообзор с юмором)

- Привет. Теперь ты стажёр. Работай бесплатно. Печенек и кофе тоже нет.
- Привет. Теперь ты стажёр. Работай бесплатно. Печенек и кофе тоже нет.

"Есть ли в жизни что-то более захватывающее, чем самосовершенствование?" - спрашивает меня менеджер компании, куда я только-только устроилась работать. Я отвечаю: "Конечно же нет, босс!" - и иду складывать и вычитать переменные совершенно бесплатно.
Итак, обзор на Human Resource Machine.

Скипнуть весь диалог, душевный рассказ и стёбные шуточки и сразу перейти к финалу (жми, только если ты бездушная скотина) можно тут - <a href="#outbox">"А если серьёзно:"</a>
Скипнуть весь диалог, душевный рассказ и стёбные шуточки и сразу перейти к финалу (жми, только если ты бездушная скотина) можно тут - "А если серьёзно:"

Войти в IT оказалось гораздо легче, чем вещают на многочисленных курсах и коучингах. Это стоило мне всего 100 рублей. Вжух, 10 секунд - и вот я уже самый настоящий айтишник, готовый приступить к работе в огромной компании (прим.: без скидки игра в Стиме стоит 360 р. но, поскольку я люблю оптимизировать не только действия в игре, но и свои расходы, то стараюсь покупать игры по скидкам).

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

Первые задания были совсем простые, типа: "возьми две переменные и выведи в обратном порядке", "возьми две переменные, сложи их (или вычти) и выведи". Потом появилось что-то посложнее: "вычти первое число из второго и выведи, затем вычти второе из первого и тоже выведи".

Сложение и вычитание. Легкотня!
Сложение и вычитание. Легкотня!

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

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

"- Тебе платят не за количество строк, а за качество!!!" "- Но мне не платят..." "- Выполняй!"
"- Тебе платят не за количество строк, а за качество!!!" "- Но мне не платят..." "- Выполняй!"

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

Так что тут я, даже можно так сказать - обманула начальство! Во какая хитрожопая :) Кстати, можете использовать это как лайфхак.

Работай бесплатно - и не придётся жить от зарплаты до зарплаты
Работай бесплатно - и не придётся жить от зарплаты до зарплаты

И вот, таким вот образом, я проработала у них стажёром 10 лет. Эх, пролетели как один день. Всё это время денег на еду и квартиру не было, поэтому приходилось ночевать в офисе и незаметно подъедать забытое в холодильнике коллегами. К счастью, начальство попалось очень доброе и никто из офиса на ночь не выгонял, а после окончания стажировки даже обещали начать платить зарплату! Поэтому я продолжила у них работать.

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

Ответвление слева - ветка "экзаменов" из 3-х этапов
Ответвление слева - ветка "экзаменов" из 3-х этапов

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

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

Если интересно поломать голову, вот условие одной из задач:

Первая усложнённая задача
Первая усложнённая задача

На текущий момент я уже научилась работать с такими операторами:

inbox - взять кубик слева [ввод] outbox - отнести кубик на траспортер направо [вывод] copyto - скопировать значение с кубика в промежуточную ячейку copyfrom - взять значение из промежуточной ячейки add - сложить sub - вычесть jump - перейти к выполнению строки N [повторить] jump if zero - перейти к, только если в руках ноль jump if negative - перейти к, только если в руках отрицательное

Я вертела их и так и эдак, складывала, вычитала, минусовала, проверяла на ноль... Но ничего не получала (по шее не считается). В итоге, спустя пару (прим.: реальных) дней, я придумала как это всё можно сделать, чтобы получался верный вывод для любых поступающих переменных. Всё чётко по ТЗ.
Но моя программа получилась огромной... А по доп.задаче на оптимизацию надо было уложиться всего в 12 команд!!! У меня же было аж больше 20... Как??? Как сделать лучше? И тут я впервые сдалась.

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

Решение первой усложнённой задачи
Решение первой усложнённой задачи

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

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

По ТЗ мне нужно было выводить от некоего числа все промежуточные до нуля. При этом, числа могли быть не только положительными, но и отрицательными. И надо как то это програмно распознать, чтобы задать исходя из этого команду на вычитание или сложение по единице до нуля.
Но КАК??? Всё показалось таким запутанным...

Вторая усложнённая задача
Вторая усложнённая задача

А если серьёзно:

Я пока что застряла на "Второй усложнённой задаче". Думаю, как же правильно написать эту программу... Но уже решила написать на игру обзор, так как от неё сильно в восторге.
Я вообще очень обожаю головоломки и загадки, где надо реально думать и решение действительно есть, то есть оно не надуманное или притянутое за уши. В Human Resource Machine - всё ясно, чётко и подчиняется его величеству Логике.

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

Однако, я совершенный нуб в программировании. Поэтому, возможно, кажущиеся мне сложными задачи, для опытных людей - просто семечки. Меня же, как человека впервые пробующего такой "геймплей", Human Resource Machine сильно заинтересовала.

Мне так же очень нравится в ней то, что решение задач не привязано к сидению у компа. Операторы (пока что) не сложные и их не много, так что запомнив ТЗ, можно просто думать над "написанием кода" в дороге (в очереди, в пробке и т.д.) прикидывая решение в голове или чирикая в блокноте.

Очень рекомендую попробовать Human Resource Machine таким же любителям головоломок. Но настоящим программистам игра скорее всего не зайдёт.
Ссылка на страницу в Steam под видео:

[ВИДЕО] Геймплей Human Resource Machine

P.S. Даже не представляла себе, что на такую простенькую игру напишу столько текста и что она вообще меня так зацепит :) Просто - вау...
Но мне было интересно писать. Надеюсь, вам было интересно это читать.

Обзор на БУСТИ:

12K12K показов
3.8K3.8K открытий
44 репоста
164 комментария

Так говорит Господь: остановитесь на путях ваших и рассмотрите, и расспросите о путях древних, где путь добрый, и идите по нему, и найдете покой душам вашим. Сестра, ты делаешь большое дело в становлении Нового Эдема, что не могло пройти мимо нас, Фонда Поддержки Сладких Булочек. Господь видит всё, а мы приносим дары его достойнейшим. Спасибо тебе за труд твой, он не будет забыт. Вместе - мы едины.

Ответить

Ваша зарплата.

Ответить

Так, я непонел, а здесь есть созвоны, внезапные изменения тз и тт и взаимоисключающие параграфы в них? А то чего-то не хватает.

Ответить