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

Хочу начать со знакомства и сперва поделиться своим опытом вхождения в 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?

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

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

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

Комментарии (8)


  1. Alexrook
    04.11.2022 16:23

    Сейчас я работаю в должности старшего программиста в одном государственном учреждении

    Боюсь спросить, чего там по зарплате. Когда я видел вакансии от госучреждений (примерно два года назад), у меня невольно появлялась улыбка на лице. Программисту с минимум тремя годами опыта обычно предлагалось 40 т.р. И это Питер! Еще тогда не понимал, кого и где они на такие деньги собираются найти. Ладно бы без опыта искали. Ради опыта можно и поработать какое-то время. Так им важно, чтобы это был готовый специалист. Встречались, правда, и более высокие ставки, например, 60 т.р. для фулл-стек разработчика одного из гос. порталов, тоже обязательно с опытом от 2х лет. Выше зарплат от гос. сруктур не встречал.


    1. v_suntsov Автор
      06.11.2022 12:36

      Что удивительно, после 15 лет в МВД я сразу же получил зарплату на 25 тыс. выше. Конечная цифра значительно выше приведённых Вами. :)


  1. Kate1605
    06.11.2022 12:37

    Спасибо большое за статью. Внушает оптимизм)


  1. isitnull
    06.11.2022 12:37

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


    1. v_suntsov Автор
      06.11.2022 12:38

      Спасибо большое! :)


  1. yarooo
    06.11.2022 12:38
    +1

    Сейчас я работаю в должности старшего программиста в одном государственном учреждении

    по-моему, это все еще тернии


    1. v_suntsov Автор
      06.11.2022 12:40

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


  1. Dzenbuddist
    06.11.2022 12:40
    +1

    Ахахахахаха!

    Привет, коллега!

    Примерно в 2001 или 2002 опубликовал свой первый хомяк на Народ.ру, потом в универе немного подрабатывал, фрилансил.

    Потом 12 лет в белорусском мвд, в итоге полковничья должность в ца, служебная квартира, "жалких" 8 лет до права на пенсию... Раз в пол года возвращался к вебу, читал, что там нового вместо noteopad++ изобрели, и дальше служил.

    В 2020 понял, что нам сильно не по пути, свалил. Год стажерства и овсянки на воде, переживаний, страха... Теперь год в большой компании. Пока ничего не знаю, ничего не понимаю, сложно...

    Зато интересно, спокойно и хорошо.

    Все, что могу рекомендовать тс, - валить в коммерческую разработку из государственного болота. У него сейчас перспектив нет. А если остались красивые какие-то принципы служить обществу - подметай у подъезда по субботам. :)))