Как стать автором
Обновить

Вхождение в IT: через тернии к звездам

Время на прочтение6 мин
Количество просмотров8.6K

Всем привет! Я новичок на Хабре в части публикаций, поэтому прошу сразу не пинать.

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

Предыстория

15 своих «лучших» лет я отдал МВД России. Служил во благо Родине, но стало так тошно, что уже невмоготу. Интерес к программированию был всегда и в 2014-ом (спасибо моему коллеге) я начал свое непосредственное погружение в него. Первым проектом была ведомственная региональная информационная система.

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

Писалось сие детище (подумать страшно) в Notepad++ (что существуют IDE мне никто не подсказал) на PHP. По мере прокачки своих скиллов, прикрутил туда JavaScript c Ajax-ом, на CSS оформил кнопочки, схлопывания, аккордеоны. Из готового использовал только JQuery-плагин Datepicker. Старался писать все сам, пускай велосипеды и хардкор, но зато это опыт реализации и решения уймы сопутствующих задач. Да и в целом приятно видеть результат своих трудов. В общем, получил опыт в фулстеке. Во всем ведомстве не было конкурентов по формату, функциональности и наполнению.

Потом я перевелся в Центральный аппарат и таки забыл о программировании. Начались серые будни. Никакого творчества — только бумаги. Редкие задачи по написанию какого-то нестандартного функционала формочек для сбора статистики на Lua в ИСУБД «CronosPro» были как глоток чистого горного воздуха в центре Пекина.

Сфера дополнительного IT-образования тогда выходила на новый уровень и дала толчок развитию его онлайн форме. В одном из известных онлайн-университетов я и приобрел курс «Python-разработчик с нуля». Первую часть курса преподавал Вадим Шандринов  @suguby пожалуй, лучший преподаватель на курсе.

Вадим, если Вы меня читаете, спасибо за полученные знания!

В одно время, правда, забросил — пропала мотивация после выплаты всей стоимости курса. К слову сказать, пройдя его полностью, диплом я так и не осилил. Взяв себя в руки (примерно через год), я расширил его до профессии и получил бонусом курсы по Django, верстке, Git-у, SQL. Здесь Django стал моей целью. Я взахлеб (ну, почти) проходил блоки и добрался до кульминации. Дипломным проектом стала традиционно разработка интернет-магазина. Изначальный дизайн и верстка страничек были любезно предоставлены кураторами, однако, всю динамику пришлось прикручивать самим. Большую часть задач я с удовольствием взял на себя. Спроектировал структуру БД и оформил ее в графическом виде в DB Designer. Форкнул js-библиотеку для работы с Django-формсетами и допилил ее для работы с Datepicker и корректной отрисовкой ошибок по каждой из форм. Слегка погрузился в Celery для организации фонового импорта данных. В итоге, командой из трех человек (изначально нас было пятеро) со второго раза мы таки защитились.

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

В то же время на сопровождении имел АПК, использующий для работы python-скрипты. Это помогло мне набраться опыта парсинга и обработки файлов и дампов различных БД и загрузки их в PostgreSQL. С напарником для этого написали универсальный загрузчик. Почти закончил конвертор данных из CronosPro, но оставил его вместе с МВД на произвол судьбы.

В программу обучения в онлайн-университете входило составление резюме. В новогодние праздники нового 2022 года я слегка актуализировал его и разместил на известной платформе по поиску работы, а уже 14 февраля 2022 года выразил свою любовь к Системе рапортом на увольнение, сказав ей: «Давай, до свидания! ©».

Собственно вхождение в IT

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

На собеседованиях задавали типичные для джунов вопросы:

  • что такое наследование, инкапсуляция и полиморфизм;

  • типы данных в python;

  • декораторы;

  • SQL-запросы (выборки, группировки, объединения, подзапросы и т.п.)

  • транзакции.

Дальше приведу примеры некоторых тестовых заданий:

Hidden text
  1. Спроектировать схему БД.

Модель данных реляционная.

Сущности:

  • Номенклатура (наименование, кол-во, цена);

  • Каталог номенклатуры/Дерево категорий;

  • Клиенты (наименование, адрес);

  • Заказы покупателей. Необходимо предусмотреть возможность делать заказ из разного набора товаров.

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

Пример дерева категорий:

Бытовая техника

Стиральные машины

Холодильники

однокамерные

двухкамерные

Телевизоры

Компьютеры

Ноутбуки

17“

19“

...

Моноблоки

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

Необходимо продумать схему БД, бизнес логику описывать не требуется.

  1. Написать следующие SQL запросы:

  • Получение информации о сумме товаров заказанных под каждого клиента (Наименование клиента, сумма);

  • Найти количество дочерних элементов первого уровня вложенности для категорий номенклатуры.

Пример:

Бытовая техника

3

Стиральные машины

0

Холодильники

2

однокамерные

0

двухкамерные

0

Телевизоры

0

Компьютеры

2

Ноутбуки

2

17“

0

19“

0

Моноблоки

0

Результатом выполнения задания должна быть даталогическая схема данных и SQL запросы.

Само задание проблем не вызвало, а SQL-запросы я даже сделал в двух вариантах: попроще и с рекурсией, что очень заинтересовало потенциального работодателя. Однако, при устном собеседовании одним вопросом «Можете ли Вы поднять простой веб-сервер на aiohttp?» меня поставили в тупик и предложение сорвалось.

Другое тестовое меня заставило захардкодить.

Hidden text

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

Требования к сервису:

  1. работа с сервисом должна осуществляться через Interactive CLI

  2. состояние счетов хранится только в рамках одной сессии

  3. у клиента может быть только один счет

  4. валюта у всех счетов одинаковая - USD

  5. поддерживаемые операции:

    • deposit - операция пополнения счета на сумму, аргументы: client, amount, description

    • withdraw - операция снятия со счета, аргументы: client, amount, description

    • show_bank_statement - вывод на экран выписки со счета за период, аргументы: client, since, till

    Пример использования сервиса
    Пример использования сервиса

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

P.s.:

Сейчас я работаю в должности старшего программиста в одном государственном учреждении и занимаюсь написанием API микросервисов и останавливаться на достигнутом не собираюсь. Жалею только об одном — что так долго решался на смену деятельности.

– Итак! Что же нужно, чтобы войти в IT?

– Само желание туда войти, подкрепленное желанием трудиться, и много НЕжелания оставаться там, где Вы сейчас есть, а еще лучше — желание бежать оттуда без оглядки!

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

Всем спасибо, кто дочитал до конца!

Теги:
Хабы:
+10
Комментарии14

Публикации