Розробники згадали свої перші робочі завдання: врятувати великий масив даних, пройти 450 тест-кейсів і нарізати папірці

Багато хто з українських розробників пам’ятає своє перше завдання на першій роботі в IT, ще й дуже яскраво. Для когось (неочікувано!) першим завданням стало нарізання папірців, хтось взагалі вирішив стати айтішником, зацікавившись завданням 1994 року — налаштувати електронну пошту, а ще когось призначили відповідальним за порятунок великих масивів даних. Журналістка DOU обрала найцікавіші історії.

Перше завдання — незапланований порятунок купи даних

Левко Іванчук, Senior Research Engineer у Honda Research Institute, Japan

У мене в університеті була чудова програма стажування, завдяки якій бакалаври могли провести три навчальні семестри в трьох різних компаніях. Саме так 2013 року я потрапив у канадську компанію Iders, яка розробляла та виготовляла електроніку.

Наприклад, «чорні» коробки для потягів, які комунікували з компанією-оператором через рейки, а не через мобільний зв’язок. Всі процеси на виробництві — від виготовлення чи замовлень компонентів до їхньої збірки на лінії, тестування і відправлення замовнику — контролювалися через власну IMS-систему. В команду, яка розробляла та підтримувала цю систему, я і потрапив.

Це була локальна SaaS, яка виглядала як власна операційна система завдяки Sencha Ext JS. Back-end був написаний на Django. На початку стажування в мене був нульовий бекграунд роботи з фреймворками та мовами, які там використовували. Єдине, що я більш-менш знав із курсів з баз даних, — це SQL, що дуже допомагало.

Першу задачу я отримав після двотижневого ознайомлення з системою, під час якого вивчав Django та PostgreSQL. Річ у тім, що до певних записів у базі даних можна було прикріпити будь-які файли. Наприклад, до запису про надходження партії мікрочипів могли кріпитися тисячі файлів з результатами тестів кожного чипа. Або ж файли тестування продукту перед надходженням замовнику. Таких записів з файлами були тисячі, файлів — ще більше, і їх рідко коли видаляли.

Проблема полягала в тому, що всі ці файли, незалежно від типу запису, дати чи ще чогось, зберігалися в єдину теку на сервері. Так, це не хибодрук. У базі даних зберігався повний шлях до файлу на сервері, але всі файли зберігались в одній теці. Моїм завданням було виправити цю ситуацію — як з майбутніми файлами, так і з уже завантаженими.

На момент створення цієї задачі команда ще не знала, що у файловій системі Ext4 є теоретичний ліміт кількості файлів для зберігання в одній теці. Першого ж дня я визначив, що ми використали близько 90% айнодів. Після цього задача отримала максимальний пріоритет: у будь-який момент могла надійти нова партія компонентів, і зовсім скоро наші користувачі не змогли б завантажувати нові файли. Тоді я відчув величезну відповідальність на своїх плечах.

Завантаживши на свою локальну копію 2% від усіх файлів, почав писати довгий скрипт, який виправляв цю ситуацію. В результаті багато вивчив про файлові системи, операції з файлами через Python та паралелізацію. Також класно розібрався з Django і його обмеженнями: часто доводилось писати більш оптимізовані SQL-запити, ніж генерував фреймворк. Команда дуже цікавилась прогресом, періодично додавали вимоги: потрібно було визначити, які файли є на диску, але не мають запису в БД (чи навпаки), як краще структурувати файли на сервері тощо. Зрештою був фінальний code review та вибір дати міграції. Пам’ятаю, як мене попросили приїхати у вихідні, коли цю міграцію запускали. За це отримав додаткову оплату, але жодних проблем не виникло.

Після цього я простажувався у компанії ще три місяці, а згодом повернувся до навчання в університеті. Наступного літа отримав від компанії пропозицію повернутись вже як штатний співробітник, втім довелося відмовитись: у моїх планах вже було стажування в Японії. Та все ж під час розмови жартівливо запитав у свого колишнього РМ’а, чи все нормально з файлами, на що він відповів: «Завдяки тобі ми уникли великої втрати даних, і тепер здається, ніби у нас ніколи й не було цієї проблеми».

Перше завдання — нарізати купу папірців

Ксенія Фрідман, QA in SQUAD

Виконуючи своє перше завдання, я мала нарізати папірці різного розміру, щоб протестувати кастомний друк на принтері. Мені дали пачку паперу, ножиці, озвучили вимоги до розмірів і пішли на обід. От лишень скільки треба зразків, не сказали. І доки колеги не повернулися, я різала й різала. Перший коментар, який я почула щодо усього цього дійства: «Горщику, не вари».

У результаті я нарізала паперу для усієї команди на кілька місяців наперед, тож можна сміливо сказати, що я завдання виконала. Зате це навчило мене ставити більше запитань і уточнювати очікуваний результат і критерії оцінювання для тих задач, де це неочевидно.

Йшов додому з відчуттям, що вивчив нову мову програмування

Роман Повзик, Data Analyst у Bini Bambini

Одне з моїх перших пам’ятних робочих завдань — налаштувати зв’язок між таблицею у Google Spreadsheet, сховищем даних Google BigQuery та дашбордом у Power BI через Direct Query. Тобто будь-яка зміна у Google-таблиці мала миттю відобразитися на дашбордах без втручання аналітика.

Це було своєрідне дослідження, оскільки тоді команда не знала, чи можливо це зробити. Тимлід радив спробувати використати Apps Script — мову на основі JavaScript.

На той час я уявлення не мав, що у Google-таблицях можна програмувати. Та й не володів мовами, крім Python, тому намагався шукати обхідних шляхів, щоб не вчити JavaScript.

Зрештою, зрозумів, що по-іншому виконати завдання не вийде, і таки почав копати у цьому напрямі. На щастя, нідерландський розробник Wouter Nieuwerth уже пройшов цей шлях до мене і написав код, в який просто потрібно вставити необхідні дані: адресу Google-таблиці, проєкт, датасет і таблицю у BigQuery тощо.

Я не вірив своєму щастю. Кілька разів перевірив роботу і зрозумів, що із завданням таки впорався. Пізніше задокументував цей процес, аби його могли відтворювати у команді.

Того дня я йшов додому з відчуттям, ніби справді вивчив нову мову програмування. І виконав мегаскладне (як здавалося тоді) завдання!

Настроил электронную почту в 1990-х — решил стать айтишником

Андрей Шаповалов, Expert on interoperability

Это был обычный день 1994 года, когда я вот уже несколько месяцев работал налоговым инспектором в одном маленьком районе. Вдруг меня вызывает начальник и говорит: «Ты самый молодой у нас. Вон там в углу компьютер в коробках. Настрой электронную почту».

Варианта отвертеться не было, а от задания я был в шоке. Никакой нужной мне информации не было в радиусе 100 км. Google появился намного позже. После телефонного разговора с коллегами из областного центра стало понятно, что мне нужно ехать к ним за комплектом ПО. Вернулся я обладателем 5,25-дюймовой дискеты с Т-Mail и пары листов инструкции по настройке и запуску.

Корпоративная электронная почта у нас тогда строилась по стандарту FidoNet и фактически являлась простой переброской файлов. Но самое интересное было впереди. У нас был внутренний модем на 2400bps, и он никак не хотел соединять по межгороду. Тогда в поисках знающих людей я пошел в «Укртелеком» и не промахнулся. Знакомый моих родителей рассказал мне об азах связи и передачи данных в телефонных сетях, настройках модема, АТ-командах и помог заменить мою «последнюю милю».

После танцев с бубном и АТ-командами мы впервые подключили модем. Правда, рано я радовался: передать или получить хоть какой-то файл не удалось. Попытки изменить ситуацию результата не дали. Тогда по совету коллег из областной налоговой инспекции я пошел к начальнику с просьбой купить другой внешний модем, менее прихотливый к междугородней связи — U. S. Robotics 14 400 (интересно, он еще жив?).

Пара бессонных ночей, и вот я отправил первое электронное письмо с кратким отчетом: «Ваше распоряжение выполнено, мы подключились к электронной почте».

Сложно ли это было? На тот момент для меня — на грани возможного. Абсолютно все было в новинку, и при этом никто не отменял мою основную работу. Но в результате такого вот задания получился еще один айтишник ;)

Перше завдання стало найдовшим у кар’єрі

Олег Онуфрик, Software Engineer у SoftServe

Коли я отримав одне з моїх перших завдань, то вже два місяці працював інтерном у команді, яка займалася обробкою платежів. На проєкті було понад 1000 інтеграційних тестів. Тим часом наші білди на Jenkins були дуже повільними — один тривав понад годину.

Мені дали завдання: запускати тести паралельно під час білду. При цьому важливо було пришвидшити час білду, бо можливість чекати так довго випадає не завжди. Оскільки я джавіст, то для реалізації цього завдання користувався Maven-плагіном. Спочатку поділив тести за так званими suits відповідно до контексту. Далі почалось найцікавіше — конфігурація плагіну. Все б нічого, але щоб перевірити зміни, доводилось чекати на завершення білду. Локально тести відпрацьовували приблизно за шість годин через VPN та специфіку проєкту.

Це найдовше завдання в моїй кар’єрі: я виконував його близько двох місяців, доки не змінив проєкт. У результаті майже вдалось досягнути бажаного. Після мого переходу техлід доробив завдання, і це допомогло суттєво пришвидшити білди.

Перше завдання зайняло 30 хвилин на двох

Роман Павлюк, член ради директорів ELEKS, CTO Luftronix

Першим моїм робочим завданням стало написання редактора INI-файлів на одній з перших бета-версій першого Delphi. Це було на початку 1995-го. На виконання завдання у двох людей — у мене та напарника — пішло приблизно пів години.

Довелося мучитися із каруселлю відеослайдів

Хаітов Ельдар, інженер програмного забезпечення

Моє перше завдання стосувалося каруселі слайдів. Я мав зробити слайди з відео. Причому було два теги відео, і в них треба було динамічно змінювати джерело і підставляти у слайд залежно від того, який з них активний, а на який користувач перемикається. І зробити це так, аби не було блимання.

Я тоді дуже намучився, але впорався. Зі складнощів — сервіс не міг віддавати більше як шість відео, а вже з двох починалися певні затримки, які користувач не повинен був бачити. Хоча через те, що напрямок прокручування слайдів користувача був невідомим, без швів таки не обійшлося.

Первое задание — пройти 450 тест-кейсов

Андрей Постников, QA Engineer at Testmatick

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

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

В общем и целом, путь мой к сфере IT был тернист и долог, но после того, как я там оказался, легче не стало... По крайней мере поначалу. Со временем всё, конечно, устаканилось и обрело стабильный характер. Словом, дерзайте!


А ви пам’ятаєте ваше перше завдання? Діліться своїми історіями в коментарях!

Маєте важливу новину про українське ІТ? Розкажіть спільноті. Це анонімно.І підписуйтеся на Telegram-канал редакції DOU

👍НравитсяПонравилось3
В избранноеВ избранном1
Подписаться на автора
LinkedIn



Підписуйтесь: Soundcloud | Google Podcast | YouTube


15 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Хм, если уж тут вспоминать не только задания по программированию...
первое было — написать план генерации ОС ЕС со списком оборудования, объёмом памяти и пр. (всё это задавалось статически, ОС не могла определять эти параметры на ходу). 1985-й.
План создавался в машинно-читаемом формате на перфокартах.
Я так понимаю, сейчас такие вещи творятся в embedded всяком :) но на современном уровне.

Написать UI к готовому антивирусному движку. Потом этот же UI использовал 2.5 года для работы. Delphi 7, 2002 год

...1998 год, надо контролировать и визуализировать спектральные характеристики модулей ADC.
...2002 год, надо взломать и отреверсить фаствеловский модуль на FPGA с целью внедрения своих прошивок, не хотим платить по 100 бачей каждый раз.

Найперші завдання, які запам’ятались, були дуже різноматінті — це був кінець 80-х і тоді важко було «спеціалізуватись» на чомусь одному, тож завдання запам’ятались якісь такі:

— програма математичної оптимізації складу кормів та добрива (TurboBasic / DOS) (із нею потім наші викладачі захистили не одну дисертацію).

— антивірус для вірусу «DIR» — тоді у нас навіть FIDOnet не було і антивіруси розповсюджувались здебільшого із журналами та «самовивозом із Москви/СПб», тож, довелось рятувати місто раніше, ніж приїхав свіжий антивірус Лозинського, який вже знав про «DIR» :) (Turbo C / DOS)

— схема адаптера та резидентний драйвер для оригінального джойстика від «Пошук-1». Прикол був в тому, що сам джойстик був «контактний» і не сумісний із IBM-івським з резисторами. Тож розробив адаптер, який «конвертував» джойстик від «Пошуку» і представляв його системі як звичайний IBM-сумісний. Тоді була велика проблема, що ігри для «Пошуку» мали бути спеціальні, для нього адаптовані. З нашим адаптером користувачі могли грати в будь-які ігри, що підтримували IBM-сумісний джойстик. Ну а драйвер вже просто баловство було — він емулював джойстик як мишку :)
(OrCAD + Quick C / DOS).

Цікаві часи були...

Я помню прихожу первый рабочий день, мне говорят: вот твое рабочее место. И показывают на гору коробок. Пришлось собирать стул, кресло и компьютер. В итоге проработал там 7 лет.

А я вообще с админов начинал (сейчас это называется devops), винды 95/98, нетварь 3 (netware) в качестве сервера и тонкий коаксиал, который потом перетянул на витую.

то, о чем вы написали, никакого отношения к девопсам не имеет

Розробити схемотехніку і софт для тестування ЖК індикаторів для авіації на 8051 мікроконтроллері. Досить цікаво.

Першим серйозним завданням, результат якого справді впливав на роботу колег, була згадана вище автоматизація на Google Apps Script — робити різноманітні звіти з Google Spreadsheet. Зробив, досі користуються, іноді вношу зміни за потреби :)

А в мене першим завданням було встановити дебіан на свій комп (перша робота була віддалена), а потім зібрати з вихідних кодів апач, mysql, postgresql, php. І це з галімим edge. На той момент я про лінукс взагалі не чув. Тож, компілювання було ще тією мукою, яке зайняло в мене близько 2-ох тижнів.

Розібратися з цією приблудою і організувати прийом сповіщень з неї в пультову програму ua.bizorg.su/...​sii-r/p4154015-usp-pakt-2
Delphi 7, січень 2005 року.

90-й рік. PC XT. В Norton Commander Editor вбивав бескінечну купу таблиць для моделювання впливу радіації на радянські мікросхеми...
Терпіння це те, що вже 30+ років допомагає любити цей дивний світ ІТ)))

Пам’ятаю своє перше завдання (друге було таке саме). Треба було відв’язати delphi-контрол (діалогове вікно) від VCL і зробити його «все в одному файлі» для легкості подальшого допилювання. Робив його ще на попередньому місці роботи. Друге завдання було таке саме, тільки контролом був прогресс-бар VCL-овський.

Я — програміст. Самий перший досвід: додавати айтеми на флеші (AS3) і вирівнювати анімації для різних моделей. Завдання на тиждень дали — зробив сам за 8 годин і дивився стріми, бо нове завдання ніхто не давав, але я вибиав нове)).
Перше реально добре завдання, яке навчило, було лише через пару років. ПХП, самопис:
Додати можливість автоматично генерувати звітні періоди. Періоди мають різну довжину + самописний демон-менеджер потоків, який треба використовувати.
Перша реалізація 700 рядків+рекурсія (яжпрограміст!). Фінальна версія 300 рядків і зрозумілий процедурний код.

Не знаю, чи хакання якогось економічного софта під ДОС в фізматліцеї можна назвати робочим завданням... але це було першим замовленням — тобто тим, що ми робили не для себе, а для когось.

Подписаться на комментарии