О карьере в IT от программиста средней паршивости
Практически каждую неделю на Пикабу появляются посты с вопросами как "войтивайти". В комментариях обычно (а иногда и целыми постами) настоящие программисты делятся требованиями о том что нужно знать, уметь чтоб войти в этот элитный клуб. Обычно основными требованиями является любовь к программированию, а не деньгам, трата вечеров на изучение новых технологий, знание всех старых технологий, обладание образованием в сфере программирования, знание иностранных языков. И т.п.
Благодаря этим требованиям я уже давно понял, что я не настоящий программист и скорее всего им не стану, поэтому решил поделиться тем как стать программистом средней паршивости на своем опыте
Поиск работы
Итак 7 или 8 лет назад я понял, что хочу много денег, но заработать их по своей профессии инженер электрик мне не светит. Я стал думать что делать дальше. С одной стороны в школе я изучал программирование на Паскале, но не сильно его любил, с другой думал пойти в менеджеры по продажам в какую нибудь крупную электротехническую компанию. Но учитывая, что продажник из меня еще хуже чем программист со школьными знаниями Паскаля то решил искать вакансии в it. План был такой - нужно было найти место где зарплаты настолько низкие что конкуренция будет очень низкой, но при этом задачи там будут нормального уровня. В итоге посмотрев отрасли я понял что программирование контроллеров в самый раз. После некоторого поиска я нашел работу на 35 тысяч в месяц под обучение, хотя инженером получал 70.
Первая работа
Сразу скажу, что с работой мне жутко повезло. В команде из 5 человек я нашел ментора, который по сути учил меня всему 3-4 года и должен сказать, что до сих пор я не встречал программиста талантливее. В итоге за это время я вырос из джуна до средней паршивости мидла. И до сих пор считаю это большим достижением так как не обладаю никаким талантом. В итоге на первом году я писал простейшие алгоритмы на с++, к концу 3 года делал проект самостоятельно. Со второго года я начал ходить на собеседования на мидла в компании крупнее, но по большей части надо мной смеялись и предлагали роли джуна. На третьем году я смог попасть в Нокию на мидла. за 3 года зарплата выросла с 30 тысяч до 120-150 с переработками.
Вторая работа.
На четвертом году я начал искать работу за рубежом. Собеседования в некоторые крупные компании провалились, но две средние прислали офферы. Зарплата в Амстердаме стала 60 тысяч евро в год, что примерно равнялось 4000 евро в месяц чистыми. Это была базовая зарплата, бонусы зависели от прибыли компании. За первый год работы я получил бонус 2000 евро чистыми, за 3 и 4 года по 40 000 евро чистыми благодаря пандемии и волатильности на финансовых рынках. За 3 года здесь я смог вырасти из мидла в синьора. Синьором конечно я был хреновым и повышение было скорее всего политическим чтоб удержать меня в компании. Но не удержали.
Третья работа.
Я решил сменить компанию на что-то покрупнее. Попробовал несколько компаний по своей индустрии, но из 5 получил только один оффер хуже того что имел на текущем месте работы. Расстроился и решил подать заявку на вакансию в совсем другой области и другими технологиями. Купил курс по подготовке к собеседованиям и 2-3 недели готовился решая задачки по алгоритмам. Далее стал выбирать компании. Отсортировал зарплаты в Амстердаме по компаниям и выбрал две сверху которые знал - Амазон и Букинг. В итоге после 6 этапов собеседований я получил оффер из Амазона и отменил процесс в Букинге. Сейчас моя зарплата 8000 евро чистыми и все новые технологии я изучаю в рабочее время.
Резюме.
Я не люблю и никогда особо не любил программирование. Деньги единственное что меня держит в этой индустрии. Я никогда не тратил свои вечера на изучение новых технологий, у меня нет github и я не создаю игры в свободное от работы время. Но решение "войти в айти" было лучшим в моей жизни.
Да я не буду никогда зарабатывать столько же сколько зарабатывают настоящие программисты из комментариев на пикабу, но мне и не надо. После работы я занимаюсь только семьей и своими хобби. И я себя считаю довольно счастливым человеком
Конечно результат в жизни это всегда удача, и по сути мы кидаем кубик, но разница в том что вероятность повышается если вы кидаете кубик чаще. Нельзя сидеть на месте, нужно всегда искать новые проекты где можно научиться чему то новому и таким образом вы будете расти, даже если вы как и я не обладаете талантом, огромными знаниями и забываете о работе в 6 часов вечера.
Зачем идти в IT: о хакерстве, больших деньгах и кодинге. Мифы о профессии программиста
«Ты программист? Тогда подскажи, как взломать страницу в ...?»
Да-да, это самый популярный вопрос к программисту до сих пор, к сожалению, и не только...
Поэтому мы собрали очередную порцию самых популярных стереотипов и заблуждений о программировании, и задали их нашему гостю — fronted-разработчику и тимлиду Андрею Белову.
Вот тут его интервью о том, что учиться нужно каждый день, чтобы поспевать за миром:
https://vc.ru/u/1104736-proprofi/515627-zachem-ya-buduchi-ti...Таймкод:
01:18 - МИФ №1: Надо быть очень умным.
01:46 - МИФ №2: «Тыжпрограммист» всемогущ: и телефон починить, и сайт написать.
02:26 - МИФ №3: Кружка программиста всегда грязная.
03:17 - МИФ №4: Программист всегда ходит в одной футболке, джинсах и джемпере из собственных волос с оленем.
04:22 - МИФ №5: Если выучил один язык программирования, то выучить и другие уже легко.
05:11 - МИФ №6: По количеству открытых вкладок с stackoverflow.com можно узнать на сколько плохой день был у программиста.
05:48 - МИФ №7: У программистов отсутствует личная жизнь.
06:31 - МИФ №8: Я быстро смогу заработать много денег!
07:41 - МИФ №9: Ты программист? Тогда подскажи, как взломать страницу в Vk?
08:48 - МИФ №10: Все программисты пишут с «нуля».
09:29 - МИФ №11: Программисты ― это те самые «ботаники» и «очкарики» с первых парт
10:09 - МИФ №12: И разработчик, и сисадмин — все «компьютерщики».
12:10 - МИФ №13: Все программисты не от мира сего.
12:36 - МИФ №14: «Guys in sandals» — все программисты ходят по офисам в тапках.
13:05 - МИФ №15: Программист — самоуверенный мизантроп с завышенной самооценкой.
15:56 - МИФ №16: Стиль: борода и длинные волосы.
16:25 - МИФ №17: Работа фронтендера — сделать конфеткой всё то, что внутри (backend), а там чёрт ногу сломит.
17:31 - МИФ №18: Каждый может войти в IT.
С чего начать?
Добрый день всем Пикабушникам и Пикабушницам. Первый раз пишу пост, обычно я Анонимный читатель.
Читая Пикабу очень воодушевляет, что незнакомые люди, люди разных профессий и полов, помогают друг другу в тех или иных задачах, находят лекарства, подвозят друг друга да и вообще просто поднимают настроение своим позитивом и зарядом энергии.
У меня есть очень щекотящий мой разум вопрос, а может и не вопрос, а наставление, подойдет даже совет-рекомендация, но сначала немного расскажу о себе:
Работаю в продажах, работаю давно, мне уже почти 30 лет, есть семья. Доход выше среднего, все что нужно для жизни имеется. Жизнь идет размеренно спокойно. Но в последнее время начал понимать, что за последние 4-5 лет мой мозг, да и я сам, начали как то "тупеть" и я перестал развиваться, потерял интерес ко многим вещам, начал больше лениться. В результате каких-то там умозаключений захотел сменить сферу деятельности и решил попробовать себя в IT.
Вот собственно говоря и вопрос, а с чего начинать? Направлений куча и еще две кучи рядышком, как не ошибиться в выборе?
Хочется услышать ваше мнение, кто уже работает. Кто с чего начинал, как вообще пришли в эту сферу. И может быть от себя порекомендуете в какую "степь" топать. Скажу сразу, работа с графикой (фото видео монтаж) не интересны.
P.S Плюсов не нужно, нужен совет, мнение тех кто уже работает и развивается в этой сфере.
Всем спасибо за уделенное время. Если криво написано извиняйте, Чукча не писатель.
Блеск и нищета технологии Edition-based redefinition в Oracle Database Часть 1. Блеск
Сейчас бесшовные обновления – это одно из главных требований для многих систем, и системы, использующие базы данных Oracle, не являются исключением. В этой статье я расскажу о технологии Edition-based redefinition, которая создана для решения данной проблемы, а также о трудностях, с которыми мы столкнулись в процессе внедрения и использования этой технологии.
Данная статья может пригодиться тем, кто работает с высоконагруженными системами, использующими СУБД Oracle и хочет начать обновлять их, не отключая пользователей.
Начну с того, что мы используем Edition-based redefinition (далее EBR) в одной из банковских систем уже около двух лет и смогли заметить как достоинства, так и недостатки. Технология была внедрена в 2020 как средство процесса внесения изменений в схему данных, позволяющее изменять объекты в БД без вмешательства в работу текущих пользователей.
Целью внедрения EBR является ускорение выхода новых задач на прод, которое достигается тем, что, используя EBR, многие патчи можно устанавливать без Downtime, хотя раньше это было невозможно. Таким образом, мы можем делать установки на тестовые стенды и на прод чаще. Примером могут служить интеграционные пакеты базы данных, которые используются в большом количестве функционала системы. Если раньше установка таких пакетов требовала отключения всех пользователей и перекомпиляцию объектов, то, используя EBR, можно установить его без Downtime на «горячую» базу.
Что же такое EBR?
Edition-based redefinition – это технология баз данных Oracle, позволяющая использовать несколько версий объектов PL/SQL, представлений и синонимов в одной схеме, что позволяет выполнять обновления приложений базы данных без Downtime, при этом не затрагивая работу текущих пользователей.
Чтобы лучше понять как работает эта технология, обратимся к условному пакету CONTRACT, который агрегирует функции работы с договорами в какой-либо системе. В базе, где используется EBR, может одновременно хранится несколько различных пакетов CONTRACT, которые будут относиться к разным редакциям.
Редакция или Edition - это, по сути, метка версии, которую можно назначить всем редактируемым (Editionable) объектам в схеме. Начиная с версии 11.2 в Oracle можно заводить разные редакции (editions), каждую со своим набором хранимых объектов и возможностью переключаться между ними. Редакции зависят друг от друга, а именно находятся в отношениях родитель (предок)-потомок. Причём, каждая редакция может иметь только одного прямого потомка и одного прямого родителя. Все редакции являются потомками редакции «ORA$BASE», которая создается при включении EBR. На рис. 1. приведен пример редакций на базе. Как можно увидеть, изначально была редакция «ORA$BASE», от которой была создана редакция «RT20_1» в качестве потомка, а далее, уже от неё редакция «RT20_2» и т.д. То есть, последовательность редакций имеет линейную структуру. Одна из редакций является редакцией по умолчанию, т.е. это та редакция, к которой подключается пользователь, если он не указал редакцию специально.
Рис. 1. Editions
При создании новой редакции на основе старой, она наследует все определенные в родителе объекты. На практике, в целях оптимизации, Oracle копирует объекты в новую редакцию только при их изменении, данная стратегия носит название copy-on-change. Процесс копирования объекта в наследуемую редакцию называется актуализацией, по факту - это пересоздание данного объекта в дочерней редакции. Если объект актуализирован в текущей редакции, при его вызове будет загружена текущая версия. Если объект не актуализирован в текущей редакции, при его вызове будет загружена версия из последней редакции, где он актуализирован. Актуализировать объект можно скомпилировав его с определенными опциями: ALTER ... COMPILE REUSE SETTINGS.
Рассмотрим пример на рис.2. Пакет CONTRACT определен в редакциях ORA$BASE, RT20_1 и RT20_3, а в редакции RT20_2 используется пакет CONTRACT из ближайшей родительской редакции, т.е. из редакции RT20_1. Для того чтобы актуализировать пакет CONTRACT в редакции RT20_2 нужно выполнить в данной редакции команду ALTER CONTRACT COMPILE REUSE SETTINGS
Рис. 2. Пример использования пакета в разных редакциях
Не все объекты баз данных Oracle можно создавать в разных редакциях и версионировать. Некоторые объекты существуют в единственном экземпляре и используются для всех редакций одновременно, такие объекты называются noneditionable. Примером такого объекта являются таблицы, поэтому при модификации таблиц некоторые объекты в некоторых редакциях могут инвалидироваться. Для решения этой проблемы обычно используются Editionable views, подробнее я расскажу во второй части этой статьи. Какие же объекты являются Editionable? Это все объекты PL/SQL, а также Views и Synonym, см. рис. 3.
Рис. 3. Editionable объекты
Теперь рассмотрим пример установки патча с EBR. Представьте, что Петр, Инна и Иван работают в системе, использующей БД Oracle, в редакции T20_1_1, которая на данный момент является редакцией по умолчанию, а Семен и Полина на обеде, см. рис. 4. На рисунке CONTRACT, PERSON, CLIENT - примеры пакетов.
Рис. 4. Пример установки патча с EBR
Начинается установка патча T20.1.2, и создается новая редакция T20_1_2, см. рис. 5.
Рис. 5. Пример установки патча с EBR
В патче изменяется только один файл PERSON, для которого создается новая версия в редакции T20_1_2, а остальные объекты будут использоваться из родительской редакции, см. рис. 6
.
Рис. 6. Пример установки патча с EBR
После деплоя патча, редакция T20_1_2 устанавливается редакцией по умолчанию, и, когда Семен и Полина возвращаются с обеда, они подключаются уже к вновь созданной редакции, см. рис. 7.
Рис. 7. Пример установки патча с EBR
У Ивана завершается формирование отчета, и он подключается к редакции T20_1_2, см. рис. 8.
Рис.8. Пример установки патча с EBR
Через некоторое время и остальные подключаются к новой редакции, и уже никто не работает в старой, см. рис. 9.
Рис. 9. Пример установки патча с EBR
Таким образом, пользователь подключается к БД к определенной редакции и работает только с ее объектами, и, в то же самое время, другие пользователи могут менять объекты в других редакциях, никак не затрагивая первого. Обобщив информацию, можно сказать, что в общем плане установка происходит следующим образом:
1) пользователи работают в редакции E_OLD_EDITION;
2) создается новая редакция E_NEW_EDITION, в ней создаются/меняются/удаляются объекты, не влияя на существующих пользователей;
3) новая редакция E_NEW_EDITION становится общей редакцией БД по умолчанию;
4) все пользователи переключаются на новую редакцию.
Может сложиться мнение, что EBR - это чудесная технология, которая позволяет обновлять БД, не создавая никаких проблем и дает возможность для быстрого отката к предыдущей редакции в случае сложных ошибок, но, к сожалению, это не соответствует действительности. Проблемы возникают на разных этапах. Об этом читайте в следующей части, мы скоро ее выложим:)
О том, что "программирование - это просто"
Под моим предыдущим постом на тему программирования было несколько комментариев в духе "программирование - это просто, автор все сильно усложняет, и вообще, оплачивайте курс SkilBrain, только сейчас 50% скидка на обучение не бойтесь. Так вот, я когда-то тоже плавал в розовых облаках и искренне советовал всем знакомым "идти в IT". Ну а что, действительно - год позаниматься и считай, будущее устроено - высокая зп, перспективы свалить из нашего российского дурдома в более благополучный дурдом где-нибудь в ЕС или Штатах, работа с людьми со всего света. Плохо, что ли?
А потом я по ходу карьерного роста сам начал иногда выступать в роли учителя, в том числе и для абсолютных новичков. И я понял базовую истину.
Все люди разные. И среди этих разных людей много тех, кто может стать приличным джуном за год, как это было со мной. Мне легко все давалось, я не испытал особых проблем с книгой "Философия Java" (как выяснилось, по мнению многих это едва ли не худшая книга для старта, ибо сложная). Мне нравилось решать алгоритмы. Я кайфовал и продолжаю кайфовать от каждой успешно решенной задачи, от каждого таска в Jira.
Но есть те, кто просто не может стать программистом, не приложив к этом абсолютно нерациональное количество затраченных усилий. Те, кто начинает беситься, рвать и метать спустя 10 минут неудачных попыток скомпилировать код. Те, кто не может понять, как связано деление по модулю на два и алгоритм определения четности/нечетности числа. Те, для кого O(n log n) - это что-то из высшей математики.
Это не значит, что эти люди тупые. У них просто под другое заточены мозги. Я знаю много реально достойных, умных людей, которые пытались, реально пытались "войти в IT", сидели вечерами - и терпели неудачу. Это вообще вещь, которой должны обучать чуть ли не в школе. В нашей (человеческой) культуре царит точка зрения, что если очень сильно постараться, можно добиться всего. Но это неправда. Ты можешь приложить максимум своих усилий, и все равно проиграть. Потому что в школе, например, тебе очень нравилась литература и история, а алгебра приводила (и приводит) в ужас. Или потому что ты человек, который не может над одной задачей больше пары часов без прогресса. Это не плохо. Такие люди добиваются высот, делают отличные карьеры - просто, как правило, не в программировании.
Поэтому я терпеть не могу большую часть онлайн-курсов. Они не продают знания. Они продают надежду на лучшую жизнь. Поэтому я советовал и продолжаю советовать - перед тем, как нырнуть в омут с головой и расстаться со 100+ тысячами рублей в надежде на то, что через год это будет ваша зарплата за месяц - устройте себе вступительный экзамен. Попробуйте почитать литературу, освойте базовый синтаксис, порешайте простенькие алгоритмы. Если все пойдет хорошо - вам все это в любом случае пригодится в будущем, да на тех же курсах. Если нет - ну, вы потеряете только время и немного веры в себя.
Изучаю программирование 31 ч. Неделя 1
Я учу программирование, и теперь буду публиковать еженедельные отчеты, чтобы мотивировать себя держать темп.
Как вы можете заметить, я засекаю время. Это помогает мне контролировать процесс обучения, следить за темпом, выявлять ошибки, анализировать их и самое главное – видеть, что процесс идет. Дело в том, что изучить нужно настолько много, что потратив десятки часов можно сдвинуться всего на 0,5%, а ощутимых результатов и вовсе не будет. Это может подкосить, отбить всякое желание учиться дальше. Засекая часы, я перестаю думать о таких вещах и моими результатами становятся часы. На начальном этапе это очень помогает.
На прошлой неделе я занимался 31 час.
– Книгу по питону и курс на юутбе могу рекомендовать. Они достаточно понятны.
– В начале недели мне с трудом давались задачки на codewars, но уже к концу дело прошло, и я накодил 18 штук за 1,5 часа. Буду наращивать.
– Попробовал заучивать функции и методы с помощью Anki, разочарован. Потратил много времени (25%) на создание карточек и угадывание ответов. Понимаю, что удели я это время решению задач на codewars, эффективность недели была бы выше.
Сможете найти на картинке цифру среди букв?
Справились? Тогда попробуйте пройти нашу новую игру на внимательность. Приз — награда в профиль на Пикабу: https://pikabu.ru/link/-oD8sjtmAi
Реальный путь в data science
Эта статья про мой путь до первой работы в DS (data science). Путь был не маленьким и был пройден за 2,5 года. Кого-то эта цифра отпугнет, если бы я знал это в начале, то меня бы тоже отпугнула, кто-то назовет меня неспособным дурачком (и отчасти будет прав), а для кого-то (я надеюсь) эта статья поможет сократить время обучения и пройти этот путь быстрее.
Знакомство и первые шаги
Эта история начинается осенью 2019 года. Юный первокурсник Миша (это я) в очередной раз услышал про какой-то data science. Немного погуглив, я узнал про курс от всем известного поисковика, на котором можно узнать об этой области подробнее.
Пройдя пробный кусок, мне понравилось эта так называемое data science и было решено продолжать изучать эту тему, но самостоятельно, платить за это я был не готов.
Для начала я изучил, что вообще должен знать DS и сравнил это с тем, что имелось у меня в голове на тот момент. Поняв, что в голове ничего не имеется (кроме pascal в школе и 4 по математике в универе), я решил, что начать стоит с python.
Нашел несколько курсов по нему и принялся за дело. Проходил я эти курсы в течении полугода, и хоть прогресс, конечно, был, но не сказать, чтобы очень большой, сейчас я понимаю, что этого времени хватило бы, чтобы изучить базу по python достаточно хорошо, но мой подход при изучении этого курса, как и при изучении последующих, был мягко сказать неправильным: Поучась неделю, я забрасывал курс на 2, и так на протяжении всего обучения питону.
Худо бедно я познавал данный язык в течении полугода, а потом весна 2020 года, и всеми любимый локдаун. В универ ходить больше не надо, времени стало чуть больше и решил, что пора кончать с этим питоном и переходить уже к самому DS.
Приступаю к DS15 апреля 2020 я открыл курс “Введение в Data Science и машинное обучение” и начал получать свои первые знания в этой области. Курс мне понравился, не могу сказать, что он давался мне очень легко, но особых проблем не возникало, если не считать kaggle, на тот момент это казалось очень непонятной штукой.
Следующим моим курс, стал курс от крупнейшего DS сообщества в России. Очень крутой курс, но проходил я его, конечно, не особо углубляясь. Также проходил курсы по статистике, sql и другим важным вещам для DS.
Первые неудачные попытки
Так прошло еще полгода. Я, думая, что уже знаю достаточно, начинаю искать первую работу. Откликался на различные вакансии и меня пригласили на собеседование в Мегафон, им требовался стажер. Я готовился и уже начал немного радоваться, что скоро попаду стажировка, но собеседование было успешно завалено. Я мало на что сумел ответить, но зато смог понять свой истинный уровень.
В течении следующего полугода я опять проходил различные курсы, а также повторял старые, но изучая их более тщательно. Настала весна, близилось лето, в которое я твердо решил начать работать.
В апреле я начал активно откликаться на вакансии, но безуспешно. Никто не захочет брать человека без опыта, у которого даже толком показать нечего, у меня не было гита, на соревнованиях на kaggle я тоже не участвовал, не хватало усилий сделать что-то более-менее объемное и очень зря. Наличие гита, с хорошим кодом, конечно, или наличие каких-то результатов на kaggle является весьма важными вещами при устройстве на работу, особенно на первую.
Первый шанс
Уже наступило лето, а работу я так и не мог найти. Я уже начал откликаться на вакансии не связанные с it, хотелось найти хоть какую-то работу, но даже тут у меня ничего не получалось.
Конечно, в этот момент мысли “может это не мое?”, но в конце июня меня пригласили пройти собеседование на стажировку в Мегафон (да-да опять он).
К собеседованию на этот раз я подготовился лучше, да и знаний было побольше. В итоге меня приняли на стажировку.
“У меня наконец-то получилось, теперь я уже полноценный работник и сто процентов останусь в компании после стажировки” думал я на тот момент.
Первую половину стажировки мы (нас было 5 человек) изучали различные вещи связанный с работой DS. Подробно разбирались с ML, git, oracle db и подобными штуками. Во второй половине нас стали распределять по проектам. Я попал на проект связанный с рекомендацией одного из тарифа. Решал Пытался решить я эту задачу в течении полутора месяцев. Какой-то результат я получить смог, но не очень хороший. Далее было итоговое собеседование по итогам стажировки, которое я успешно завалил, единственный из всех стажеров. Потом я уже понимал, что нужно было лучше готовиться к нему, но было уже поздно. Но в тот момент мне было грустно лишь потому, что прощаюсь с коллегами. Я думал так как теперь у меня есть опыт, то в меня теперь начнут звать на собеседования, которые я успешно буду проходить и устроюсь на работу уже очень скоро. Как же ошибался...
Победа
Хоть теперь меня и стали звать на собесы, пройти их успешно не удавалось, а чаще всего общение с компанией заканчивалось на разговоре с hr, во многом из-за того, что я хотел работать 20-30 часов в неделю (так еще учился), а компании это не устраивало.
Я понял, что, если я хочу устроиться на работу мне необходимо быть готовым к полноценным 40 часам в неделю.
После многочисленных отказов, мне удалось опять попасть на стажировку, на этот раз в компанию Норбит.
Стажировка в этой компании оказалась организована достаточно круто. Каждый день у нас были тренинги, которые проводили сотрудники компании, были дз по этим тренингам, задания по программированию на python, помимо этого нам также было необходимо выполнить индивидуальные проекты, которые мы могли придумать сами, в моём случае это был телеграмм бот по введению и прогнозированию списка покупок. Далее некоторых из нас, в том числе меня, начали привлекать к настоящим задачам. Я попал на проект по системе прогнозирования оттока сотрудников.
К моменту окончанию стажировки, я не сказать, чтобы сильно верил в успех, т.к. был неудачный опыт в Мегафоне и нас было достаточно много, а скольких из нас оставят было не понятно.
Ну и как вы понимаете меня все-таки взял. Я был очень рад этому. Путь длинною 2,5 года наконец-то был пройден, но далее предстоит еще более длительный и увлекательный путь.
Если вы и дальше хотите узнавать о моей карьере то подписывайтесь на мой телеграм - https://t.me/datamisha