Как войти в IT или история о том, как я учусь программированию (игрообзор с юмором) - Norhala
Читать на DTF: https://dtf.ru/u/1049184-norhala/1976202-kak-voyti-v-it-ili-istoriya-o-tom-kak-ya-uchus-programmirovaniyu-igroobzor-s-yumorom "Есть ли в жизни что-то более захватывающее, чем самосовершенствование?" - спрашивает меня менеджер компании, куда я только-только устроилась работать. Я отвечаю: "Конечно же нет, босс!" - и иду складывать и вычитать переменные совершенно бесплатно. Итак, обзор на Human Resource Machine . (scr.1) - Привет. Теперь ты стажёр. Работай бесплатно. Печенек и кофе тоже нет. Войти в IT оказалось гораздо легче, чем вещают на многочисленных курсах и коучингах. Это стоило мне всего 100 рублей. Вжух, 10 секунд - и вот я уже самый настоящий айтишник, готовый приступить к работе в огромной компании (прим.: без скидки игра в Стиме стоит 360 р. но, поскольку я люблю оптимизировать не только действия в игре, но и свои расходы, то стараюсь покупать игры по скидкам). Итак, меня взяли на работу в некую компанию. Обещали карьерный рост, но первое время придется просто работать нахаляву стажёром ради опыта. Я, конечно же, согласилась. Первые задания были совсем простые, типа: "возьми две переменные и выведи в обратном порядке", "возьми две переменные, сложи их (или вычти) и выведи". Потом появилось что-то посложнее: "вычти первое число из второго и выведи, затем вычти второе из первого и тоже выведи". (scr.2) - Сложение и вычитание. Легкотня! Все переменные - это кубики на транспортере. Чтобы их "обработать" перед выводом - можно скопировать данные в ячейки на полу. Нам нужно написать "программу" (на скрине - справа) которая даёт указания что делать с кубиками персонажу перед тем, как положить на транспортёр вывода. То есть вам даётся несколько операторов (взять, скопировать, сложить с, вычесть из, вывести, повторить и т.д.) и вставляя их в поле справа в определённом порядке вы задаёте действия, которые потом повторит ваш персонаж, когда вы нажмёте кнопку "пуск". С каждым последующим уровнем вам выдают новые операторы и усложняют ТЗ (Техническое Задание — документ определяющий цель, структуру, свойства и методы какого-либо проекта). (видео) Геймплей Human Resource Machine После того, как меня обучили базовым основам и действиям, шеф начал требовать, чтобы я максимально оптимизировала свой "код". К каждому заданию стало добавляться требование использовать не более X команд и чтобы на обработку всех данных ушло меньше N шагов. (scr.3) - "Тебе платят не за количество строк, а за качество!!!" - "Но мне не платят..." - "Выполняй!" В принципе, если мой рукожопный код нормально работал, то за отсутствие оптимизации не наказывали и давали следующее задание. Премии и зарплаты за провал оптимизации меня тоже не лишали, - ведь нельзя же лишить зарплаты, если у тебя её нет. Так что тут я, даже можно так сказать - обманула начальство! Во какая хитрожопая :) Кстати, можете использовать это как лайфхак. (рис.) - Работай бесплатно - и не придётся жить от зарплаты до зарплаты И вот, таким вот образом, я проработала у них стажёром 10 лет. Эх, пролетели как один день. Всё это время денег на еду и квартиру не было, поэтому приходилось ночевать в офисе и незаметно подъедать забытое в холодильнике коллегами. К счастью, начальство попалось очень доброе и никто из офиса на ночь не выгонял, а после окончания стажировки даже обещали начать платить зарплату! Поэтому я продолжила у них работать. Наконец, наступил тот день, когда меня направили на экзамен для повышения квалификации. Он состоял из 3-х этапов и задания уже были посложнее и запутаннее. Но я справилась, ура! Меня повысили! Но не зарплату... Хотя шеф клятвенно пообещал, что если я хорошо буду справляться, то скоро мне выпишут премию. Я думаю, он не стал бы обманывать своих сотрудников, ведь тогда на него никто бы не работал. Так что я осталась в этой компании. Всё равно больше некуда идти. А вдруг там будет хуже? А здесь вроде такой хороший, дружный коллектив и порядочное начальство. (scr.5) Ответвление слева - ветка "экзаменов" из 3-х этапов С новым усердием я бросилась на решение новых задач. Первые две были очень даже лёгкие, почти как в первые 10 лет моей стажировки, и я справлялась с ними очень быстро, поэтому всегда было время отдохнуть и посмотреть фильмы на работе. Видимо, начальство это заметило... Так вот вместо того, чтобы похвалить меня, что я так быстро и хорошо справляюсь, они решили, что раз у меня слишком много свободного времени, то можно меня побольше нагрузить и поручить самые сложные задачи (от которых отказались все другие сотрудники). И вот мне дали написать программу настолько сложную, что я пару недель только пыталась разобраться в ТЗ. Если интересно поломать голову, вот условие одной из задач: (scr.6) Первая усложнённая задача На текущий момент я уже научилась работать с такими операторами: inbox - взять кубик слева [ввод] outbox - отнести кубик на траспортер направо [вывод] copyto - скопировать значение с кубика в промежуточную ячейку copyfrom - взять значение из промежуточной ячейки add - сложить sub - вычесть jump - перейти к выполнению строки N [повторить] jump if zero - перейти к, только если в руках ноль jump if negative - перейти к, только если в руках отрицательное Я вертела их и так и эдак, складывала, вычитала, минусовала, проверяла на ноль... Но ничего не получала (по шее не считается). В итоге, спустя пару (прим.: реальных) дней, я придумала как это всё можно сделать, чтобы получался верный вывод для любых поступающих переменных. Всё чётко по ТЗ. Но моя программа получилась огромной... А по доп.задаче на оптимизацию надо было уложиться всего в 12 команд!!! У меня же было аж больше 20... Как??? Как сделать лучше? И тут я впервые сдалась. Пока начальник отвернулся, зашла на Stackoverflow (прим.: подсмотрела прохождение). Там мне довольно быстро подсказали как все "сделать красиво" и я успешно сдала работу (СПОЙЛЕР): (scr.7) Решение первой усложнённой задачи Начальство очень обрадовалось тому, что я справилась и с еще большим рвением стали скидывать на меня проекты, за которые больше никто другой не брался. Вот тут то я уже и начала сомневаться... а может, IT - это не моё? А может, всё таки, нельзя вот так вот с улицы просто "влететь в it", ничему ранее не учившись... А что, если я не смогу? Если не справлюсь? Что, если все предыдущие несколько лет успешной работы я просто притворялась что что-то знаю и делала вид, что разбираюсь? Может до этого мне просто везло? Может я просто самозванка? По ТЗ мне нужно было выводить от некоего числа все промежуточные до нуля. При этом, числа могли быть не только положительными, но и отрицательными. И надо как то это програмно распознать, чтобы задать исходя из этого команду на вычитание или сложение по единице до нуля. Но КАК??? Всё показалось таким запутанным... (scr.8) Вторая усложнённая задача * * * А если серьёзно: Я пока что застряла на "Второй усложнённой задаче". Думаю, как же правильно написать эту программу... Но уже решила написать на игру обзор, так как от неё сильно в восторге. Я вообще очень обожаю головоломки и загадки, где надо реально думать и решение действительно есть, то есть оно не надуманное или притянутое за уши. В Human Resource Machine - всё ясно, чётко и подчиняется его величеству Логике. Не могу это объяснить, но эта игра чем-то напоминает мне шахматы. Может просто мозг использует те-же процессы или что-то в этом роде. Я не спец и с трудом могу объяснить, но чувствую от этой игры такой же кайф, как при игре именно в шахматы, когда продумываешь свои ходы на несколько шагов вперёд и так же ищешь лазейки, продумывая возможное наступление противника. Однако, я совершенный нуб в программировании. Поэтому, возможно, кажущиеся мне сложными задачи, для опытных людей - просто семечки. Меня же, как человека впервые пробующего такой "геймплей", Human Resource Machine сильно заинтересовала. Мне так же очень нравится в ней то, что решение задач не привязано к сидению у компа. Операторы (пока что) не сложные и их не много, так что запомнив ТЗ, можно просто думать над "написанием кода" в дороге (в очереди, в пробке и т.д.) прикидывая решение в голове или чирикая в блокноте. Очень рекомендую попробовать Human Resource Machine таким же любителям головоломок. Но настоящим программистам игра скорее всего не зайдёт.
Так говорит Господь: остановитесь на путях ваших и рассмотрите, и расспросите о путях древних, где путь добрый, и идите по нему, и найдете покой душам вашим. Сестра, ты делаешь большое дело в становлении Нового Эдема, что не могло пройти мимо нас, Фонда Поддержки Сладких Булочек. Господь видит всё, а мы приносим дары его достойнейшим. Спасибо тебе за труд твой, он не будет забыт. Вместе - мы едины.
Ваша зарплата.
Так, я непонел, а здесь есть созвоны, внезапные изменения тз и тт и взаимоисключающие параграфы в них? А то чего-то не хватает.