Я – программист

Я – программист

KOPYL



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

в ~13-14 лет у меня появился интернет и я много читал статей про технологии и компьютеры, когда или одногодки листали мемчики.

Потом в 16-17 я начал увлекаться гаджетами и проявлялись зачатки дизайнера.

17-18 лет мои первые проекты в дизайне и уже в 19 моя первая работа на $1000 в Швейцарском банке.

в 19-20 мне начала приглядываться автоматизация в компьютерах но я не придал этому значения.

В 22 года я уже имел за плечами проекты в $45 в час и $4500 за 3.5 недели. Имел хорошие проекты, крутые отзывы и уже несколько лет работал только с англоязычными заказчиками (были редкие исключения, может 3-4 месяца поработал с «нашими»

В 21 год я занимался поисками проектов через массовые Email-рассылки. Для этого приходилось нанимать разработчиков для написания программ и разбираться немножко в администрировании серверов, чтобы управлять этими программами (это были обычные консольные программы). Еще в 20 заказывал программы для накрутки лайков, но то такое.

в 22 года я получил Оффер (https://www.dropbox.com/s/n19krl18t3qrvqt/Agreement%20Mr.Oleh.pdf?dl=0) в Таиланд на $4000 в месяц с оплатой переплёта и жилья на месяц (оно было получше чем многие отели в Киеве. Бассейн под открытым небом, бильярд, спорт зал и сауна были включены). Поработал там 3 недели, не сошлись с CTO – сказал что я плохой специалист, хотя продуктового Менеджера компании я более чем устраивал.

Важно: В Таиланде я закорешился с лид-дизайнером и мы с ним часто тусовались у меня. Он ещё иногда приносил свою приставку и мы играли. Мне понравилась Borderlands.

Потом я её дома прошёл на макбуке.

Потом я получил ещё один оффер (https://t.me/c/1294507835/2) на $4000 в Филиппины с оплатой жилья, перелёта, 4х разового питания и ещё и возят с дома на работу (и кажется даже обратно). Но начался коронавирус и я никуда не вылетел.

p.s: надеюсь меня не засудят за то что я оффер скинул вам. Разместил тут чтобы не казаться балаболом и были какие-то доказательства.

В 22-23 начал понимать что дизайн скатывается непонятно во что из-за предложения, которое начало дико превышать спрос настолько, что работу на $2500 я так и не смог найти. Из-за нежелания делать тестовые бесплатно я мог искать работу по 6-7 месяцев, из-за чего была апатия на грани депрессии. Из-за отсутствия желания что-то делать я скатился в игромана – купил поставку PS4, начал играть. Играл месяца 4. Мог играть по часов наверное 100 в месяц.

Август 2020:

Как-то я захотел опять поиграть в Borderlands уже на своей приставке. А там че интересного – есть статистики предметов, которые можно экипировать или продавать. Если не посчитать секунд 50-60 руками, то можно и не понять какой из предметов лучше и какой лучше бы продать. И я вспомнил что я чисто по фану как-то посмотрел видео по Python из которого помнил что там можно брать ввод пользователя и считать что-то. И я подумал, что раз это программирование то наверняка можно брать ввод пользователя и считать его. И я потратил часов 10 и написал программу которая за 10 секунд могла подсказать тебе что из предметов лучше или хуже и на сколько %. Это было очень удобно, так как предметов там было очень много и таких сравнений экипировки могло быть аж тысячи 5-10 за всю игру. Сделал это 2-го сентября. Тогда и начался мой активный этап развития как программиста. Вот код: https://t.me/c/1294507835/3 .

Где-то в сентябре (или в конце августа) я написал програамулину – часть на bash, часть на Python – запускаешь один Python-скрипт – записывается время когда я лег спать. Запускаешь второй – записывается время когда я проснулся и создается и отображается сводка – сколько часов проспал, когда проснулся, когда лег спать. Вот код на Питоне – https://t.me/c/1294507835/5 . Вот bash-часть: https://t.me/c/1294507835/9 . И вот что по итогу создавала программа: https://t.me/c/1294507835/6 .

Потом я как-то спросил друга – веришь ли ты что логотипы и правда создаёт искусственный интеллект (https://www.artlebedev.ru/ironov/)?

И потом сам же написал что и я сам мог бы такое сделать. И меня проперло, я загорелся и сделал бота, который генерирует картинки – https://t.me/krakobot (выбранные картинки
https://t.me/generart). Вот статья про него: https://telegra.ph/Generativnyj-art-09-27 . Думаю что можно из этого сделать бизнес. Генерировать PNG бесплатно, а векторные SVG-исходники продавать по $5-10.

Потом я решил что не хочу искать работу, надоело (всегда ненавидел искать работу, но любил работать) и сделал программы которые рассылают мое резюме на 3 сайта на Selenium. На один из них даже проверяет каждые где-то 15-30 минут и висит на сервере, так что я ее даже не запускаю. Запустил и забыл. Сделал это 14 сентября. Потратил часов 20 в итоге где-то на все программы.

Потом я сделал такого бота для сохранения популярных публикаций за каждый день и их выдачу на Dribbble – https://t.me/dribbblobot . Этот сайт не сохраняет рейтинг популярных публикаций за каждый день, но каждый день можно найти там кучу крутых работ. Ещё есть ошибки, так как пока для меня телеграм-боты трудно даются, но скоро я все выучу и на днях. Написал его 8 октября. Публикации по нему:

Потом (или до этого) в 6-9 числах октября написал программу, которая бесплатно валидирует email-в используя прокси. Прокси (если шаришь) можно достать и бесплатно. В чем суть – есть сайт который разрешает тебе бесплатно валидировать по 5 email-ов в час. И я через прокси делал так что оно подменяет IP адрес и валидирует столько хочешь почтовых адресов. Часов 10-12 понадобилось, чтобы разобраться.


Боты и рассылалка резюме размещены на арендованном VPS сервере.


Update 14.10.2020:

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

Код: https://t.me/c/1294507835/4 .


Update 14.10.2020:

Написал программу, которая добывает API токен со Spotify, парсит указанное количество страниц с треками на https://www.beatport.com/, ищет по названиям в Spotify и добавляет их в указанный плейлист. Так я за 5 минут насобирал ~800 треков (без дубликатов). Пока что программа сырая – нет адекватного логирования, нет прикрученного бота в телеграм, иногда бывают дубликаты и для получения токена нужно вручную ввести пароль на Spotify (хоть галочки ставит сама, нажимает на остальные кнопки сама и токен сохраняет тоже сама). Но все же даже лично для меня самого эта программа очень полезная, так как я часто испытываю недостаток новой музыки.

Мне нравится Beatport, но платить ещё за один сервис я не хочу особо, а постоянно руками переписывать в спотифай название трека совсем неудобно. Поэтому и решил написать эту программу.

Update 14.10.20: дубликаты пофиксил.


Update: 21.10.2020: Часов 10-15 делал подписку на публикации для https://t.me/dribbblobot . И сделал: https://t.me/designerschannel/6056 .

Update 23.10.2020: Добработки по дрибл-боту. Добавил чтобы бот ночью не кидал никакие сообщения: https://t.me/designerschannel/6067 .

Update 24.10.2020: Сделал бота, который скидывает мне новые работы тех, за кем я слежу на Dribbble в лс в телеграм. Вот немного публикаций на эту тему: https://t.me/designerschannel/6073 . Массовое решение пока не создавал и не уверен что буду. Пока это работает как бот, который отправляет данные только мне.

Update 27-28.10.2020: Я решил переписать программу сохранения данных по моему сну, потому что Python я немного подучил и захотелось облагородить программу, которая мне очень нужна. В итоге сделал бота: https://t.me/letsleepbot . Как он работает: По нажатию на Go to sleep – он записывает время когда пользователь пошел спать. По нажатию на "wake up" – отмечает время когда юзер проснулся и сохраняет сводку и отправляет пользователю последнюю информацию. /summary отправляет файл со всеми записями запросившему пользователю в лс. При помощи /awake я могу понять сколько я уже не спал, а по нажатию на кнопку "Hours slept" – сколько я уже спал (если вдруг встал ночью) . Кстати, потом мне начали писать что для них бот реально очень полезен. Была одключена самописная аналитика – я сохраняю себе в файл данные после абсолютно каждого взаимодействия с пользователем. А в телеграм мне отправляет информацию о том, что у бота появился новый пользователь и его никнейм или ID с именем и фаилией (чтобы хоть как-то найти его). Я довольно много общаюсь с пользователями вот даже вот такого мини-проекта, потому что это позволяет сделать лучше. Делал около 6-8 часов.

Update 29-30.10.2020: Телеграм-бот https://t.me/letsleepbot : Улучшил вывод всей сводки по сну (https://t.me/designerschannel/6096), еще раз улучшил вывод, но уже сводки по последнему сну, добавил отображения в резюме по последнему сну информацию о времени проверки часов сна, если пользователь проверял это во время сна и информацию о том, сколько времени он спал на момент проверки (https://t.me/designerschannel/6100). И отрефакторил код (https://t.me/designerschannel/6097) .

Update 31.10.2020: Сделал программу, которая считает суммарное время необходимое для выполнения задач. Я пользуюсь задачником Things3. Выглядит он вот так: https://imgur.com/a/I7vkziQ . То ли мое помешательство, то ли недостаток программы – нельзя выставлять время, которое я выделяю на задачу. Но кроме этого это просто идеальный задачник. Дорогой, но идеальный. Время в скобках я выставляю просто дописыванием обычного текста в загловки – :30 – 30 минут, 1 – 1 час, 2:21 – 2 часа 21 минута. Такой формат потому что так быстрее всего на айфоне можно указать нужное время. Со временем оказалось что я трачу на подсчеты и пересчеты до 20 минут в день... И решил написать программу, которая сама считает время. Код: https://t.me/c/1294507835/11 . Потом я понял что было бы удобно иметь доступ с телефона к подсчету и написал телеграм-бота: https://t.me/thingscountbot (не до конца проработана валидация, так как бота делал исключительно для себя и я знаю как буду его использовать).

Update 1.11.2020: Я вдохновился видео https://youtu.be/g6zzZxxifAw и понял что хочу писать open-source код для комьюнити разработчиков (пост об этом: https://t.me/designerschannel/6125 ). Потом решил написать мини-библиотеку, которая заменила бы сложный и пока что непонятный logging с кучей ненужных мне на данном этапе моего развития настроек. Я хотел чтобы мой print() печатал все на экран и в файлик. Только print. Больше мне ничего не нужно было. Сделал я это быстро, но потом мне пришли в голову и другие интересные идеи – как сделать автоматический вывод ошибок простым импортом моей библиотеки и в командную строку и в файл одновременно (в интернете я ничего то). Нужны были именно ошибки с Traceback – только те, которые я получаю в терминал при ошибке исполнения любой программы. Я это тоже сделал. Потом захотел сделать так, чтобы можно было все логировать еще и в телеграм кроме обычного вывода на экран и в текстовый файл (с настройками, безусловно, чтобы можно было отказаться от файла, например). Потом сделал так, чтобы можно было по желанию отправлять все ошибки из Traceback в телеграм (отправляются даже те, которые определяются на старте программы). Сделал. Потом я захотел добавить автоматическое дописывание даты и времени к моему print() – по дефолту на всех из настроек или на каждом выводе с выбором. Сделал и это. Все ошибки летят сразу же в основной log файл. Документация в файле easylog.py. Чтобы библиотеку использовать нужно залить файлик easylog.py, по желанию настройки в переменных в начале файла (указать стандартные значения – добавлять дату или нет, кидать ли ошибки в телеграм, поменять название файла для логирования, если очень хочется) и написать в своей программе from easylog import * . Библиотека: https://t.me/c/1294507835/12 . Присутствуют недочеты, но они описаны в программе и примерах.

Update 1.11.2020: Я понял что хочу изучать машинное обучение.

Update 2.11.2020: Пофиксил рассылку @dribbblebot . С может недельку назад заметил что он не рассылает работы. Сегодня понял что если он натыкается на пользователя, который остановил бота, то он падает не на то исключение, на которое нужно и на следующем цикле делает то же самое, не пытаясь решить проблему.

Update 2.11.2020: Теперь в библиотеке присутствует только один и очень мелкий недочет, который пока не знаю как пофиксить. И теперь log() и tg_log() имеют тот же функционал, что и print – добавил возможность использовать выражения со звездочкой типа log(*list), и перечислять через запятую элементы для вывода типа log(1,2,3). Оказалось что flush() файла у меня происходит после каждого вызова функции, что есть очень хорошо, так как у меня еще не было случаев когда flush() файла мне мешал (да, это возможно может отражаться немного негативно на потреблении ресурсов, но не думаю что заметно). Теперь это по сути print() на максималках. Добавил обновленную документацию, требования по установке внешних библиотек. Добавил в настройках файла возможность указывать кол-во пустых линий между выводами логов. Новая версия библиотеки: https://t.me/mysharexdfiles/14 .

Update 2.11.11: Мне написал добрый человек Александр из Харькова, предложил меня поменторить. Я безумно ему признателен, что он согласился мне помочь в моем хоть и легком, но все равно временами тернистом развитии как разработчика. Потом я списался с еще одним хорошим и интересным разработчиком Адрианом и он мне предложил сделать коллаб с моим проектом easylog – библиотека для простого логирования. У него есть канал на 10к+ подписчиков и судя по его публикациям он очень круто знает код. Мне очень приятно иметь честь работать с профессоналами своего дела.

Update 3.11.2020: Мне написал еще один добрый человек Руслан из Владивостока с предложением немного помочь мне с кодом. Сказал "мне нравится просто твое рвение, хочу поконтрибутить в код тебе". Было очень приятно.

Update 3.11.2020: Я понял что хочу специализироваться на автоматизации. Она мне всегда очень и очень нравилась еще даже до того, как я влез в программирование. К тому же с автоматизацией можно быстрее всего начать работать на реальных проектах от начала учебы до получения первого проекта.

Update 3.11.2020: Я понял что одной автоматизацией я сыт не буду, и в последнее время перед моими глазами мелькает фреймворк Django. Но я не хочу учить что-либо, что не смогу использовать сразу же. Поэтому понял что мне нужно будет начать с автоматизации, а затем работая в ней учить Swift параллельно с Django, чтобы делать бэкенд на Django сразу для чего-то, что я могу пощупать. Учитывая, что я дизайнер, у меня может получится очень крутой стек – UI/UX designer, Product owner +Swift + Backend (Django). С таким стеком я сам себе смогу делать крутые приложухи и сервисы.

Update 3.11.2020: Выкатил easylog v1.2 – моя библиотеки для простого логирования. Улучшил нейминги, сделал докстринги по стандарту PEP 257, убрал ненужную логигу, сделав общую более правильной, сделал код более гибким и масштабируемым, добавил больше пустого пространства и более правильно отделили логику. Добавил дополнительные настройки – возможность указывать свой файл ошибок, возможность отказаться от обязательного удаления файла с ошибками (ошибки все равно летят в общий лог файл). Файл версии 1.2 : https://t.me/mysharexdfiles/15 (Да, скоро буду учить гит, знаю, знаю).

Update: Понял что хочу спасать жизни людей при помощи программирования. Может попробую напроситься к Илону Маску поработать, он как раз набирает программистов XD

Update 3-4.11.2020: Выкатил easylog v1.3. Первый серьезный апдейт после первой версии. Засунул конфиги в отдельный файл, запихнул документацию в README.md. Добавил аргументом (или в настройках) формат времени к strftime. Понял что в телеграм не нужно кидать дату, поскольку телеграм сам же отображает время получаения сообщения. Оставил в конфиге возможность это включить, но по дефолту выключил (в терминал и в настройки все равно можно настроить отправку даты и времени. Добавил автоформат вывода в терминал, на который потратил около 6-ти часов: https://imgur.com/a/pyDUHKK . Если это просто обычный log(), то он будет работать как print(), но если добавляются или статусные сообщения про отправку в телеграм или лог пишется с датой, то разделяется пустой линией для лучшей читабельности. Можно отключить, но очень не советую. Убрал необходимость писать date=True чтобы можно было указать формат даты. Теперь если указывается формат даты/времени, то значение date=True применяется автоматически, если оно не было выставлено в конфиге. Библиотеку можно скачать тут: https://t.me/mysharexdfiles/16 .

Update 5.11.2020: Начал учить Git и залил туда easylog: https://github.com/kopyl/easylog .

Update 5-6.11.2020: Сделал OLX парсер объявлений. Я ввожу название, ценовой диапазон товара и стоп-слова, при наличии которых нужно игнорировать объявление, а программа мониторит по этим параметрам любое количество поисковых запросов и кидает релевантные товары мне в телеграм. Давно уже хотел сделать такой и наконец-то сделал.

Update 6-8.11.2020: Улучшил OLX парсер. Сделал проверку по описанию, добавил фильтр не только по стоп-словам, а и по стал-фразам.

Update 8-9.11.2020: Сделал бота-парсера со словаря https://dictionary.cambridge.org/ . Лично для меня это удобно. Он умеет отдавать по запросу результаты с транскрипцией и аудио. Если ввести неправильное слово, выдаёт предложения по похожим словам. Я бы ещё добавил фото, часть речи и динамические кнопки для предложений. Возможно ещё и возможность добавлять в избранные. Уже вовсю использую гит. Бот – https://t.me/camdicbot .


ЧАСТЬ 2: https://telegra.ph/YA-programmist-ch2-11-10 .



Другие мои статьи на эту тему:





Report Page