Некоторые просто запускают котов на клавиатуру

Сегодня возобновил стримы, последний цикл(всего один) по словарям в Python, он завершающий в цикле «стримы по спискам в Python». Вот он — и если что-то непонятно и хочется более подробного разбора, то пишите:

Вот оба цикла стримов
Цикл стримов «Для тупых» по циклам
https://youtube.com/playlist?list=PLmn7h9eyDeMNT1cF1tC_BbiRD...
Цикл стримов «Для тупых» по спискам(+ один по словарям)
https://youtube.com/playlist?list=PLmn7h9eyDeMNT1cF1tC_BbiRD...
Живу в Америке. Ребенок в школе записался на уроки программирования. Пришел на собрание этого класса по поводу начал занятий. Огляделся. 30 человек в классе. Один азиат и мой из России, остальные индусы. Почувствовал себя нац. меньшинством.
На всех других предметах этнический состав гораздо разнообразнее.
Видеонаблюдение, наблюдения.
Здарова народ. Решил немного поделиться мыслями про видеонаблюдение. Не являюсь профи и вообще специалистом. Просто 7 лет живу в частном доме
и ради интереса балуюсь установкой камер наблюдения на участке. Не то чтобы они нужны, но очень интересно :)
Перепробовал огромное количество NVR систем, разные камеры, от дешевых до дорогих, в итоге пришел к тому что оставил камеры только одного бренда.
В моем случае это Hikvision. Удобно когда все настройки устроены по одной схеме.
Теперь к сути поста: Всегда хотелось, чтобы писались только важные события, но если вы имели дело с камерами то знаете что встроенные системы детекции движения всегда глючат в каких либо условиях.
Или это снег, или это тень от деревьев или пауки плетут паутину под теплыми лучами IR подсветки. Всего этого хотелось избежать. Вариант один - детекция объектов на основе нейронок.
В очередной приступ перфекционизма, когда увидел что за сутки записано несколько лишних гигабайт - лезу в интернет в поисках решения проблем.
Оказывается уже давно существует классный проект Codeproject AI, то что доктор прописал. Поиск на изображении объектов/номеров авто/даже face detection присутствует.
Дело за малым, прикрутить это всё к своим камерам. Первый, и самый логичный способ - это найти уже готовую систему работающую с этим API. И такие находятся
1)Agent DVR, бывший iSpy написанный на .NET одна из самых мощных и бесплатных систем видеонаблюдения, с одним маленьким но сука жирным минусом. Она жрет столько ресурсов, сколько ещё не придумали. Проц (6900hx)
полностью забит под 100% и с трудом справляется даже с 3-4 камерами, а у меня их 8.. Нафиг, выкидывам
2) Blue Stack, очень популярная на западе система , стоит не дорого. Готов был купить, но нам чуркам не продают. Поэтому были посланы. Хотя потестировал крякнутую. 8 Камер с детекцией тоже не вытягивают.
Были ещё варианты разной степени готовности и сырости, например Fregate , но хотелось чего то лёгкого воздушного особенного (как в анекдоте про водку.)
Ну что же, вызов брошен, решил сделать что-то своеё. Расчехлил вижуал студио. Забрёл на github в поисках отдельных компонент того что мне нужно.
Первое - это считать RTSP потоки с камер.
Находим замечательную либу https://github.com/BogdanovKirill/RtspClientSharp
От, возможно нашего соотечественника Богданова Кирилла, если ты тут - респект и уважуха :)
Эта библиотека позволяет вытащить потоки и получить отдельные кадры из видео.
Дальше мы эти кадры засылаем на ранее упомянутый Codeproject AI.
Он нам присылает данные о том что на изображении имеется. Люди, котики, лисы, авто итд.
Получаем данные и решаем что писать в файл что нет. Если на кадрах интересующие нас объекты - мы сохраняем картинки , которые потом, в конце дня с помощью ещё одной замечательной либы ffmpeg сохраняем отдельным суммарным видео за сутки.
Пример:

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

Цепляем ещё одну замечательную либу с телеграм ботом и получаем сразу оповещения в телефоне.

Получилось не совсем то что я хотел. Мой NVR продолжает писать видео по любому чиху параллельно. Но в основном всё что мне интересно я получаю в телегу. Где могу и видео последнее посмотреть и быстро получить изображение с камеры. Система у меня крутится на винде, на небольшом миниPC minisforum 6900hx, общая наргузка на систему (NVR плюс моя утилита) не первышает 20% Если кому интересен такой вариант - готов поделиться.
Далее, тем кто дочитал конкретика:
Софтина:
Писана для себя, поэтому с вероятностью 50% заработает у вас, но готов допилить дострогать.
Что нужно установить дополнительно:
Codeproject AI:
Download windows installer.
Можете ставитьна любую машиниу, хоть на винду хоть на линукс,докер итд.. Главное чтобы был включен Object Detection (YOLOv5 .NET)
Далее качаете FFMPEG
должна стоять на той же машине. В конфиге надо прописать путь к bin папке
Затем телега..
Идете в телегу к @botfather регестрируете своего бота, получаете ключ и вписываете его в конфиг
Затем гуглите как узнать свой ID в телеге , и вписываете его тоже в конфиг приложения. В конфиге есть два списка
- один это кому присылать постоянно уведомления, второй это кто просто может запрашивать видео и изображения с камер.
Далее заполняете конфиг, вбиваете данные RTSP каналов (вбивайте каналы в высоком качестве, прога сама жмет при запросе к AI)
Всё должно заработать, ну с вероятностью 50% :)
ЗЫ: За стиль изложения прошу простить, пишу в пьяном угаре, 2 месяца сидел в бане в пикабу, да и лето кончается, шашлык сам себя не выпьет :)
Всем привет. Мой предыдущий пост, как мне кажется, получил огромный отклик. Его добавили в сохраненное только на Пикабу более 5000 человек, более 1500 репостов в ВК и более 750 комментариев, которые разворачивались в дискуссии. А также на меня подписалось около 300 человек. Тема, как выяснилось, оказалась актуальной, и интересной людям.
Я обещал ответить на вопросы, дать комментарии и поделиться ссылками и материалами, которые помогли именно мне. Обещал – отвечаю и делюсь :)
Ещё раз хочу подчеркнуть, всё что будет ниже - является сугубо моим личным мнением и опытом. Это не будет являться гайдом «как войти в айти с двух ног за 3 месяца». Моё мнение + возможно, рекомендации. Я могу быть где-то не прав, буду рад если более опытные коллеги меня поправят.
Курсы
Весь мой негатив в сторону курсов был направлен на распиаренные и разрекламированные курсы на всем известных площадках. Те самые, которые пестрят лозунгами «Легче всего попасть в IT через тестирование, мозгов не надо, 10 месяцев и мы тебя устроим на работу». Есть определенный процент людей, которые успешно заканчивают такие курсы и находят работу, повторюсь, среди моих друзей и знакомых таких людей нет.
В самом начале пути я почти купил курс на ЯП за ~75к на системного аналитика. Но ознакомившись с программой курса я понял, что 70% из предлагаемого я уже знаю и делал, остальные 30% смогу добить в бесплатных источниках. Около двух месяцев мне настырно названивали и пытались впарить (другого слова не подобрал) этот курс. Агрессивный маркетинг только усилил мою негативную позицию.
Я ничего не имею против платных и полезных курсов, и мне не жалко заплатить за повышение своей квалификации, часть таких курсов также оплачивает мой работодатель. Но они не имеют ничего общего с ЯП, ГБ и прочими. Рекламировать платные узконаправленные курсы не вижу смысла, когда они вам понадобятся – вас или на работе отправят учиться или вы уже сами будете знать чему и где вы хотите подучиться.
Образование.
Высшее образование (ВО) по моему мнению не является обязательным фактором при устройстве на работу, за исключением, наверное, сферы информационной безопасности, госконтор, и личного желания отдельных личностей видеть кандидатов с ВО. Бизнесу нужно чтобы твои знания превращались в его деньги. Если ты сможешь сделать это без корочки – работодателя не будет волновать её наличие. Я знаю людей, которые с зарплатами от 200 до 400 работают в IT-блоках крупных банков и не имеют высшего образования.
Про качество образования можно много рассуждать, но все мои знакомые кто заканчивал профильные ВУЗы отмечали лишь то, что полученные знания им не пригодились. Всему, чему нужно было научиться – они научились на работе. У кого-то уже был диплом, кто-то специально пошел получать ВО для того, чтобы иметь возможность уехать на ПМЖ в другую страну.
Про то что ВО бесполезно, я не говорю. Некоторые работодатели более лояльно относятся к кандидатам с ВО. В Университетах мы учимся учиться и выполнять бестолковые задачи в сжатые сроки. Но поступать в ВУЗ и учиться там 5 лет только для того, чтобы сменить сферу деятельности на IT – сомнительная затея.
Материалы, книги, курсы и полезные ссылки
Теперь же, по просьбам подписавшихся на меня людей делюсь тем, что помогло именно мне. Это не реклама, не гайд, это мой личный опыт.
Для того чтобы погрузиться в мир единичек и ноликов, было бы очень полезно понять почему именно 1, почему именно 0, и как оно всё работает. В этом помогает разобраться книга Чарльза Петцольда «Код: Тайный язык информатики». Купил бумажное издание, прочитал 2 раза. Мне очень нравится. https://www.litres.ru/book/charlz-petcold/kod-taynyy-yazyk-informatiki-48447357/
Стоит обратить внимание на канал Kontur Academy. Половину курсов на канале я точно просмотрел. Есть как базовые вещи, так и продвинутые @konturacademy1485/
По сетям мне понравился курс Андрея Созыкина. На канале также каждый сможет найти для себя что-то полезное @AndreySozykin/playlists
Перечень ссылок на общие темы хотелось бы закончить одной из самых полезных для меня ссылок. Букварь по дизайну систем - https://github.com/donnemartin/system-design-primer . Там и про сети, и про балансировку, и про микросервисную архитектуру и еще про много чего полезного.
Я не владею английским на достаточно хорошем уровне, который позволял бы мне читать всю техническую документацию и статьи без переводчика, поэтому пользуюсь расширением для Chrome “DeepL”.
Программирование
Для начала нужно для себя понять, чем вам хотелось бы заниматься. Писать мобильные приложения? Игры? Делать сайты? От этого будет зависеть выбор первого языка. Я начал со Swift. Даже купил б/у макбук для этих целей.
Swift. Книга Василия Усова «SWIFT. Основы разработки приложений под iOS, iPad OS, MacOS» - https://www.litres.ru/book/vasiliy-usov/swift-osnovy-razrabotki-prilozheniy-pod-ios-ipados-i-macos-pd-24426226/
HTML, CSS, JavaScript. Мне понравился канал Богдана Станчука. Почему-то именно он вызвал у меня доверие. Прошел видеокурсы HTML – 3 часа, JS – 11 часов. Есть информация и про Git и про Docker и 10 часовой курс по Python. Да и в целом достаточно большая концентрация полезностей на одном канале @Bogdan_Stashchuk
Python. Прошел курс https://stepik.org/course/58852/promo .
Советы, которые мне давали опытные разработчики примерно были одинаковыми:
Практики должно быть больше, чем теории, не нужно пытаться всё сразу выучить
Стараться постепенно изучать и само программирование. ООП, алгоритмы и т.д.
Пет-проект обязателен. Не нужно писать калькулятор в качестве пет-проекта. Ваш проект должен быть полезным. Если это приложение для мобилок – напишите то, чем будете пользоваться сами или порекомендуете друзьям. Планировщик заданий, менеджер паролей, может быть даже интернет-магазин. По мере обучения вы будете дорабатывать и улучшать свой проект. Я до пет-проекта так и не дошел.
Тестирование
Чтобы поступить на курс по тестированию (о нём в конце) мне хватило книги Романа Савина «Тестирование ДОТ КОМ». Кто-то считает эту книгу достаточно сомнительной, но мне хватило. Плюс смотрел канал Лёши Маршала, там есть отдельный плейлист «Тестировщик с нуля» @leshamarshal/playlists . В целом, на ютубе достаточно много такого контента, не думаю, что когда вам будут рассказывать о базовых вещах информация будет кардинально различаться. Выбирайте того, кого вам будет непротивно слушать.
Одним из лучших бесплатных курсов для QA я считаю The 100-Year QA-Textbook https://mentorpiece.education/textbook/ Узнал о нём примерно через год после того как нашёл работу, прошел большую часть для интереса и расширения кругозора. Есть версия на русском, но она неполная, дополняется по мере перевода. Это полностью структурированная информация начиная с базы (сети, sql, linux, HTTP, REST, API) заканчивая техниками тест-дизайна и работой с Docker. Создатели этой книги где-то даже говорили, что «всю эту информацию можно брать и продавать на своих курсах, только указывайте автора». Не исключено, что на курсах за 100+ тысяч вы будете учиться именно по этой книге.
Аналитика
Так как я рассматривал только системную аналитику – книга Карла Виггерса и Джой Битти «Разработка требования к программному обеспечению» https://www.chitai-gorod.ru/product/razrabotka-trebovaniy-k-programmnomu-obespecheniyu-2427772
Просто были сохранены в закладках эти ссылки про BPMN и UML. Поиск информации на эти темы не должен у вас вызвать трудности.
Техническое писательство
Не сильно много информации в интернете на эту тему, выделить могу только Семёна Факторовича. Канал на ютуб @documentatio/streams
Платные курсы я пока не проходил, но планирую https://documentat.io/courses/advanced-techwriting/
Бесплатные курсы
Я сам заканчивал курс QA: https://team.cft.ru/start/school
Вам на выбор: JAVA, ML, Support, QA, Android, ИБ, Аналитика, автотестирование и другие курсы.
Лучших студентов принимают на работу. Перечень доступных городов ограничен, и зависит от направления. Но вы же можете в анкете указать город, который подходит?)
10 из 40 учеников нашли работу. Причем половина из них – в других компаниях и городах. Лично знаю нескольких разработчиков, закончивших эти курсы и получивших работу в других компаниях. И это было абсолютно бесплатно и супер полезно.
Знаю существуют подобные бесплатные школы и от ВК, и от OZON, и в Альфа-Банке что-то есть. Но я ничего про них не знаю, поэтому и рассказывать не буду.
Простыня текста, по-моему, получилась еще длиннее, чем в прошлый раз, что-то наверняка упустил, о чем-то забыл рассказать, а что-то рассказал, но криво. Мог бы еще поделиться положительным опытом в создании резюме, если это будет кому-то интересно. Если вы хотите, чтобы именно я ответил вам в комментариях, пожалуйста тегайте через @. В прошлый раз я заблудился в сотнях комментариев и, к сожалению, не всем смог ответить :(
Добавлю от себя кой-чего, как человека, находящемся на среднем звене "пищевой цепочки", но с этим имеющего богатый опыт работы с новичками, как совсем юными, так и уже в виде состоявшихся на прошлых местах дядек (даже бывшие военные были).
Самое главное, но не самое первое, что должен сделать для себя падаван, - это изучить академисческую теорию. Да, сука, без нее ника и никуда, если вы, конечно же, хотите что-то там зарабатывать:
Если вы идете менеджеры, то тут общая литература - менеджмент проектов (но и разработку бы хорошо изучить хотя бы на уровне "чайника", дабы не возникало вопросов в стиле "Хули 4 дня на изменгение цвета кнопки?!".
Если идете в аналитики, то тут хорошо автор предыдущего поста описал, но аналитика бывает двух вариантов:
Аналитика данных - тут, да, БД учить, OLAP/OLTP, СУБД и тд. Хорошо бы еще теорию данных в целом подучить.
Аналитика проектов - это следующий этап развития PO/PM:
Бизнес-аналитка - вы думаете, как сделать систему лучше.
Системный анализ - вы думаете, как заставить системы лучше взаимодействовать.
Если идете в QA, то:
Есть ручное тестирование - с этого нужно начинать, т.к. это позволит въехать в область впринципе: кейзы, сценарии, уровни тестирования и тд.
Автотестирование - это уже разработка, ибо нужно писать код для автотестов разного уровня: функциональные, интеграционные, приемочные, и тд.
Есть еще целая сфера DevOps:
DBA - это специализация на конкретных БД, причем, не только на ее администрировании, но и на использовании, поэтому нужно не только знать саму СУБД, но и теории данных, SQL/noSQL нотации конкретной СУБД, механизмы отказоустойчивости и масштабирования.
Просто DevOps, которые раньше назывались "админами": тут нужно знать теории сетей и операционных систем, знать современные технологии базирования проектов: контейнеры, оркестраторы, CI/CD системы (для них, кстати, тоже нужен хотя бы один язык, часто: Питон или Ruby).
Т.н. "сетевики": персонал, специализирующийся на работе с сетями передачи данных. Тут, имхо, вряд ли можно попасть "после 30-ти".
Разработка. Тут нужно начинать с изучения компилируемых и интерпретируемых языков, их разницы. Почему-то сейчас считается, что "войти в Питон" или "войти во фронт" за полгода реально. Реально, на позицию стажера. А где вы видели позиции стажера? Я видел один раз в жизни. Поэтому нужно выбирать специализацию в ней развиваться, затарившись тонной литературы, начиная с теории данных, заканчивая, например, в случае C/C++ теорией компиляторов.
Бекенд. Это "прослойка" между системами хранения данных и фронтами (мобильным приложение, сайтом или другим бекендом). Тут - оболие всего и вся: РНР, Питон, Go, Rust, Ruby и тд. В обоих видах языков свои плюсы и минусы. Суть бека состоит в том, что нужно знать часто минимум два языка. Например: PHP + Go, Python + Rust и тд. Т.е. связка интерпретируемого и компилируемого языка.
Прикладная разработка. Тут выбор меньше: C/C++, .Net, может, что-то еще. Хотя современные приложения могут быть написаны и на Питоне.
ERP-разработка: 1С, SAP, Axapta и тд. Обычно в такие сферы приходят случайно. Никто в здравом уме "после 30-ти" не сунется в ту же SAP или 1С.
Game Dev. Тут все понятно: берете навыки, полученные ранее, в C++, например, и изучаете какой-нибудь Unreal Engine 4/5. Сложно, долго, но можно приятно устроиться. К сожалению, в Game Dev не зайти просто на знании языка, ибо нужны специализированные знания.
Embeded-разработка. Тут выбор еще меньше: в основном, только C/C++. Очень узкая, но очень хорошо оплачиваемая сфера. Более не скажу ничего.
AI-системы. Тут просто. Есть Питон с Keras/PyTorch, построенные на TensorFlow, и есть всякие интерпретации в других языках для использования. Тут - кроме разработки нужна еще, как минимум, линейная алгебра. НО! Это очень перспективная сфера, куда можно и "после 40" зайти.
SRE. Отдельная каста супер высокооплачиваемых инженеров. Попасть "после 30" и тд - невозможно, ибо нужен огромный опыт и знания во всех областях сразу.
Так вот, самое главное - нужно учить теорию. Параллельно ли, изначально ли - неважно. Без теории 3/4 перечисленного выше - просто закрыто будет. Остальная четверть ограничится уровнем стажера. Теория написания кода, теория данных, теория информации, теория сетей, комплияторов, тестирования, анализа данных, теория баз данных - огромная сфера знаний.
Готовы ли вы тратить тонную времени? Вам решать. Причем, нужно сразу понимать, что, даже изучите вы, например, пытясь "войти в разработку" книги "банды четырех", не гарантирует вам ни-че-го просто потому, что тем же "'эйчарам" нужны конкретные навыки использования конкретных инструментов, а все остальное - это остальное (это отдельная огромная тема противостояния "эйчаров" и специалистов).
Идеальный способ "вхождения в айти" - это найти ментора. Не курсы, не школы и тд, а конкретного человека, который будет помогать и направлять вас на этом ебучем дремучем пути к льготной ипотеке.
P.S. На моем личном опыте есть печальная статистика: чем страше человек есть, пытаясь "войти", тем хуже из него спец при прочих равных. К сожалению, это так.
В посте про "наставление" накидали кучу годноты + в телегу.
По всему этому я пройдусь, буду иногда постить об успехах.
Некоторые глянул мельком. Поэтому если там есть продукт-плейсмент - отпишите и я удалю. На первый взгляд очень даже хорошо. Искал с нуля т.к. лучше повторить, чем вспоминать и ошибиться.
Первое я уже успел попробовать (находил сам), прохожу в текущий момент.
Stepik - python для начинающих

Далее пойдут те, до которых я еще не дошел:
Лучшие бесплатные курсы по DevOps [2023]
Командная строка для разработчиков – cli-for-dev
Отдельно ютуб:
Python Kivy (разработка для мобильных устройств)
Python
Длинный нудный курс по Системному администрированию (азы)
Администрирование Windows Server
Ультра-позитивный Олег о python
Если что-то хотите предложить - пишите в комментарии.
UPD: даже в начале написал, что я не в курсе ни о какой рекламе на тех ресурсах. И первый же начал разводить вонь о том, что я продажный и сайт вообще мой. Ууух я конечно злой гений.
Предлагайте ваши варианты, что сами пробовали. Обязательно попробую.
UPD2: я без понятия почему "это" вылетело в горячие. Не бейте блин тапком.
Пришла пора поговорить за бекенд, а именно, за всеми старый "любимый" РНР и иже с ним (почему "иже с ним"?, потому что сейчас часто этот язык идет в паре с Golang).
Был недалече период необходимости прохождения собеседований. Были несколько интересных случаев, правда, конторы вряд ли известные широкой аудитории, поэтому называть не буду. Штатная разработка мне давно не интересна, поэтому я искал нечто выше, типа архитектора, techlead, либо, на край, teamlead. З/п разная, но я искал 400+ (да, "Знающие" скажут, что это мало для таких позиций - я в курсе).
Т.к. я не буду называть конторы, то выскажу лишь собирательные аспекты, которые для себя выявил.
Небольшие конторы, до 100 человек. Их проблема - они часто не знают точно, кто им нужен, и легко вместо вас, опытного и подготовленного человека могут взять просто того, кто интервьюверу внешне больше понравился. У меня было несколько отказов с формулировкой "Взяли по рекомендации".
Мне еще ниразу не попадались с их стороны серьезно подготовленные в техническом плане люди. Вас легко могут спросить, чем int8 от int32 отличается.
Средние конторы, до 1000 человек. Вот, тут бывают самые интересные собеседования. Тут и компетенция интервьювером бывает самой разной. Кто-то вас может гонять по типам данных и "что выведет скрипт?", а так же сдобрив это кодингом в стиле "отрефакторите код", кто-то может попросить вас проработать абстрактную архитектуру чего-то, поспрашивать про способы ускорения и оптимизации приложений (репликации, шардинг, балансинг, кеширование и тд). Не редко просят оптимизировать таблицу и запросы к ней.
Один раз я наткнулся на очень сильного интервьювера. Мы обсуждали не просто тонкости интепретатора, но и различные возмжные последствия от его нюансов, а так же способы диагностики и устранения неполадок сервисов и приложений в "боевом режиме". Различные другие аспекты языка, типа "настоящей" параллелизации выполнения приложения.
Большие конторы. Тут основная, имхо, проблема в том, что они четко знают (действительно знают), как собеседоваать junior-разрабов, но часто совершенно не понимают, как это делать с более серьезными позициями. Я считаю, что это выходит из-за сильной корреляции ответственности между сотрудниками: в таких конторах крайне редко бывают сотрудники с экспертизой, а чаще те, кто пришел и сидит на одном месте в одной области.
Обычно у них первый этап - это алгоритмы, и не стандартные, а те, которые выдуманы интервьювером, либо около него. Почти всегда задачи максимально абстрактные и содержат слова "бесконечное кольцо", "огромный файл", "бесконечная очередь" и тд. В 100% меня спрашивали про то, как считать сложность алгоритмов, и какая сложность будет у того или иного.
Я считаю это проблемой потому, что на практике не бывает ничего "бесконечного", особенно на позиции артихектора или techlead: у любой задачи есть в 100% случаем граничные условия, от которых зависит решение (в любой, даже np-полной задаче, решение меняется в зависимости от количества элементов). Года 3 назад я еще пытался доносить это до интервьюверов, но теперь просто кидаю ссылку на профиль leetcode, если начинается "алгоритмистика" - сильно время экономит.
Не редко бывают совершенно тупые задачи в стиле "сджойнить стопицот таблиц и наложить рекурсию в одном запросе" - опять же, протсо на знание ради знаний, что не практике вы никогда не примените.
Еще почему-то меня часто спрашивали под "подкапотное" устройство http/http2 протоколов, модель OSI (sic!) и чем UPD лучше/хуже TCP. Пару раз были вопросы про OLTP/OLAP механизмы, и чем одно лучше/хуже другого.
Честно говоря, я ниразу не проходил первый этап из-за своей неприязни к подобному (что человек может нагуглить за 1 минуту), поэтому что там дальше, я не знаю :) Может, что-то действительно стоящее и интересное.
Если подвести итог, то, имхо, маленькие и большие конторы на подобные позиции не особо интересуют ваши практические технические скилы, больше - как вы себя подадите (первый этап в больших конторах - это не про скилы).
И чутка про забугорные конторы. В них часто потенциально невысокий уровень экспертизы интервьювера усугубляется наличием потенциальных индусов и всяких AWS/Azure сервисов, которые сильно разгружают (не в финансовом плане, конечно же) конторы. Так что знание этих сервисов даже, если вы идете на простую разработку, обязательны. Каждая вторая контора обязательно даст вам тестовое задание, и не потому, что "вас таких за забором дофига", а просто так.
Английский - естественно. Часто говорят про минимум В2, но на практике нужен С1, не меньше: если вам говорят, что собеседование будет на аглицком, это значит, что там будет либо native, либо fluent speaker.
Будет огромным плюсом, если вы познакомитесь с компанией заранее и проработаете свою мотивацию не в стиле "свалить из РФ".
Вообще, при собеседовании в забугорные конторы крайне важны soft skills. На столько важны, что вы обязаны научиться улыбаться, если еще не умеете. Я сейчас говорю про конторы, где HR сидит в каком-нибудь Кипре или Испании, а не те, что нанимают аутсорс рекрутеров в РФ.
Почему-то до сих пор часто конторы из заграницы уверены, что даже на лидирующие позиции достаточно 4000-4500$/мес gross, если вы из РФ. С учетом того, сколько придется на налоги и комиссии отдать, это очень мало.

Что сподвигло меня сделать это курс по Ворду? Ведь я вместо этого мог бы сыграть в 3-4 шахматных турнирах с тщательной предварительной подготовкой. Или, вообще, плюнуть на все и уехать на дачу, копать червей для рыбалки... Дело не в том, какие дороги мы выбираем. Дело в том, что такое в нас самих заставляет нас выбрать ту или иную дорогу... Когда-то давным-давно, лет 5 тому назад, один наш программист сделал для бухгалтерии функционал, который периодически рассылал сотрудникам предупреждения о разных событиях, типа неожиданных премий и т.п. Функционал основан на шаблонах Ворда и по неизвестной причине перестал работать. Надо ремонтировать! А это оказалось не так просто, как показалось сначала.
Вызывает меня как-то зам главного бухгалтера (милая приятная женщина) и говорит трагическим голосом.
- Все пропало!
- Клиент уезжает, гипс снимают? - уточнил я.
Выяснилось следующее.
Когда-то давным-давно, лет 5 тому назад, один наш программист сделал для бухгалтерии функционал, который периодически рассылал сотрудникам предупреждения о разных событиях, типа неожиданных премий и т.п.
Примерно вот такого содержания.
"Сообщение о премии".
...
Уважаемый Иванов Иван Иванович! По итогам работы за квартал вам будет выплачена дополнительная премия в размере 30 тысяч рублей. Спасибо за отличную работу.
...
Программист, сделавший этот функционал, давно уволился, никто эту программу не поддерживал, да и потребности в этом вроде как не было. Бухгалтера нажимали нужные кнопки и все работало.
Ничто не предвещало, но все-таки это случилось. Программа перестала работать. Почему, непонятно. Документации, конечно, никакой не было. Бухгалтера начали все это делать вручную. Работа простая. Нужно сделать около сотни похожих файлов Ворда и разослать сотрудникам, попавшим на эту премию.
Один раз бухгалтера это сделали, но это им сильно не понравилось. Они хорошо помнили те славные времена, когда процесс проходил за несколько минут без всяких ошибок. Теперь они ковырялись с этими файлами больше недели, да еще сделали одну нелепую ошибку. Одному сотруднику приписали лишний ноль, т.е. 400 тысяч вместо 40. Сотрудник сначала сильно обрадовался, заранее потратил кучу денег, залез в кредит. А потом еще более сильно огорчился, когда получил реальные деньги, а не просто сообщение.
Бухгалтера поняли, что программу надо чинить и обратились к нам.
Зачем вообще нужны эти извещения? Ведь все равно получатель премии узнает о ней по факту прихода денег на карту.
Ответ простой. Это старая добрая корпоративная традиция, и не нам, разработчикам и бухгалтерам, ее ломать. Народу нравится! И этим все сказано.
Короче, взялся я за дело и через некоторое время с удивлением понял, что Ворда я не знаю, и никакие курсы, справки, сайты в Интернете мне не помогали. Вроде все просто. Есть переменная, вот она, живая, но почему-то не работает. Почему, непонятно.
Позвал на помощь товарищей по работе, устроили мозговой штурм. Залезли в жуткие вордовские дебри и с огромным трудом поймали за хвост истину.
Выяснилось следующие.
В Ворде есть переменные "старого" типа, а есть "нового" типа. Программист широко использовал и те и другие. Но они совсем разные, эти переменные. И косяки у них тоже разные. У "новых" переменных есть такая жесткая особенность, нельзя их исправлять прямо в тексте. Визуально такие исправления вроде как срабатывают, но по факту это не так. Внутри все стало работать неправильно. А чтобы увидеть дефект и исправить, надо разархивировать файл docx (а это обычный zip архив, в котором несколько файлов xml) и там уже править дефектный xml. Это уже задача не для новичков!
Или, что проще, просто с нуля аккуратно переделать файл docx непосредственно в Ворде.
Так или иначе, после того, как проблема была понята и осмысленна, решить ее было уже просто.
После того как я убедился, что этот функционал успешно работает, (я сам получил сообщение о премии), я решил сделать небольшой курс по Ворду.
Хотелось, чтобы если кто-то еще столкнется с подобными проблемами, то смог бы быстро их решить.
У меня уже был успешный опыт создания подобных курсов, например: курс по Экселю.
Почему бы не сделать еще один?
Тут я уже двигался по проторенной дорожке: текстовый курс с картинками, тщательное тестирование, путем многократного выполнения нужных действий курсанта по заданному плану, видео материалы.
Я решил подробно расписать все эти особенности, "ловушки" Ворда, чтобы сделать работу с этой программой максимально комфортной.
В итоге получилось: один длинный текст с картинками, а к нему еще примыкают 3 видео.
Идея такая. Кто-то больше любит читать тексты (как я, например), кто-то больше любит, чтобы ему показывали в видео формате.
Вот в таком виде, во всех форматах курс подойдет всем, никто не останется без нужных знаний.
Вот краткие описания основных составных частей курса.
Часть 1 - Подготовка. Запуск.
Что такое Word и кому он нужен. Запуск. Наш первый файл "Hello, Word" или "Привет, Ворд". Разметка страницы. Шрифты, настройка. Вставка картинки. Гиперссылка.
Часть 2 - Переменные "старые" и "новые". Макрос VBA.
Переменные "старого типа" и переменные "нового типа". Наш первый макрос в Ворде. Ключевые моменты макроса. Устанавливаем значения переменных.
Часть 3 - Автоматизация.
Как создать 99999 однотипных документов Ворда для приглашений на праздник клиентов и/или сотрудников, расписок работников о согласии на что-то, резюме искателя работы с указанием разных работодателей и т.п. Заключение. Лайфхаки. Ссылки. Пожелания. Развлечения.
Если есть у вас интерес быстро усвоить Word (или альтернативный редактор текстов), то добро пожаловать сюда:
Microsoft Word. Майкрософт Ворд. Курс для новичков.
Там все материалы в интуитивно понятной форме. Не требуется никакой регистрации и прочего. Просто сразу получаете нужную информацию и выполняете на практике нужные действия. Информация представлена как в виде текстов с картинками, так и в формате видео с озвучкой голосом на русском языке.
Успехов!
Полная авторская версия истории "Как я сделал курс по Ворду для новичков" здесь:
#############
### Конец ###
#############
Давно сюда не писал, так как чего мельтешить. Но @vrom1990/streams с решением разных задачек продолжал каждый четверг в 20:15 по московскому времени. Вот плейлист со стримами по циклам:
https://youtube.com/playlist?list=PLmn7h9eyDeMNT1cF1tC_BbiRD...
Там далеко не всё разобрал, что можно было, будут запросы — продолжу. Там же, на самом деле, и разобрал многие типовые задачи и на списки, так как цикл for со списками очень связан.
Ещё немного видео на циклы и списки тут
https://www.youtube.com/playlist?list=PLmn7h9eyDeMPE7twjaYrT...
А вот и последний стрим, два простеньких забавных, но полезных проекта на списки

@vrom1990
https://archive.org/details/python-tupyh
https://www.youtube.com/c/ВячеславРоманьков
@vrom1990/
@vnrom1990
https://t.me/vrom1990pb

Решения задачек из видео https://github.com/vrom1990/forstreams/tree/main/stream24.04.23
Ссылочки на меня:
@vrom1990
@vrom1990/
Мнение разработчика с опытом 15 лет.
Основная проблема всех курсов, школ и прочих кружков по интересам в том, что там не ставят конкретные задачи. Человек не сможет изучить язык программирования, если он делает это вне контекста.
Мы так устроены. Мы - люди. Алгоритмика и семантика языка изучаются только на "живых" примерах. Мы так же изучаем естественную речь: мы сразу же применяем свои знания на практике. Сначала ребенок учит "мама" и "папа", потом учит предметы, чтобы отвечать на вопросы, потом начинает говорить. Он не сможет научиться речи, если у него не будет цели ее применять.
С разработкой так же. Придумали себе задачу? Например, считать финансы - это отличный проект, который сможет задействовать все аспекты базовой разработки:
- Вместо "мама-папа" - базовая семантика языка (операторы, типы данных и тд)
- Вместо "Что это? - Кубик! - Правильно!" - базовые операции (работа с БД, работа с http и тд)
- Вместо "Что ты делаешь? - Я кушаю!" - базовые аспекты архитектуры (прочитать из БД и вывести в html)
- Вместо "Как день прошел? - Зае**сь!" - MVC-архитектура с элементами DDD и unit-тестами.
А теперь к сопутствующим аспектам.
Git - изучается за полчаса. 99.99% всех задач требуют лишь 4 команды: fetch, rebase, commit и push (pull - это отдельная тема для уверенных в себе пацанов, к коим я не принадлежу). Причем первые две вам не нужны, если вы работаете один.
Если у вас нет никого, кто может зайти в качестве ментора, то стоит поискать сайты, где люди проводят ревью. Да, такие есть. Т.е. вы пишете код, выкладываете его, и люди его обсирают обсуждают. Там же можно спросить всегда советов по реализации.
SO - Откровение разработчика, Святое Место всея и всех и просто ваш верный и надежный друг (я бы даже сказал: ваш кентяра, бротелло). Любите его, ибо он не редко может подкинуть идейку.
Если и этого мало, то идем на сайт фриланса. Регимся и ищем недорогие задачки. Выполнять их не нужно, естественно, но это даст вам для начала понимание того, что хотя "простые смертные" от специалистов, вроде вас.
Все. Пробуем искать работу джуна. На все про все у вас уйдет 2-4 месяца сидения за компом по вечерам. БЕСПЛАТНО.
Итого. Еще раз: научиться разработке на курсах и в школах невозможно. Курсы и школы организуются для другого. Действительно качественной разработке можно только самому научиться или с выделенным ментором, выполняя конкретные проекты.
P.S. В реальности в разработке надо знать ебическую уйму всякого дерьма, о котором даже senior со стажем не всегда подозревает. Ко мне приходят люди "у меня 10 лет опыта", которые нихуя не знают, вот, вообще - всех обучать приходится. Обучать "состоявшегося" гораздо сложнее.
Женщина 34 года
— Мой муж буквально помешался на каких-то странных теориях, - крайне раздраженным голосом заявила клиентка. – Буквально за пару лет он изменился до неузнаваемости и мне начало казаться что я живу с совершенно незнакомым человеком.
— Расскажите подробнее, пожалуйста.
— Все началось несколько лет назад, когда он посмотрел этих проклятых Мстителей, где они там дрались с каким-то мужиком с большой золотой перчаткой. Он там по фильму утверждал что вселенная перенаселена и совершенно необходимо контролировать число живущих. Щелк пальчиками и половина людей исчезла.
— И как это соотносится с вашим мужем? – спросила я, когда женщина внезапно осеклась.
— Как сейчас помню: Рома после фильма заявил что тот злодей в принципе прав, и ничего плохого в его решении нет. Мол, как минимум наша планета стала бы лучше если бы в ней не было половины жителей. Он тогда еще посмеялся, что и сам бы с радостью избавился от обочечников и риэлторов. Тогда я напомнила ему, что тот мужик не выбирал кому жить, а кому нет – он просто уничтожил случайных людей, лишь бы получилась половина от того что имелось сначала. Как бы он заговорил, если бы я бы внезапно обернулась облачком пыли.
— И что он ответил?
— Он промолчал, но видать этот разговор запал ему в душу, что после этого он то и дело начал залипать в интернете. Раньше муж нет-нет да играл в игрушки или смотрел фильмы, то теперь он начал что-то читать. Поначалу я даже обрадовалась – бросил игрушки и слава богу, даже решила подглядеть что он там читает и ничего особо не поняла. Какие-то экономические термины, цифры и расчеты – причем в таких количествах, что я бросила эту затею и на какое-то время забыла о происходящем.
— А потом муж сам сообщил вам о том, над чем работает?
— Я сидела на кухне, красила ногти – готовилась к началу рабочей недели и тут заходит Рома и предлагает попить чаю. Ну я и согласилась, а он как бы невзначай начал рассказывать про умершего несколько веков назад английского ученого по фамилии Мальтус, который разработал теорию о перенаселении нашей планеты. Вы с ней знакомы?
— В общих чертах - она гласит, что человечество прирастает в геометрической прогрессии, а производство необходимых для него ресурсов – в арифметической. Поэтому рано или поздно мы столкнемся с дефицитом и последующими за ним кризисами самого разного типа.
— Замечательно, - кивнула Ирина и немного расслабилась. – Рада что мне не придется объяснить вам ее значение. Короче, Рома заявил что теперь собирается сделать все что может чтобы мы вошли в тот самый пресловутый «Золотой миллиард». Типа теперь мы должны выложиться на максимум чтобы начать зарабатывать большие деньги и, желательно, переехать в Европу или Америку. Я подумала, что это что-то вроде шутки – куда уж нам такое: я - обычный педагог, а он – целыми днями копается в Камазах. Мы не знаем языка, да и не обладаем сколько-нибудь значимой профессией. А он только покачал головой и заявил, что у него есть план…
— Дайте догадаюсь – он решил «вкатиться» в ИТ?
— Хуже, - криво усмехнулась она. – Он решил, что вкатиться должна я, просто потому что у меня мозги лучше работают. Типа года хватит, а он уж как-нибудь прокормит нас за это время.
— И что вы решили?
— Поначалу я приняла эту идею в штыки - ведь все уже налажено: дети меня любят, коллеги ценят, да и работа мне нравится. Плюс к этому мне не особо по душе программирование, и зачем менять любимое занятие на что-то подобное, не особо понятно. Деньги, конечно, там платят хорошие – но какой в них смысл, если я через полтора года выгорю и снова вернусь к тому, с чего начала. Но потом Рома меня уговорил, пообещав золотые горы и цветные небеса. Сдавшись под его напором, я взялась учиться и, к его чести, Рома действительно окружил меня всевозможной заботой: взял на себя домашние дела и заботу о ребенке, причем так, что я даже не слышала и не видела их обоих.
— Но вы все равно не выдержали и бросили?
— Как я уже говорила, это – не мое. Через месяц я прекратила заниматься, извинилась перед мужем, что не оправдала его надежд и предложила вернуть все как было. И знаете, что он мне ответил? Ни за что не догадаетесь… Что у него есть новый план, по которому не нужно становиться программистом – оказывается, в Германии, сейчас жуткая нехватка учителей и людей рабочих специальностей. Дело за малым – выучить язык и вперед. То есть предполагалось, что теперь, я буду вместо программирования учить немецкий, а потом мой педагогический опыт будет использован в качестве возможности для переезда. Я хотела сказать ему что план не очень-то и хорош, но промолчала.
— Почему?
— Да потому что этот чертяка, несмотря на рабочую профессию – крайне языкастый! Он кого угодно уговорит что белое – это черное и наоборот. Вот и я сдалась и пошла учиться. Правда потом началась пандемия и все накрылось медным тазом и мне пришлось выйти на работу, поскольку свою Рома потерял. Но он все равно продолжает создавать все новые и новые варианты как бы нам попасть в число «избранных» и выжить в будущей катастрофе. А меня это уже серьезно бесит! Муж только и делает что говорит об этом: о том, что индусы с двухтысячного года приросли на четыреста миллионов, а в Бангладеше и Египте народу хватит на две России, и так далее и тому подобное… Ужас просто!
— А вам просто хочется спокойно жить и ничего не менять?
— Вот именно.
— Но вы же понимаете, что он делает все это ради вас и ребенка?
— Понимаю, но мы же не всесильны – может хватит уже пытаться?
— Что же, в таком случае могу порекомендовать или откровенно поговорить с ним самостоятельно или привести сюда для того чтобы я могла организовать беседу на троих. Впрочем, есть и еще один способ, довольно быстрый и эффективный, правда последствия могут оказаться ничем не лучше чем то, что есть сейчас.
— О каком способе вы говорите?
— Подарите ему пару книжек Карла Маркса – он там в пух и прах разносит идеи Мальтуса. Я сама читала, поэтому знаю.
— А что за последствия?
— Он вполне может проникнуться новыми идеями и удариться в социализм. В этом нет ничего плохого, но, возможно, конкретно в вашем случае это будет лишним.
— Да я лучше буду жить с человеком, который будет петь Интернационал, нежели с тем, что уговаривает уехать за бугор в неизвестность, - рассмеялась она. - В какой, говорите, книге это все написано…?
Сделал я курс по Экселю для новичков случайно. Просто так получилось естественным путем.
Сдал небольшой проект одной компании, а в этом проекте по желанию заказчика был кусок на Excel-е.
В свободное время, думая, как бы комфортно развлечься, я просматривал наиболее интересные моменты из этой экселевской части проекта.
И вдруг мне подумалось. Если в основной части эклелевского файла убрать специфические моменты, макрос сделать простым и понятным, а форму сделать познавательно-развлекательной, да еще переделать документацию, то тогда... Получается почти готовый и вроде совсем неплохой "Курс по Экселю для новичков".
Подумал - сделал. Другого пути нет. Иначе, эта идея будет вертеться в голове, не давая покоя. Лучше идеи реализовывать, хотя бы для того, чтобы они отстали.
Курс готов!
А тут еще сообразительная девчушка Светлана мимо пробегала. Я ее поймал и попросил пройтись по пошагово по этому курсу, с целью понять: реально ли научиться Экселю по моему новому курсу.
Ну, вот, пока она занималась, я фиксировал все ее телодвижения в видео формате.
В итоге получилось пять видео, вот их краткие описания.
Часть 1 - Подготовка. Запуск.
Что такое Excel и кому он нужен.
Где взять Excel, как установить. Лучшие альтернативы Excel.
Как запустить Excel. Где находится запускаемый файл Excel.
Часть 2 - Тренировка. Таблица умножения.
Разминочная тренировка. Выполняется на листе "Тренировка".
Всякие простейшие упражнения для разогрева.
Часть 3 - Задача "Распределение фонда премий".
Часть 4 - Турнирная таблица шахматный турнир.
Часть 5 - VBA (Visual Basic для приложений).
Использование VBA для расчета коэффициента Бергера и итоговых мест
Если есть у вас интерес быстро усвоить Excel (или альтернативную электронную таблицу), то добро пожаловать сюда:
Там все материалы в интуитивно понятной форме.
Успехов!
###

Есть два типа людей: одни могут писать код, другие нет. Те, которые могут, делятся на еще на два: те, кто сразу видят решение, и те, кто итеративно работает.
Я в разработке с 2007 и всякого дерьма повидал. За сим есть, кой-чего сказать. Те, кто сразу видит решение, их меньшинство. По моему опыту, не более 10-15%. Остальные - только через итерации, либо фрагментарный подход.
Итак, поехали.
Комплексный подход. Программист сразу пишет примерно 80% кода, можно сказать, на одном дыхании. Далее - косметика, марафет, отладка. В 99% первоначальный код не меняется. Это, имхо, - либо врожденная способность, либо нечто приобретенное в сильно раннем детстве.
Итеративный подход. Программист пытается хоть как-то решить задачу. Криво, косо, но решить. Далее начинаются итерации, которых может быть очень много в засимости от сложности и погружения разработчика в предметную область. Это обычный подход среднестатистического работника, коих на рынке большинство. Имхо, таких 75-80%.
Фрагментарный подход. Программист пытается декомпозировать код, ибо сразу он его обработать не в силах. Далее идет пошаговая реализация различных его кусков, после чего попытка связать все воедино, что, как правило в 99.99%, приводит к значительным переработкам ранее готовых кусков кода. Это следствие неприспособленности мозга. Т.е. человек может писать код, но ему это очень сложно дается.
От себя еще добавлю, что современная реальность требует всех видов людей: каждому программисту найдется место, если он все-таки по итогу выдает рабочий код.
Страшная правда о цикле For в Python заключается в то, что цикла For в Python нет, под ним скрывается подлый самозванец. А именно цикл ForEach («для каждого»).
Классический цикл For во всех языках использует переменную-счётчик. Она принимает какое-то значение, часто 0, и потом обычно к ней прибавляется или отнимается на каждом шаге 1. Иногда другое число, иногда с переменной другие действия, но суть такая. И вводится эта переменная в первой строчке For, в ней же указывается, что с ней должно происходить и до каких пор продолжаться. В Си-подобных языках будет примерно так:

где print — как в Python, вывод текста в консоль. В каждом языке этот вывод свой. Тут выведутся числа от 0 до 7. Код можно расшифровать так: для i от 0 и пока оно меньше 8 прибавлять к i 1 и выводить его.
ForEach тоже использует переменную, но он всегда перебирает некую последовательность. В си-подобных языках будет примерно так

slovo — переменная, которая содержит строку, а bukva — переменная, в которую ForEach загоняет по очереди каждую строку. То есть можно расшифровать «для каждой буквы в слове вывести букву»
В Python циклу For, который на самом деле ForEach, можно дать строку — он переберёт все буквы. Можно дать файл — он переберёт его построчно. А можно дать последовательность чисел от 0 до 7 и он переберёт и её. В переменную, которую использует ForEach, записываются не индексы, не номера. Она, как бы обозначает собой каждый элемент этой последовательности. Строку файла, букву.
Настоящему For можно дать только первое число, по какому правилу генерировать каждое следующее и когда это всё закончится. Вот и получается, что в Python под маской For скрывается ForEach:

А вот как нужно было бы писать код для вывода того же слова по буквам, если бы For в Python был настоящим For:

То есть и обычным For можно перебирать массивы/списки, строки и т.д. Но это работает несколько по-другому.
И напоследок вернёмся к первому примеру, где выводятся числа от 0 до 7. Как это делается в Python с помощью его самозванного For?

Смотрите, тут тоже вроде бы переменная-счётчик i. Можно и называть её счётчиком, но тут происходит другое. Функция range() вернёт последовательность чисел 0, 1, 2, 3, 4, 5, 6, 7. То есть это примерно то же самое, что:

Тут, опять же, мы не прибавляем к числу из переменной что-то и записываем обратно. Тут For получает готовую последовательность 0, 1, 2... и в переменную по очереди записываются все её части.
И сразу для профессиональных программистов, которые не поймут, на какую я аудиторию пишу, и начнут спрашивать, зачем это писать, ведь всем понятно — моей аудитории непонятно :-). На начинающих ориентируюсь. Причём на таких, которым куча бесплатных и подробных курсов непонятна. С которыми, если вы попробуете их сами обучить программированию, будет так

Так что кто это не прочитал и всё равно написал, тот кукушечка.
Ссылочки на меня:
@vrom1990
https://www.youtube.com/c/ВячеславРоманьков
ССЫЛКА НА ТЕЛЕГРАМ-КАНАЛ ДЛЯ ПРИВЛЕЧЕНИЯ МИНУСОВ
https://t.me/vrom1990pb


00:00 Вступление
00:16 Типаалиса код
01:05 Типаалиса блоксхема
02:14 Типаалиса код без elif
05:30 elif в блок-схемах компактно
Материалы из видео https://github.com/vrom1990/pythondlyatupyh/tree/main/011.4e...
Ссылочки на меня:
@vrom1990

00:00 Во я лошара
00:11 Вступление
01:28 Синяя изолента и WD-40
03:40 Минимум из трёх чисел
07:15 Проверка деления на ноль
10:40 Деление на ноль по-другому
12:20 Тройная вложенность ветвлений
18:44 Завершение
Материалы, примеры кода и блок-схемы: https://github.com/vrom1990/pythondlyatupyh/tree/main/011
Ссылочки на меня:
@vrom1990

Ссылочки на меня:
@vrom1990