L4rover

L4rover

Пикабушник
Дата рождения: 01 марта 1986
поставил 155514 плюсов и 19025 минусов
отредактировал 5 постов
проголосовал за 15 редактирований
Награды:
5 лет на Пикабу самый сохраняемый пост недели лучший пост недели лучший длиннопост недели самый сохраняемый пост недели За участие в поздравительном видео более 1000 подписчиков
192К рейтинг 3201 подписчик 36 подписок 56 постов 26 в горячем

Ответ на пост «[ВАЖНО] Особый порядок размещения постов и комментариев в новостных, политических и остросоциальных постах»

Ответ на пост «[ВАЖНО] Особый порядок размещения постов и комментариев в новостных, политических и остросоциальных постах»

Как войти в IT после 30, мой путь от офисного планктона до Middle Java разработчика в Сбербанке

Как войти в IT после 30, мой путь от офисного планктона до Middle Java разработчика в Сбербанке IT, Обучение, Программист, Программирование, Разработка, Интернет, Собеседование, Java, Сбербанк, Работа, Длиннопост

Предыстория

Начну с того, что получил популярное в нулевых образование "экономиста", после чего работал там сям от кредитного менеджера, до старшего специалиста по перекладыванию бумаг в офисе. При этом компьютеры и техника меня увлекали с раннего детства, 486 появился у меня ещё в 2000 году, где я нещадно удалял разные файлы в MS-DOS в ходе экспериментов по методу тыка. Но компуктеры, это как известно, баловство, а профессия бухгалтера - это серьёзно.

поэтому три года назад, перегорев от творческой работы по раскладыванию пасьянса "косынка", я решил что-то в жизни поменять. Начал с изучения английского. Не стану превращать пост в подробное описание этого процесса, тем более есть уже замечательный пост от @L4rever,  на эту тему. Добавлю лишь, что для пополнения словарного запаса мне очень зашёл сайт\приложение memrise который помог мне дотянуть свой словарик до 5000 слов примерно за год в бесплатном режиме. Хоть изучение английского и не имело решающего значения в моей дальнейшей судьбе, но весьма помогло.

Глава 1. Избавление от обязательств и накопление финансовой подушки

Как и у большинства людей старше 25 у меня была ипотека, благо не такая большая, всего на 1,5 миллиона (хоть какие-то преимущества жизни в пригороде провинциального города).

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

Как войти в IT после 30, мой путь от офисного планктона до Middle Java разработчика в Сбербанке IT, Обучение, Программист, Программирование, Разработка, Интернет, Собеседование, Java, Сбербанк, Работа, Длиннопост

Интернет рассказал мне о фрилансеров, различных специальностей, всяких копирайтерах, smm менеджерах и так далее. С копирайтингом у меня не особо получилось, за 50 заказов и около 30 часов работы я получил 1500 рублей. Писать тексты было скучно, бесконечные поправки и конкуренция в виде армии школьников за заказ стоимостью 35 рублей, 84 копейки.

Поэтому было решено попробовать второй путь. И тут мне повезло уже на второй день поисков на зарубежной бирже я смог найти заказчика, которому нужно было вести группы в ВК и Facebook для нескольких брендов. Работы было не сильно много, всего на пару часов в день. Платили тоже не супер, 15 тысяч, однако это на 13 500 больше чем зарплата копирайтера, поэтому я приступил к работе.

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

1) Устроится туда самому.
2) Устроить туда жену, со знанием языка на уровне летспик фромахарт используя хитроумное устройство, в виде наушника и меня с микрофоном.

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

Но как не может долго длится волна постов на пикабу, так и эффективные менеджеры не могли долго смотреть на зарплату выше рынка. В итоге через год наш коллектив был распущен, мы с женой остались без работы, но и без ипотеки и даже с финансовой подушкой на пол года. Обдумав все варианты дальнейшей жизни я решил, что:

Как войти в IT после 30, мой путь от офисного планктона до Middle Java разработчика в Сбербанке IT, Обучение, Программист, Программирование, Разработка, Интернет, Собеседование, Java, Сбербанк, Работа, Длиннопост


Глава 2. Куда пойти

Есть люди способные учиться чему-то после работы или в выходные. Они могут потратить свой отпуск на курсы или экзамены, а зимние каникулы на собственные проекты. Я по хорошему завидовал таким людям, но прекрасно осознавал, что я ленивая жопа с низкой самодисциплиной и вот это вот всё мне не подходит. Мне нужны были какие-то курсы, желательно оффлайн, но обязательно с другими людьми рядом, с этим вопросом я вышел в интернет...

Всякие скилбоксы и яндекс.практикумы были откинуты мною за непонятные перспективы трудоустройства, к тому же,  в конечном итоге, там ты всё равно предоставлен самому себе. И спустя пару дней чтения передо мной осталось два варианта хоть с какими-то гарантиями в нахождении работы - школа программирования Elbrus в Москве, стоимостью около 150 тысяч, длительностью 3 месяца и направлением Front-end (грубо говоря сайтики пилить) и Школа 21 от Сбербанка в Казани, бесплатная, длительностью 2-3 года и любым направлением. Так как я не очень люблю Front-end и очень люблю экономить 150 тысяч, решил остановится на втором варианте, тем более Казань это соседний регион от моего места жительства.

UPD. Сейчас многие крупные компании также открыли свои школы, видел такие у Яндекса и ВТБ, поэтому выбор стал шире.

Глава 3. Школа 21

Как войти в IT после 30, мой путь от офисного планктона до Middle Java разработчика в Сбербанке IT, Обучение, Программист, Программирование, Разработка, Интернет, Собеседование, Java, Сбербанк, Работа, Длиннопост

Здание школы в Казани

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

Изначально школа построена на системе обучения французской школы Ecole 42, филиалы которой сейчас открываются по всему миру, от Бразилии и США до Кореи и России. В школе нет учителей, всё построено на процессе самообучения и работе в группе таких же учеников. Вам даётся задание, вы его выполняете с помощью гугла и какого-то бубна, после чего оно проверяется системой и другими учениками. Да, к подобной системе обучения возникает много вопросов, но самое главное чему она учит - умение гуглить и работать в команде, что возможно и правда не менее важно, чем непосредственно технические навыки, которые ты бы мог получить от учителя напрямую и без ошибок.

Так как школа бесплатная и фактически никаких ограничений по возрасту и образованию к поступающим не предъявляет (единственное это возраст 18+), желающих поступить приходит больше, чем существующее количество мест. Поэтому в качестве вступительных экзаменов там есть "Бассейны". Но перед тем как попасть на них нужно пройти две игры на сайте, на память и логику\алгоритмы, после чего записать видеоинтервью с коротким рассказом о себе и ждать приглашения на испытание бассейном.

Как войти в IT после 30, мой путь от офисного планктона до Middle Java разработчика в Сбербанке IT, Обучение, Программист, Программирование, Разработка, Интернет, Собеседование, Java, Сбербанк, Работа, Длиннопост

Нет, плавательные шапочки можно отложить, это не совсем то

Они представляют собой месячное, пробное обучение, где каждый день тебе даётся несколько задач, решение которых ты должен предоставить через день, однако учитывая, что задачи дают ежедневно, фактически ты ограничен одним днём. После чего выполнение таких заданий проверяют два случайным образом выбранных ученика и внутренняя система (мулиннет). Каждую неделю проходит экзамен, по темам, которые ты должен был изучить за эту неделю и финальный экзамен на 28 день обучения.

Сразу скажу, что это довольно тяжело. Как с точки зрения физической - сидеть по 8-12 часов (хотя ограничений нет, можешь и 2 часа поработать, но шансы тогда твои будут невелики) изучая\пробуя решить задачу, так и морально, каждый день ты общаешься с десятком новых незнакомых людей, с кем-то более тесно, ведь целый день сидишь рядом. Поэтому обычно из 500-600 абитуриентов, до финального экзамена доплывают (поэтому и бассейн) только 30-40%.

Как войти в IT после 30, мой путь от офисного планктона до Middle Java разработчика в Сбербанке IT, Обучение, Программист, Программирование, Разработка, Интернет, Собеседование, Java, Сбербанк, Работа, Длиннопост

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

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

В мае мы приступили к обучению, при чём дистанционно из-за ограничений в массовых собраниях, что было неслыханно для школы 21 (Кстати кампус в Москве уже на тот момент работал два года) и добавило сложностей к обучению, ведь я опять остался на самоконтроле и без друзей за соседними компами. Благо в сентябре нам разрешили вернутся в Кампус и надев маски, перчатки, соблюдая дистанцию метр мы начали учится сообща, что было всё же намного лучше, чем ничего. Лучшей мотивацией для меня стала работа в команде, желание не подставить свою команду, да и в целом, коллективная работа более эффективная, особенно когда сталкиваешься с проблемой, которую не можешь решить несколько часов.

Схема обучения построена с элементами геймификации, ты прокачиваешься и зарабатываешь очки опыта и уровни через успешную защиту рабочих проектов. Для того, чтобы выйти на первую стажировку нужен 9 уровень, для окончания школы на первом этапе - 16, либо можно выбрать длинную программу, своего рода магистратуру и дойти до 21 уровня.

Для закрытия 9 уровня мне потребовался ровно год, я это сделал в мае 2021 и начал искать место стажировки, которая кстати в 99% случаев оплачиваемая.

Глава 4. Стажировка и работа

Как войти в IT после 30, мой путь от офисного планктона до Middle Java разработчика в Сбербанке IT, Обучение, Программист, Программирование, Разработка, Интернет, Собеседование, Java, Сбербанк, Работа, Длиннопост

Офис какой-то ИТ-компании


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

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

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

Как войти в IT после 30, мой путь от офисного планктона до Middle Java разработчика в Сбербанке IT, Обучение, Программист, Программирование, Разработка, Интернет, Собеседование, Java, Сбербанк, Работа, Длиннопост

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

Мне опять же повезло, я прошел 4 собеседования в различные команды, по итогу получил 1 предложение на стажировку и 1 сразу в штат. Так не мудрствуя лукаво, в Июне я стал Junior Java разработчиком в Сбере в городе Иннополис (недалеко от Казани). Про город кстати отдельная тема, достойная целого поста, но можно просто почитать посты @veronichka.pb, где она подробно рассказывает о городе и процессе переезда в него.

Как войти в IT после 30, мой путь от офисного планктона до Middle Java разработчика в Сбербанке IT, Обучение, Программист, Программирование, Разработка, Интернет, Собеседование, Java, Сбербанк, Работа, Длиннопост

Ну а спустя пол года, неделю назад, получил повышение (сейчас тру-погроммисты будут меня ругать, так как настоящий мидл это человек с опытом 2-3 года. И честно сказать будут правы, я считаю что получил повышение авансом, но в конце концов кто мы такие чтобы спорить с начальством)))

Касательно работы именно в Сбере, я очень доволен тем, что имею. Особенно сравнивая свой текущий опыт с отношением работодателей в не-айтишном прошлом, даже не беря в расчёт зарплату, а откинуть такой весомый аргумент довольно сложно =D. Коллектив поддерживает меня, несмотря на пробелы в моих знаниях и более низкую эффективность, отпроситься с работы для каких-то дел очень просто, а при необходимости легко можно работать удаленно. Ну и весьма неплохо иметь возможность переключится на другой проект, если текущий для тебя станет скучным, а проектов здесь огромное количество.

Кстати одним из главных аргументов, почему я выбрал именно эту компанию является отсутствие постоянно горящих дедлайнов, из-за чего многие перегорают, как например @OWIII, за вхождением в IT которого я внимательно следил...именно поэтому решил написать пост об этом сейчас, уже пройдя этот путь, а не в процессе его.

В конце хотел бы сказать, что ничего нереального во вхождение в ИТ-сферу нет, да вам будет легче, если вам 20 лет, нет детей и ипотеки, но рядом со мной прошёл путь человек с двумя детьми, ипотекой и 40 годами за плечами, который тоже сейчас работает разработчиком. И это не какая-то единичная ситуация, таких людей буквально сотни, даже на пикабу @vigerf, почитав мои комментарии решился начать свой путь, надеюсь он  также поможет ответить на вопросы о школе в комментариях))

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

Показать полностью 8

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана

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

Часть №1, Интерфейс, простые действия.
Часть №2, Запись действий, циклы, переменные, условия.

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Начнём с подпрограмм, что это и зачем они нужны.

Подпрограмма это список действий, который будет часто повторяться в вашей программе, но не обязательно подряд. Например, мы используем такие действия (пока напишем в псевдокоде):

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

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

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

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

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

SUB(имяФункции) - определяет начало функции, общепринято все функции выносить на самый верх программы, либо выносить в отдельный файл, но это необязательно и больше для красоты, расскажу об этом в одном из следующих постов.

Имя функции определяете вы сами, старайтесь задать такое, чтобы вам было понятно, что делает эта функция, например ставит лайки в вк - VKLikes, ищет в эксель нужную строку - ExcelFindString и т.д.


END_SUB - соответственно обозначает конец вашей подпрограммы(функции).


Теперь вы можете в любой момент вызвать вашу функцию таким образом - имяФункции()


Почему это удобно? Представим, что вам потребовалось ставить лайк не на каждый пост, а на каждый второй, теперь вам придется проходить по всей вашей программе, искать каждый момент где вы ставите лайк и менять там, добавлять ещё одну прокрутку, если же это у вас выведено в отдельную функцию, вам достаточно поменять это один раз в одном месте. Удобно? а то! Ну и отдельный плюс - сокращение вашего кода. Совсем недавно я изменил свой скрипт, изначально я писал его просто как список действий, без подпрограмм, это заняло у меня 2200 строк, после *рефакторинга скрипт стал занимать 700.


*рефакторинг - процесс улучшения кода без внесения новых возможностей.


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

Вот участок моей реальной программы:

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Да, ваш скрипт может целиком выглядеть как вызов различных функций, это нормально и даже очень хорошо. Я передаю в функцию TWPersonalPost переменную, которая имеет значение от 1 до 10, в зависимости от этого, функция открывает тот лист Excel с которого мне нужно скопировать информацию:

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Тогда в названии вашей программы нужно указать переменную, например SUB(VKlikes, $name)

и внутри подпрограммы с помощью команд IF или SWITCH сделать различные действия в зависимости от значения переменной.


Анализ экрана

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Анализ экрана позволяет добавить в вашу программу ту самую вариативность исполнения, программа будет менять исполнение действий в зависимости от происходящего на экране (вот мы и добрались до создания собственного искусственного интеллекта...ну почти)


для этого clickermann представляет нам множество функций, главной из которой является GETSCREEN.


GETSCREEN - делает снимок экрана и помещает его в буфер для анализа, буквально это print screen. Мы можем сделать как снимок всего экрана, так и снимок определенной области, зачем? Ну это немного ускоряет выполнение скрипта, ведь анализировать часть проще чем весь экран. Во вторых на всем экране могут быть похожие элементы или пиксели такого же цвета, которые помешают нам.  Для этого необходимо в скобочках указать координаты двух углов, верхнего правого и нижнего левого. Например так GETSCREEN(649, 473, 883, 631).

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

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


Хорошо, мы сохранили изображение, как его проанализировать?


IF_PIXEL_IN - ищет пиксель заданного цвета в снимке, и возвращает его координаты. Обязательно нужно указать координаты (если вы сделали снимок области, указываем такие же координаты, что и для GETSCREEN) и цвет искомого пикселя. В коде это выглядит так:

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

$_return1 \ $_return2 - переменные созданные самой программой, в них лежат координаты (по Х и по Y) для первого найденного пикселя такого цвета в этом участке изображения. Мы можем проделать любые действия с ними, например нажать левой\правой кнопкой мыши, остановить\продолжить исполнение программы и так далее. Для этого нужно поставить эти действия между IF_PIXEL_IN и END_IF которое обозначает конец условия, также как в команде IF.


Откуда мы узнали какой цвет пикселя нам нужно искать? Для этого достаточно навести на нужное место и посмотреть в окно определения цвета clickermann.

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Оранжевым изобразил указатель мыши в момент создания этого снимка.


Но нужно быть осторожным, многие сайты меняют цвета кнопок при наведении на них, так и здесь на пикабу, кнопка "картинка" не меняет цвет при наведении, а вот видео и текст меняют и при наведении на них мы увидим цвет:

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Как видно, при наведении кнопка побледнела, в отличии от "картинка", кстати @SupportTech, а не баг ли это?))

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

Для этого мы можем пойти простым путём, делаем скриншот экрана одним из следующих способов, в зависимости от вашего просветления:

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост


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

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

С помощью этой функции, также можно проверять, открыто ли нужное окно у вас, или ваша программа начинает творить фигню. Например, мы знаем, что Excel выглядит так:

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

наверху у него всегда цвет пикселя

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Теперь мы можем создать проверку, например мы работаем в Excel и браузере, соответственно в браузере сверху нет цвета пикселя Excel, тогда если мы находим такой пиксель - выводим оповещение:

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

SOUND("имя_файла.wav") - воспроизводит звуковой файл в ваши динамики, давая вам знать о проблеме или например успешном окончании программы. Только .wav файлы. Файл должен находиться в папке с программой clickerman.


Теперь программа позовёт вас, если что-то пойдёт не так и будет ждать. Как вариант можно в действиях указать нажатие левой кнопкой мыши по значку Excel, для его раскрытия и потом ещё одну такую же проверку, в 90% случаев именно из-за лишнего закрытия-открытия окна что-то идёт не так.


Мы разобрали случай, когда цвет пикселя не повторяется на экране, то есть у нас есть только одна кнопка "текст" например, но что, если у нас множество кнопок одного цвета, и цена ошибки слишком высока, как то так:

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Тогда следует использовать анализ экрана по совпадению картинки, а поможет нам функция

IF_PICTURE_IN - ищет образец картинки в сохраненном участке изображения. Только файлы bmp формата, пример:

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Чтобы повысить вероятность нахождения, можно указать % точности совпадения. Например так:

IF_PICTURE_IN (20,20, 300, 300, "somefile.bmp", 0, 90) тогда, 90% совпадения будет достаточно для запуска действий внутри IF.


Как получить картинку формата .bmp?

Есть два способа, самый точный это командой SCREENSHOTEX - сохраняет участок экрана как отдельный файл в папке с программой.

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

и второй способ, включаем режим лупы

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Теперь смотрим на окно лупы в clickermann и наводим на нужное место, нажимаем ALT + G

и скриншот указанный на экране лупы будет сохранен в папке программы внутри папки screens.

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Теперь это изображение мы можем использовать для поиска его при исполнении скрипта.


Мы рассмотрели две основные функции для анализа экрана, по пикселю и по изображению. Вы можете ознакомиться с остальными функциями в справке программы, возможно найдете функцию которая больше подходит вам для исполнения вашего скрипта, но эти две на 95% покрывают все потребности.

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост
Показать полностью 22

Автоматизация однотипных действий, ч.2

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

Ссылка на первую часть

А теперь продолжим изучать создание сценариев действий в Clickermann.

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

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

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

Для этого есть следующие комбинации:
Alt + A – Запуск сценария;

Alt + A – Пауза сценария (после его запуска);

Alt + S – Полная остановка;

Alt + R – Начать запись сценария;

Перед созданием сценария, вам необходимо подумать, при каком окне и размерах окна, будет стартовать ваша программа. Например если выработаете в сочетании окон Word, Chrome, Excel и запишите свой сценарий при таком расположении значков:

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

То при таком, она уже работать не будет(если не внедрять проверку с анализом экрана, но об этом позже):

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

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

После того как вы определитесь с этим, следует также учесть эти стартовые порядки и размеры при каждом следующем запуске скрипта, например сначала вы открываете все файлы и только потом запускаете скрипт.

Немаловажный момент касается цикличности исполнения. Например если ваш скрипт подразумевает повторы, условно:

1) Открыть браузер
2) Нажать на закладку с адресом сайта
3) Скопировать информацию
4) Занести в таблицу эксель
5) Перейти к п.1

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

1) Открыть браузер

2) Нажать на закладку с адресом сайта

3) Скопировать информацию

3.5) Закрыть браузер

4) Занести в таблицу эксель

5) Перейти к п.1

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

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

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

Тогда у вас будет достаточно времени, чтобы подойти и отключить скрипт.


Теперь о записи действий, у неё есть неоспоримый плюс - скорость и простота, достаточно включить запись действий (Alt + R) и один раз в ручную совершить эти действия, после чего остановить запись. Тут следует учесть, что запись идёт непрерывно по всем движениям мышки, я записал 10-ти секундные движения, у меня получилось следующее:

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

Как вы понимаете отредактировать такое будет невозможно, но если вам не нужны просто движения мышкой без кликов и действий, то открываем настройки и в разделе "Интерпретатор" убираем галочку "Записывать движения мыши" и жмём "применить".

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

Теперь наш скрипт получился намного короче, но разобраться в нём всё ещё довольно сложно:

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

Также запись не позволяет вам использовать такие функции как анализ экрана, анализ текста скопированного в буфер, какие либо вариации в сценарии в зависимости от происходящего.
Поэтому данный способ идеально подходит для коротких, не вариативных действий. Он позволяет без помощи редактора и соответственно без знания команд производить простые манипуляции.

Далее мы начнём углубляться в настоящее программирование своих сценариев.

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

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

Вероятно так (напишем псевдокодом):

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

Работает? Да, но выглядит не очень, трудно читать и понимать.

Чтобы внести порядок в наш скрипт, мы будет использовать переменные и циклы.

Переменная - своего рода корзина, куда мы помещаем значение. Это может быть слово, буква, но чаще всего число. С этим числом можно производить арифметические действия, сравнивать его с чем либо и на основе этого, поведение нашего скрипта будет изменяться.

Цикл - выделение участка кода в отдельный блок, с целью его многократного использования.


Допустим, мы точно знаем, что нам каждый день приходит 5 писем, тогда мы можем сделать так:

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

ВАЖНО: общепринято выделять внутренности цикла отступом для пущей красоты и удобства понимания. для этого выделяем участок кода внутри цикла и нажимаем TAB или пробел. Вуаля, вы восхитительны.


У нас появляются новые команды:

DEFINE - объявление \ создание переменной, в скобочках указываем её название и через запятую значение, название всегда начинается со значка доллара, то есть правильно называть переменные $counter, $x, $letter, неправильно - counter, _z, $переменная.


WHILE - команда открывающая цикл, в скобочках пишем логическое выражение, например сравниваем переменную с другим числом. Сравнить можно так:

== "равно"

>= "Больше или равно"

<= "Меньше или равно"

> "Больше"

< "Меньше"

пока условие будет выполняться, блок кода внутри цикла будет исполняться, на нашем примере он исполнится 5 раз. Давайте отследим логическую цепочку, в первый раз переменная VAR заходит в проверку цикла со значением 0.

0 меньше 5? Да! - выполняем код
Затем мы встречаем команду:


INC - увеличить значение переменной, в скобочках указываем какую переменную и на сколько увеличивать ($var, 1). Поэтому наша переменная увеличивается на 1 и становится один. Без увеличения переменной мы получим бесконечный цикл и бесконечное повторение действий внутри цикла.

после чего встречаем новую команду:


END_CYC - противоположность команде while - закрывает цикл. таким образом каждый раз при соответствии условий будет исполняться всё что между этими двумя командами.

Вернёмся к нашей переменной var, она увеличилась на 1 и снова отправляется на проверку соответствия условию.

1 меньше 5? Да! - выполняем код. Увеличиваем переменную до 2.

2 меньше 5? Да! - выполняем код. Увеличиваем переменную до 3.

3 меньше 5? Да! - выполняем код. Увеличиваем переменную до 4.

4 меньше 5? Да! - выполняем код. Увеличиваем переменную до 5.

5 меньше 5? Нет! - теперь цикл больше не будет исполняться, действие программы пойдет к первой команде после цикла (ниже чем END_CYC ).

Таким образом наш код стал меньше, красивее и легче в редактировании, ваш босс увидел как быстро вы принимаете задания и стал давать вам 10 заданий, соответственно приходит 10 писем, в прошлом коде вам бы пришлось копировать и вставлять, считать сколько раз вы уже вставили, не лишнего ли теперь? А сейчас достаточно поменять условие на WHILE($var < 10) и вот, всё будет точно работать 10 раз.

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

Это вы, сравниваете количество ваших новых задач на столе по высоте пальца

Хорошо, а что на счёт вариативности кода? Если дальнейшие действия зависят от воли случая?
Для этого у нас есть операторы IF и SWITCH

IF - оператор сравнения, такое мы уже с вами видели в скобочках цикла WHILE. Оператор IF проверяет соответствие условию и если оно верно, выполняет действия в своем блоке кода.


Рассмотрим пример:

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

Мы создаем переменную, кладем в неё значение 2. Оператор IF проверяет, равна ли var двойке, если да воспроизведется звуковой файл, если нет, пропустит эту строку. Конец блока кода оператора IF определяется оператором END_IF


Хорошо, мы разобрались с одним вариантом, но как быть если у нас два варианта, разных действий. Для этого применяется конструкция IF - ELSE

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

Теперь оператор IF проверяет на соответствие переменной двойке, если она равна 2, воспроизведется файл end.wav, при любом другом значении переменной var будет воспроизведен файл start.wav

Бывают случаи, когда нам мало двух условий, например вы публикуете фотографии в 10 социальных сетях, под каждую социальную сеть, вы подготовили разные фотографии и положили их на 10-ти разных листах в документе excel, как сделать так, чтобы в нужную социальную сеть, попадало нужное фото?

SWITCH - оператор множественного выбора. В данном примере вы проверяем переменную post в зависимости от её значения от 1 до 10 открывается соответствующая страница документа. Данный оператор содержит в себе операторы CASE и END_SWITCH. Оператор Case() содержит в скобках значение переменной, при которой именно его действия будут выполнятся,своего рода это дверь, которая открывается тогда, когда переменная(ключ) подходит к его условию(замку) ну и END_SWITCH заканчивает блок кода выбора действий.

Автоматизация однотипных действий, ч.2 Программирование, Автоматизация, Видео, Длиннопост

Также можно заметить оператор DEFAULT который срабатывает, если переменная $post содержит в себе значение не подходящее ни под один CASE.


Таким образом, применяя IF и SWITCH вы можете создать по настоящему вариативную программу и уже начинать называть себя программистом =)

В следующем посте, расскажу о подпрограммах и удобстве которое они дают, как производить анализ экрана и на основе этого выбирать действия. А пока небольшое домашнее задание, создайте скрипт который в готовый файл excel пишет числа по порядку и скрывает строку.

Работать это должно примерно так:

Для этого нам потребуется функция:

KEYSTRING - имитирует ввод с клавиатуры переданного ему значения. Можно вводить числа, например KEYSTRING("2") или строки KEYSTRING("Hello World") или переменные KEYSTRING($var) обратите внимание, в случае переменной кавычки внутри скобок не нужны. Ваши решения можете писать тут же в комментариях и подсмотреть решения других, если что-то не получается, но настоятельно рекомендую не делать этого сразу, а попытаться решить самостоятельно.

Показать полностью 14 1

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования

Привет, наверняка многим знакома проблема однотипных действий за компьютером, особенно на офисных работах. Заполнение каких-то данных в таблицу, размещение постов в социальных сетях, поиск в базе данных и заполнение отчетов.

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

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост

И если про автоматизацию работы в эксель уже написано немало постов, то что делать тем, кто работает вне этой замечательной программы? Для этого я хотел бы создать серию постов, в которой попробую научить вас автоматизировать работу с помощью программы clikermann

Почему она?
- Она бесплатная. Совсем. Никаких пробных версий, никаких реклам в самой программе,  создана на чистом энтузиазме и добровольных пожертвованиях автору.
- Интерфейс максимально прост, как и язык написания сценариев.
- Есть возможность записи действий, можно полностью обойтись без редактирования или создания с нуля своего скрипта.

- Встроенный редактор.
- Не требуются права администратора для установки, скачал - запустил.

- Русскоязычная справка по программе и русскоязычное сообщество.

Что можно с помощью неё делать?
Лично я автоматизировал работу с 1С, SAP, сайтами, тем же экселем, публикации в социальных сетях. Так же можно запрограммировать действия в играх, реакцию на происходящее на экране, набор текста, буквально что угодно.

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост

Всего лишь иконка этой программы


В первой части уроков познакомимся с интерфейсом программы:

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост

Так как мы пытаемся сделать все как можно проще, расскажу только про самые необходимые кнопки. Создадим свой первый скрипт и попробуем написать какой-нибудь простой скрипт, своего рода Hello world от мира автокликинга.

Нажимаем на кнопку создания скрипта (1) и кнопку редактора (3).

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост

Интерфейс редактора


Нажимаем на сохранить как (4) выбираем место, где он будет храниться (желательно оставить его в папке с программой) и имя сценария. Сама программа и скрипты будут весить совсем немного, 640 КБ действительно хватит всем, для скриптов уж точно, поэтому можно за это не переживать.

Создадим скрипт который будет брать адрес страницы из таблицы эксель, открывать его в браузере и так несколько раз. Вот что у нас получилось:


Ну и собственно, как выглядит скрипт, который делает всю эту работу:

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост

Мы используем несколько команд:

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

LCLICK - Кликает левой кнопкой мыши по указанным в скобках координатам, необходимости прописывать их в ручную нет, просто наводите мышь туда, куда хотите кликнуть и нажимаете комбинацию ALT + Q . Команда с координатами вставляется в скрипт автоматически. Либо если хотите вручную их поправить, опять же наводим мышь на желаемое расположение и смотрим сюда:

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост


RCLICK - Соответственно всё тоже самое, только правой кнопкой мыши, вызывается тем же набором клавиш, просто нужно заменить в скрипте L на R.


Шаблоны
копирования и вставки (CTRL + C, CTRL +V) они уже есть в разделе шаблоны, нет необходимости их прописывать самому, просто выбираем подходящий.

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост


KEYPRESS
- В том случае, если нам нужно нажать какую либо кнопку, выбираем эту команду, кстати чтобы не прописывать в ручную, эту команду тоже можно выбрать из списка команд:

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост


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

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

Показать полностью 8 1

Ответ на пост «Когда попытался исправить провалы в образовании...»

Ответ на пост «Когда попытался исправить провалы в образовании...» Шедевр, Онлайн, Урок, Школа, Английский язык, Иностранные языки, Ответ на пост, Длиннопост, Обучение, Онлайн-курсы

Ссылка на главный канал

Также смотрите различные плейлисты канала – Английский язык по плейлистам (ссылки также есть на главной странице канала):

1) ОРАНЖЕВЫЙ ПЛЕЙЛИСТ - АНГЛИЙСКИЙ ЯЗЫК ДО АВТОМАТИЗМА (уроки английского языка с нуля до Advanced) – самый популярный курс, для всех уровней.

2) ЗОЛОТОЙ ПЛЕЙЛИСТ – БЕСПЛАТНЫЙ РЕПЕТИТОР (самый легкий и удобный если учим английский с самого нуля и нужно максимально подробно)


3) САПФИРОВЫЙ ПЛЕЙЛИСТ – АНГЛИЙСКИЙ ЯЗЫК ПО ФОРМУЛАМ – (улучшенный плейлист с акцентом на словарный запас и произношение)


4) ИЗУМРУДНЫЙ (универсальный экспресс курс английского языка по уровням – сжато и эффективно)


5) СИНИЙ - ПРАКТИЧЕСКАЯ ГРАММАТИКА АНГЛИЙСКОГО ЯЗЫКА с НУЛЯ (интенсивный курс для всех уровней, чтобы освежить в памяти знания)


6) ЗЕЛЕНЫЙ – АНГЛИЙСКИЙ ЯЗЫК ДО ПОЛНОГО АВТОМАТИЗМА (уроки английского языка для начинающих – дополнительная практика, подробный плейлист с самого начала, очень хорошую базу дает)


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

По возрастанию сложности плейлисты:

1.золотой
2.сапфировый, изумрудный (начало), зелёный
3.оранжевый (1-ая часть)
4.синий (1-ая часть)
5.сапфировый (продолжение), изумрудный (продолжение), синий (2-ая часть) и оранжевый (2-ая часть)

Многие начинают с оранжевого и как дополнительную практику используют другие плейлисты чтобы было легче дальше.

Лично мне среди всех каналов данной тематики, его уроки подошли лучше всего, также моё почтение его работоспособности, зачастую видео длятся 1-2 часа и каждый день появляется по 1-2 новых видео.

Показать полностью 1

Реклама

@moderator, мало того что сама контора не иначе как секта так ещё и на бабки разводят

Реклама Реклама, Жалоба
Показать полностью 1

Пригласительное

Пригласительное
Отличная работа, все прочитано!