Всем привет! Я новичок на Хабре в части публикаций, поэтому прошу сразу не пинать.
Хочу начать со знакомства и сперва поделиться своим опытом вхождения в 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
-
Спроектировать схему БД.
Модель данных реляционная.
Сущности:
-
Номенклатура (наименование, кол-во, цена);
-
Каталог номенклатуры/Дерево категорий;
-
Клиенты (наименование, адрес);
-
Заказы покупателей. Необходимо предусмотреть возможность делать заказ из разного набора товаров.
Необходимо хранить данные о категориях товара, при этом сами категории могут иметь неограниченный уровень вложенности
Пример дерева категорий:
Бытовая техника
Стиральные машины
Холодильники
однокамерные
двухкамерные
Телевизоры
…
Компьютеры
Ноутбуки
17“
19“
…
Моноблоки
…
Схема данных категорий номенклатуры должна безболезненно позволять добавлять категории любого уровня вложенности. На этапе проектирования максимальный уровень вложенности неизвестен.
Необходимо продумать схему БД, бизнес логику описывать не требуется.
-
Написать следующие SQL запросы:
-
Получение информации о сумме товаров заказанных под каждого клиента (Наименование клиента, сумма);
-
Найти количество дочерних элементов первого уровня вложенности для категорий номенклатуры.
Пример:
|
Бытовая техника |
|
|
3 |
|
|
Стиральные машины |
|
0 |
|
|
Холодильники |
|
2 |
|
|
|
однокамерные |
0 |
|
|
|
двухкамерные |
0 |
|
|
Телевизоры |
|
0 |
|
Компьютеры |
|
|
2 |
|
|
Ноутбуки |
|
2 |
|
|
|
17“ |
0 |
|
|
|
19“ |
0 |
|
|
Моноблоки |
|
0 |
Результатом выполнения задания должна быть даталогическая схема данных и SQL запросы.
Само задание проблем не вызвало, а SQL-запросы я даже сделал в двух вариантах: попроще и с рекурсией, что очень заинтересовало потенциального работодателя. Однако, при устном собеседовании одним вопросом «Можете ли Вы поднять простой веб-сервер на aiohttp?» меня поставили в тупик и предложение сорвалось.
Другое тестовое меня заставило захардкодить.
Hidden text
Написать небольшой сервис на языке Python, имитирующий работу банка со счетами клиентов.
Требования к сервису:
-
работа с сервисом должна осуществляться через Interactive CLI
-
состояние счетов хранится только в рамках одной сессии
-
у клиента может быть только один счет
-
валюта у всех счетов одинаковая — USD
-
поддерживаемые операции:
-
deposit — операция пополнения счета на сумму, аргументы: client, amount, description
-
withdraw — операция снятия со счета, аргументы: client, amount, description
-
show_bank_statement — вывод на экран выписки со счета за период, аргументы: client, since, till

Пример использования сервиса -
Времени на выполнение было дано буквально вечер. Решение мне не понравилось самому и, ожидаемо, потенциальному работодателю. Обратной связи не было.
P.s.:
Сейчас я работаю в должности старшего программиста в одном государственном учреждении и занимаюсь написанием API микросервисов и останавливаться на достигнутом не собираюсь. Жалею только об одном — что так долго решался на смену деятельности.
– Итак! Что же нужно, чтобы войти в IT?
– Само желание туда войти, подкрепленное желанием трудиться, и много НЕжелания оставаться там, где Вы сейчас есть, а еще лучше — желание бежать оттуда без оглядки!
Если Вы, как я, страдаете синдромом самозванца, то посмотрите на людей в ближайшем окружении или чуть дальше. Некоторые из них с такой уверенностью рассуждают на темы, в которых они, мягко сказать, далеко не специалисты, что аж то ли зависть, то ли злость берёт. А если это вызывает какие-то чувства, с ними надо работать и двигаться только вперед. В остальном Вселенная поможет! 🙂 Но это уже совсем другая история…
Всем спасибо, кто дочитал до конца!
ссылка на оригинал статьи https://habr.com/ru/post/697310/

Добавить комментарий